openapi: "3.1.0"
info:
  title: TC Bars 3rd-party API Release
  version: "1.9"
servers:
  - url: https://{deviceIP}:443
    variables:
      deviceIP:
        default: ""

components:
  securitySchemes:
    basicAuthApi:
      type: http
      scheme: basic
      description:
        Username\:api, Password\:given by the user when \"allowing\" third party access to the device;
        the user for third party access to the device with no rights to reconfigure vital configurations

security:
  - basicAuthApi: []

paths:
  /api/ssc/version:
    get:
      tags:
        - SSC
      summary: Get the SSCv2 and schema version implemented
      security: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  protocol:
                    type: string
                    example: "2.2"
                    description: The version of SSC protocol.
                  schema:
                    type: string
                    example: "1.7"
                    description: This is the schema version of the API of the TC Bar device. Semantic versioning must be used. So additional paths or properties will increase the minor number while breaking changes increase the integer part before the decimal point.
        '500':
          description: SSCv2 Server encountered an internal error

  /api/ssc/schema:
    get:
      tags:
        - SSC
      summary: Get the SSCv2 Address tree
      description: Provides a full schema of the API, as this file is, in the JSON format.
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/openapi+json:
              schema:
                type: string
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/ssc/state/subscriptions:
    get:
      tags:
        - SSC
      summary: Start a subscription
      description: An SSCv2 Command to start a subscriptions. A successful request return an UUID that can be used to manage the created subscription. The ``/ssc/state`` address are specific to the SSCv2 Session between SSCv2 Client and SSCv2 Server. This means that it is possible that different SSCv2 Clients invoke the same SSCv2 Command with different arguments, and the immediate reply as well as the resulting state of the SSCv2 Server will differ for each SSCv2 Client. This also means, that there can be only a limited number of sessions per client or more precise per client and user. Instead of generating new subscriptions the "old" subscription should be altered.
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation returning the UUID to manage this subscription and the initial Server Side Event (SSE) stream
          headers:
            Content-Location:
              description: UUID of the just created subscription return in the Location Field of the HTTP response header
              schema:
                type: string
                example: 31875a94-29e6-4fb0-ab4d-7f0bbd6e1bc8
          content:
            text/event-stream:
              schema:
                type: string
                description: An initial stream (almost like a text file).
                example: event:open\ndata:{"path":"/api/ssc/state/subscriptions/31875a94-29e6-4fb0-ab4d-7f0bbd6e1bc8","sessionUUID":"31875a94-29e6-4fb0-ab4d-7f0bbd6e1bc8"}\n\n
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/ssc/state/subscriptions/{sessionUUID}:
    get:
      tags:
        - SSC
      summary: Get the subscription list
      description: An SSCv2 Command to retrieve the list of subscriptions associated with the sessionUUID
      security:
        - basicAuthApi: []
      parameters:
        - in: path
          name: sessionUUID
          schema:
            type: string
            example: 31875a94-29e6-4fb0-ab4d-7f0bbd6e1bc8
          required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                example: ["/device/site", "/device/identification"]
                items:
                  type: string
                  example: /device/site
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      tags:
        - SSC
      summary: Change the subscription list
      description: An SSCv2 Command to set/change the list of subscriptions associated with the sessionUUID.
      security:
        - basicAuthApi: []
      parameters:
        - in: path
          name: sessionUUID
          schema:
            type: string
            example: 31875a94-29e6-4fb0-ab4d-7f0bbd6e1bc8
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: array
              example:
                ["/device/site", "/device/identification", "/device/state"]
              items:
                type: string
                example: /device/site
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error
    delete:
      summary: End an existing subscription
      description: An SSCv2 Command to end the subscription associated with the sessionUUID
      tags:
        - SSC
      security:
        - basicAuthApi: []
      parameters:
        - in: path
          name: sessionUUID
          schema:
            type: string
            example: 31875a94-29e6-4fb0-ab4d-7f0bbd6e1bc8
          required: true
      responses:
        '200':
          description: Successful operation
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error

  /api/ssc/state/subscriptions/{sessionUUID}/add:
    put:
      tags:
        - SSC
      summary: Add resource(s) the subscription list
      description: An SSCv2 Command to add a set of resources to the list of subscriptions associated with the sessionUUID
      security:
        - basicAuthApi: []
      parameters:
        - in: path
          name: sessionUUID
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: array
              example: ["/device/site", "/device/identification"]
              items:
                type: string
                example: /device/site
      responses:
        '200':
          description: Successful operation
        '400':
          description: The request to add to the subscription was invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  path:
                    type: string
                    example: /api/ssc/invalid
                  error:
                    type: integer
                    example: 404
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error

  /api/ssc/state/subscriptions/{sessionUUID}/remove:
    put:
      tags:
        - SSC
      summary: Remove resource(s) from the subscription list
      description: An SSCv2 Command to remove a set of resources from the list of subscriptions associated with the sessionUUID
      security:
        - basicAuthApi: []
      parameters:
        - in: path
          name: sessionUUID
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
                example: /api/device/site
      responses:
        '200':
          description: Successful operation
        '400':
          description: The request to remove to the subscription was invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  path:
                    type: string
                    example: /api/ssc/version
                  error:
                    type: integer
                    example: 404
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error

  /api/device/identity:
    get:
      tags:
        - Device
      summary: Get the device identity
      security: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  product:
                    type: string
                    example: "TCBarS"
                    enum:
                      - "TCBarS"
                      - "TCBarM"
                  hardwareRevision:
                    type: string
                    example: "PVT"
                    enum:
                      - "ES"
                      - "EVT1"
                      - "EVT2"
                      - "DVT"
                      - "PVT"
                      - "MP"
                  serial:
                    type: string
                    example: "1023456789"
                    description: For format definition please refer to Sennheiser-internal SNN 401
                  vendor:
                    type: string
                    example: "Sennheiser electronic GmbH & Co. KG"
                    enum:
                      - "Sennheiser electronic GmbH & Co. KG"
        '500':
          description: SSCv2 Server encountered an internal error

  /api/device/identification:
    get:
      tags:
        - Device
      summary: Get the state of device identification
      security: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  visual:
                    type: boolean
                    default: false
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      tags:
        - Device
      summary: Sets the state of device identification.
      description: When set to true, the device starts bliniking for 10 seconds.
      security: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                visual:
                  type: boolean
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  visual:
                    type: boolean
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '409':
          description: Conflict. Activating identification was not possible because of internal device state.
        '500':
          description: SSCv2 Server encountered an internal error

  /api/device/site:
    get:
      tags:
        - Device
      summary: Get the device site information
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  deviceName:
                    type: string
                    example: "TCBarS-c8ec48"
                    description: Default name is "TCBar*-XXXXXX"  with *=S or M , X= depending on last 3 bytes of the Ethernet MAC
                  danteName:
                    type: string
                    example: "TCBarS-c8ec48"
                    description: Default name is "TCBar*-XXXXXX"  with *=S or M , X= depending on last 3 bytes of the Dante MAC
                  location:
                    type: string
                    example: "Chemistry Building 5, Room 15"
                    default: "RoomA"
                  position:
                    type: string
                    example: "Left side near the big pillar"
                    default: ""
                  language:
                    type: string
                    default: "En_GB"
                    enum:
                      - "En_GB"
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/device/licenseAgreements/licenses:
    get:
      summary: Retrieve the PDF of the OpenSource licenses used by software on the device
      tags:
      - LicenseAgreements
      security: []
      responses:
        '200':
          description: Successful operation
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '403':
          description: Forbidden since the authenticated user is not allowed to access
            this resource (e.g. this route is not allowed for the ``initialSennheiser``
            user)
        '500':
          description: SSCv2 Server encountered an internal error
    
  /api/device/licenseAgreements/hash:
    get:
      summary: Retrieve a SHA-256 hash of the license agreements file
      tags:
      - LicenseAgreements
      security: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: string
                    example: e4491bb82bf36d124f92d4bba1edac60f6178e92a3b89c436fb660b99c10d538
        '500':
          description: SSCv2 Server encountered an internal error

  /api/interfaces/network:
    get:
      summary: Returns list of network interfaces
      description: Returns all network interfaces and their current settings.
      tags:
        - Interfaces
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Unique name to identify the interface
                      example: "Port1"
                      enum:
                        - "Port1"
                        - "Port2" # Bar M only
                        - "Port1_2" # Bar M only
                        - "Wifi1"
                        - "VlanDante"
                    type:
                      type: string
                      description: This is the interfacetype.
                      example: "Ethernet"
                      enum:
                        - "Ethernet"
                        - "Wifi"
                        - "Vlan"
                    mac:
                      type: string
                      description: Hardware address of the interface
                      example: "00:1b:66:0c:04:83"
                    functionalities:
                      type: array
                      description: Important network functionalities provided on this interface by the device
                      items:
                        type: string
                        example: "Control"
                        enum:
                          - "Control"
                          - "Dante"
                    autoDiscovery:
                      type: boolean
                      default: true
                      description: Is mDNS-SD activated for the interface to publish the hostname and the SSCv2 Service
                    ipv4:
                      type: object
                      properties:
                        method:
                          type: string
                          description: IP method
                          default: "Auto"
                          enum:
                            - "Fixed" # for manual IP settings
                            - "Auto" # for DHCP / Link local
                        address:
                          description: This is the current IP address of the interface.
                          type: string
                          example: "192.168.178.10"
                        netmask:
                          description: This is the current netmask of the interface.
                          type: string
                          example: "255.255.255.0"
                        gateway:
                          description: This is the current gateway of the interface.
                          type: string
                          example: "192.168.178.1"
                    ipv6:
                      type: object
                      properties:
                        method:
                          type: string
                          description: IP method
                          default: "Auto"
                          enum:
                            - "Auto"
                        addresses:
                          type: array
                          items:
                            type: object
                            properties:
                              ip:
                                type: string
                                example: "2001:0db8:85a3:08d3:1319:8a2e:0370:7347"
                              prefixLength:
                                type: integer
                                format: uint8
                                example: 64
                              gateway:
                                type: string
                                example: ""
                    vlanTag:                                 
                      description: This is an exclusive field for virtual LAN configuration. The user has to define a specific setting for the vlan ID. For Dante the default configuration is 100.
                      example: 100
                      type: integer
                      format: uint16
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/interfaces/network/portConfiguration:
    get:
      summary: Get the current Port configuration of the RJ45 Ports of the device 
      description: |
         An SSCv2 Command to retrieve the Ethernet port configuration. Default configuration is "SingleDomain". There are different port configurations, affecting the accessibility of the Control and Dante functionality in the network: 
         - SingleDomain means only one IP and MAC for the Device and no VLANs.
         - DualDomain means a VLAN is used for the Dante, the Control functionality is using the physical interface. This mode uses two different MACs and different IPs for Dante and Control. Both Applications will be available on both Ports in case of Bar M. 
         - Split means the device has two IPs from 2 MAC addresses, each tied to one of the external ports, but no VLAN configuration. This mode is only available on Bar M.
         - The default Port configuration is SingleDomain for Bar S and Split for Bar M.
      tags:
        - Interfaces
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  configuration:
                    type: string
                    description: |
                      There are different port configurations, affecting the accessibility of the Control and Dante functionality in the network:
                      - SingleDomain means only one IP and MAC for the Device and no VLANs.
                      - DualDomain means a VLAN is used for the Dante, the Control functionality is using the physical interface. This mode uses two different MACs and different IPs for Dante and Control. Both Applications will be available on both Ports in case of Bar M. 
                      - Split means the device has two IPs from 2 MAC addresses, each tied to one of the external ports, but no VLAN configuration. This mode is only available on Bar M.
                      - The default Port configuration is SingleDomain for Bar S and Split for Bar M.
                    example: "SingleDomain"
                    enum:
                      - "SingleDomain"
                      - "Split"
                      - "DualDomain"
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/firmware/update/state:
    get:
      tags:
        - Firmware Update
      summary: Get the state of a firmware update
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  deviceVersion:
                    type: string
                    example: "1.0.0"
                    description: The firmware version of the system running at the moment.
                  danteVersion:
                    type: string
                    example: "1.0.0"
                    description: The Dante firmware version of the system running at the moment.
                  state:
                    type: string
                    example: Idle
                    enum:
                      - "Updating"
                      - "Idle"
                  progress:
                    type: integer
                    format: uint8
                    minimum: 0
                    maximum: 100
                    example: 0
                    description: Progress in percent
                  lastStatus:
                    type: string
                    example: "None"
                    enum:
                      - "None"
                      - "RecoveryPackageNotFound"
                      - "ChecksumError"
                      - "ProductIdentnumberIncorrect"
                      - "FirmwareProgramFailed"
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/device/state:
    get:
      summary: Get the device state
      description: An SSCv2 Command to retrieve the current state of the device
      tags:
        - Device
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  state:
                    type: string
                    default: "Normal"
                    enum:
                      - "Normal"
                      - "Identifying"
                      - "BluetoothPairing"
                      - "FirmwareUpdate"
                      - "Standby"
                      - "CriticalFailure"
                  warnings:
                    type: array
                    default: []
                    items:
                      type: string                                                                                                      
                      enum:
                        - "MicMuted"
                        - "LensCapOn"
                        - "CameraOff"
                        - "SpeakerMuted"
                        - "NoDeviceConnected"
                        - "DeviceOverheating"
                        - "CpuOverloading"
                        - "BluetoothFailure"
                        - "DanteFailure"
                        - "MicFailure"
                        - "SpeakerFailure"
                        - "VoiceEngineFailure"
                        - "CameraFailure"
                        - "UsbFailure"
                        - "TimeUninitialized"
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/device/time:
    get:
      summary: Get the device time
      description: An SSCv2 Command to retrieve the current absolute time of the device.
      tags:
        - Device
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  time:
                    type: integer
                    format: int64
                    description: Seconds from 01/01/2000, 00:00:00 UTC, see SSCv2 specification, 5.2.3. A valid time must be always provided by the device. Even if the user has not set a specific time before.
                    example: 1659945920
                  timezone:
                    type: string
                    description: Only cosmetic timezone information
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/interfaces/bluetooth:
    get:
      summary: Get the bluetooth setting
      description: An SSCv2 Command to retrieve the current bluetooth settings.
      tags:
        - Bluetooth
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  enabled:
                    type: boolean
                    default: false
                  pairing:
                    type: boolean
                    default: false
                  mac:
                    type: string
                    example: "00:1b:66:c8:ec:53"
                    readOnly: true
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Write the bluetooth settings
      description: An SSCv2 Command to set the bluetooth settings of the device.
      tags:
        - Bluetooth
      security:
        - basicAuthApi: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled: 
                  description: If this is set to "false" also pairing has to be reset to "false" automatically and the bluetooth device list (``/interfaces/bluetooth/deviceslist``) has to be reset to an empty array automatically as well
                  type: boolean
                  example: true
                pairing:
                  description: If set to "true" a timer of 3 min starts to run. Will be set back to "false" when a device was connected or after timeout. In the Sennheiser Cockpit it can also be manually set back to "false" at any time.
                  type: boolean
                  example: false
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/device/leds/ring:
    get:
      summary: Get the user LED settings of the device ring
      description: An SSCv2 Command to retrieve the current led settings of the ring.
      tags:
        - Device
      security:
        - basicAuthApi: []
      responses:      
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  brightness:
                    description: The led brightness
                    type: integer
                    format: int64
                    minimum: 0
                    maximum: 5
                    default: 3
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary:  Write the user LED settings of the device ring
      description: An SSCv2 Command to set the led settings of the ring.
      tags:
        - Device
      security:
        - basicAuthApi: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                brightness:
                  description: The led brightness
                  type: integer
                  format: int64
                  example: 5
                  minimum: 0
                  maximum: 5
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/device/feedback:
    get:
      summary: Get the user feedback settings of the device
      description: An SSCv2 Command to retrieve the current user feedback settings (Sound Prompts).
      tags:
        - Device
      security:
        - basicAuthApi: []
      responses:      
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  soundPrompts:
                    description: With this property you can choose if there should be any sound feedback from the bar. Independent from the Welcome Sound which is being played on every boot.
                    type: boolean
                    default: true
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Set the user feedback settings of the device.
      description: An SSCv2 Command to set the current user feedback settings (Sound Prompts).
      tags:
        - Device
      security:
        - basicAuthApi: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                soundPrompts:
                  description: With this property you can choose if there should be any sound feedback from the bar. Independent from the Welcome Sound which is being played on every boot.
                  type: boolean
                  example: true
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/video/input/internalCamera/aiAccess:
    get:
      summary: Get status of auto framing and person tiling.
      description: Command to retrieve the current status of auto framing and person tiling.
      tags:
        - Video
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  autoFramingAccessEnabled:
                    description: Getting the status of the functionality of the remote control button for using autoframing.
                    type: boolean
                    default: true
                  personTilingAccessEnabled:
                    description: Getting the status of functionality of the remote control button for using person tiling.
                    type: boolean
                    default: true
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/video/input/internalCamera/movement:
    get:
      summary: Get the manual camera position and movement speed.
      tags:
        - Video
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  panPosition:
                    type: integer
                    default: 0
                    minimum: -25
                    maximum: 25
                  tiltPosition:
                    type: integer
                    default: 0
                    minimum: -25
                    maximum: 25
                  zoomPosition:
                    description: There are different max zoom factors for different device profiles as well as for different bar types allowed. For Bar M Zoom=500, MicrosoftTeams=150, Custom=500  AND For Bar S Zoom=400, MicrosoftTeams=200, Custom=300. 
                    type: integer
                    default: 100
                    minimum: 100
                    maximum: 500
                  zoomSpeed:
                    description: Zoomspeed of the manual control via remote
                    type: string
                    enum:
                      - "Slow"
                      - "Medium"
                      - "Fast"
                    default: "Medium"
                  panTiltSpeed:
                    description: Pan- and tiltspeed of the manual control via remote
                    type: string
                    enum:
                      - "Slow"
                      - "Medium"
                      - "Fast"
                    default: "Medium"
                  autoframingSpeed:
                    description: Movementspeed of the autoframer
                    type: string
                    enum:
                      - "Slow"
                      - "Medium"
                      - "Fast"
                    default: "Medium"
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the manual camera position and movement speed.
      tags:
        - Video
      security:
        - basicAuthApi: []        
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                panPosition:
                  type: integer
                  minimum: -25
                  maximum: 25
                  example: 0
                tiltPosition:
                  type: integer
                  minimum: -25
                  maximum: 25
                  example: 0
                zoomPosition:
                  description: There are different max zoom factors for different device profiles as well as for different bar types allowed. For Bar M Zoom=500, MicrosoftTeams=150, Custom=500  AND For Bar S Zoom=400, MicrosoftTeams=200, Custom=300. 
                  type: integer
                  minimum: 100
                  maximum: 500
                  example: 100
                zoomSpeed:
                  description: Zoomspeed of the manual control via remote
                  type: string
                  enum:
                    - "Slow"
                    - "Medium"
                    - "Fast"
                  example: "Medium"
                panTiltSpeed:
                  description: Pan- and tiltspeed of the manual control via remote
                  type: string
                  enum:
                    - "Slow"
                    - "Medium"
                    - "Fast"
                  example: "Medium"
                autoframingSpeed:
                  description: Movementspeed of the autoframer
                  type: string
                  enum:
                    - "Slow"
                    - "Medium"
                    - "Fast"
                  example: "Medium"
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/video/input/internalCamera/videoParameters:
    get:
      summary: Get the video parameters of the internal camera.
      description: Command to retrieve the current video parameters.
      tags:
        - Video
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  lowlightCompensationEnabled:
                    type: boolean
                    default: false
                  backlightCompensationEnabled:
                    type: boolean
                    default: false
                  antiFlickerFrequency:
                    type: string
                    enum:
                      - "Auto"
                      - "50Hz"
                      - "60Hz"
                      - "Off"
                    default: "Auto"
                  brightness:
                    type: integer
                    default: 0
                    minimum: -12
                    maximum: 12
                  autoExposureEnabled:
                    type: boolean
                    default: true
                  exposure:
                    description: Getting the manual exposure setting. It only has an effect if auto_exposure_enabled set to 'false'
                    type: integer
                    default: 0
                    minimum: -5
                    maximum: 3
                  contrast:
                    type: integer
                    default: 5
                    minimum: 1
                    maximum: 10
                  saturation:
                    type: integer
                    default: 5
                    minimum: 0
                    maximum: 10
                  sharpness:
                    type: integer
                    default: 2
                    minimum: 0
                    maximum: 6
                  autoWhitebalanceEnabled:
                    type: boolean
                    default: true
                  whitebalance:
                    type: integer
                    description: Getting the manual white temperature setting. It only has an effect if auto_whitebalance_enabled is set to 'false'
                    default: 4600
                    minimum: 2800
                    maximum: 6500
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/video/input/internalCamera:
    get:
      summary: Get the camera status.
      description: Command to retrieve the camera status.
      tags:
        - Video
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  active:
                    description: Getting the camera activity status.
                    type: boolean
                    default: false
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/video/output/hdmi:
    get:
      summary: Get the HDMI enabled status.
      description: Command to retrieve the current HDMI enabled status.
      tags:
        - Video
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  enabled:
                    description: Getting the HDMI activity status.
                    type: boolean
                    default: true
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error      
    put:
      summary: Define which device profile (e.g. camera IQ profile) will be used.
      description: An SSCv2 Command to set the current device profile. Please note that in the MicrosoftTeams profile the possibility to enable the HDMI output and the possibility to change camera parameters is restricted.
      tags:
        - Video
      security:
        - basicAuthApi: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                configuration:
                  type: string
                  example: "Custom"
                  enum:
                    - "Custom"
                    - "Zoom"
                    - "MicrosoftTeams"
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct or value is not allowed. (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/device/profile:
    get:
      summary: Retrieve the current device profile. 
      description: An SSCv2 Command to retrieve the current device profile (e.g. Camera IQ Profile).
      tags:
        - Interfaces
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  configuration:
                    type: string
                    default: "Custom"
                    enum:
                      - "Custom"
                      - "Zoom"
                      - "MicrosoftTeams"
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define which device profile (e.g. camera IQ profile) will be used.
      description: An SSCv2 Command to set the current device profile. Please note that in the MicrosoftTeams profile the possibility to enable the HDMI output and the possibility to change camera parameters is restricted.
      tags:
        - Interfaces
      security:
        - basicAuthApi: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                configuration:
                  type: string
                  example: "Custom"
                  enum:
                    - "Custom"
                    - "Zoom"
                    - "MicrosoftTeams"
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct or value is not allowed. (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/soundProfile:
    get:
      summary: Get the soundprofile of the internal mic.
      description: Defines the soundprofile of the internal mic. E.g. a specific mounting preset or custom eq preferation of the user.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  preset:
                    type: string
                    enum:
                      - "Wallmount"
                      - "TableTop"
                      - "AboveDisplay"
                      - "UnderDisplay"
                      - "FreeStanding"
                      - "Custom"
                    default: "Wallmount"
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the soundprofile of the internal mic.
      description: Defines the soundprofile of the internal mic. E.g. a specific mounting preset or custom eq preferation of the user.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                preset:
                  type: string
                  enum:
                    - "Wallmount"
                    - "TableTop"
                    - "AboveDisplay"
                    - "UnderDisplay"
                    - "FreeStanding"
                    - "Custom"
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/internalMic/level:
    get:
      summary: Get the internal mic level.
      description: An SSCv2 Command to retrieve the internal mic level of the bar.
      tags:
        - Audio
        - FastResource
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  peak:
                    type: integer
                    description: Unit is dB
                    format: int8
                    minimum: -60
                    maximum: 10
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/internalMic:
    get:
      summary: Get the internal mic parameters.
      description: Command to retrieve the internal mic parameters of the bar.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  gain:
                    type: integer
                    description: Unit is dB
                    format: int8
                    minimum: -60
                    maximum: 0
                    default: 0
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the internal mic parameters.
      description: Defines the internal mic parameters of the bar.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                gain:
                  type: integer
                  description: Unit is dB
                  format: int8
                  minimum: -60
                  maximum: 0
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/internalMic/mute:
    get:
      summary: Get the mute state of the internal mic.
      description: Command to retrieve the mute state of the internal mic of the bar.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  enabled:
                    type: boolean
                    default: false
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the mute state of the internal mic.
      description: Defines the mute state of the internal mic of the bar.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/internalMic/customEq:
    get:
      summary: Get the custom eq of the internal mic.
      description: Defines the custom eq of the internal mic.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                minItems: 7
                maxItems: 7
                example: [-8,5,-3,0,0,8,1]
                default: [0,0,0,0,0,0,0]
                items:
                  type: integer
                  description: Unit is dB
                  format: int8
                  minimum: -8
                  maximum: 8
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the custom eq of the internal mic.
      description: Defines the custom eq of the internal mic. 
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 7
              maxItems: 7
              example: [-8,5,-3,0,0,8,1]
              items:
                type: integer
                description: Unit is dB
                format: int8
                minimum: -8
                maximum: 8
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/internalMic/noiseGate:
    get:
      summary: Get the noise gate settings of the internal mic.
      description: Command to retrieve the noise gate settings of the bar.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  enabled:
                    type: boolean
                    default: false
                  threshold:
                    type: integer
                    description: Unit is dB
                    format: int8
                    minimum: -70
                    maximum: -30
                    default: -40
                  holdTime:
                    type: integer
                    description: Unit is ms
                    format: uint16
                    minimum: 50
                    maximum: 1000
                    default: 50
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the noise gate settings of the internal mic.
      description: Defines the noise gate settings of the bar.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
                threshold:
                  type: integer
                  description: Unit is dB
                  format: int8
                  minimum: -70
                  maximum: -30
                holdTime:
                  type: integer
                  description: Unit is ms
                  format: uint16
                  minimum: 50
                  maximum: 1000
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/internalMic/priorityZones:
    get:
      tags:
        - Audio
      summary: Get the supported priority zones
      description: Command to retrieve the priority zone ids the device supports
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                minItems: 1
                maxItems: 1
                uniqueItems: true
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                    active: #read-only
                      type: boolean
                      default: false
                    enabled:
                      type: boolean
                      default: false
                    gain:
                      type: string
                      enum:
                        - "Low"
                        - "Medium"
                        - "High"
                      default: "Medium"
                    left:
                      type: integer
                      description: Unit is degree
                      format: uint8
                      minimum: 15
                      maximum: 165
                      example: 15
                    right:
                      type: integer
                      description: Unit is degree
                      format: uint8
                      minimum: 15
                      maximum: 165
                      example: 30
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/internalMic/priorityZones/{id}:
    get:
      tags:
        - Audio
      summary: Get the current priority zone settings of zone number `id`
      description: Command to retrieve the current priority zone settings of zone number `id`.
      security:
        - basicAuthApi: []
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: uint8
            minimum: 0
            maximum: 0
            example: 0
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  active:
                    type: boolean
                    default: false
                  enabled:
                    type: boolean
                    default: false
                  gain:
                    type: string
                    enum:
                      - "Low"
                      - "Medium"
                      - "High"
                    default: "Medium"
                  left:
                    type: integer
                    description: Unit is degree
                    format: uint8
                    minimum: 15
                    maximum: 165
                    example: 15
                  right:
                    type: integer
                    description: Unit is degree
                    format: uint8
                    minimum: 15
                    maximum: 165
                    example: 30
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      tags:
        - Audio
      summary: Set the current priority zone settings of zone number `id`
      description: Command to change the current priority zone settings of zone number `id`.
      security:
        - basicAuthApi: []
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: uint8
            minimum: 0
            maximum: 0
            example: "0"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
                gain:
                  type: string
                  enum:
                    - "Low"
                    - "Medium"
                    - "High"
                  example: "Medium"
                left:
                  type: integer
                  description: Unit is degree
                  format: uint8
                  minimum: 15
                  maximum: 165
                  example: 15
                right:
                  type: integer
                  description: Unit is degree
                  format: uint8
                  minimum: 15
                  maximum: 165
                  example: 30
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error
          
  /api/audio/inputs/internalMic/exclusionZones:
    get:
      tags:
        - Audio
      summary: Get the supported exclusion zone ids
      description: Command to retrieve the exclusion zone ids the device supports
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                minItems: 3
                maxItems: 3
                uniqueItems: true
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                    active: # read-only
                      type: boolean
                      default: false
                    enabled:
                      type: boolean
                      default: false
                    left:
                      type: integer
                      description: Unit is degree
                      format: uint8
                      minimum: 15
                      maximum: 165
                      example: 15
                    right:
                      type: integer
                      description: Unit is degree
                      format: uint8
                      minimum: 15
                      maximum: 165
                      example: 30
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/internalMic/exclusionZones/{id}:
    get:
      tags:
        - Audio
      summary: Get the current exclusion zone settings of zone number `id`
      description: Command to retrieve the current exclusion zone settings of zone number `id`
      security:
        - basicAuthApi: []
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: uint8
            minimum: 0
            maximum: 2
            example: 0
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  active:
                    type: boolean
                    default: false
                  enabled:
                    type: boolean
                    default: false
                  left:
                    type: integer
                    description: Unit is degree
                    format: uint8
                    minimum: 15
                    maximum: 165
                    example: 15
                  right:
                    type: integer
                    description: Unit is degree
                    format: uint8
                    minimum: 15
                    maximum: 165
                    example: 30                          
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)          
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      tags:
        - Audio
      summary: Set the current exclusion zone settings of zone number `id`
      description: Command to change the current exclusion zone settings of zone number `id`
      security:
        - basicAuthApi: []
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: uint8
            minimum: 0
            maximum: 2
            example: 0
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
                left:
                  type: integer
                  description: Unit is degree
                  format: uint8
                  minimum: 15
                  maximum: 165
                  example: 15
                right:
                  type: integer
                  description: Unit is degree
                  format: uint8
                  minimum: 15
                  maximum: 165
                  example: 30                          
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/internalMic/beam:
    get:
      summary: Get the beam position of the internal mic.
      description: Command to retrieve the beam position of the internal mic of the bar.
      tags:
        - Audio
        - FastResource
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                  type: object
                  properties:
                    position:
                      type: integer
                      description: Unit is degree
                      format: uint8
                      minimum: 15
                      maximum: 165
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/bluetooth:
    get:
      summary: Get the bluetooth input parameters.
      description: An SSCv2 Command to retrieve the the bluetooth input parameters of the bar.
      tags:
        - Audio
        - FastResource
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  level:
                    type: integer
                    description: Unit is dB
                    format: int8
                    minimum: -60
                    maximum: 10
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/usb:
    get:
      summary: Get the usb input parameters.
      description: Command to retrieve the the usb input parameters of the bar.
      tags:
        - Audio
        - FastResource
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  level:
                    type: integer
                    description: Unit is dB
                    format: int8
                    minimum: -60
                    maximum: 10
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/outputs/speaker:
    get:
      summary: Get the speaker output parameters.
      description: Defines the speaker output parameters of the bar.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  volume:
                    type: integer
                    format: uint8
                    minimum: 0
                    maximum: 100
                    default: 50
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the the speaker output parameters.
      description: Defines the speaker output parameters.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                volume:
                  type: integer
                  format: uint8
                  minimum: 0
                  maximum: 100
                  example: 50
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/outputs/speaker/customEq:
    get:
      summary: Get the custom eq for speaker output
      description: Defines the custom eq for speaker output.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                minItems: 7
                maxItems: 7
                example: [-8,5,-3,0,0,8,1]
                default: [0,0,0,0,0,0,0]
                items:
                  type: integer
                  description: Unit is dB
                  format: int8
                  minimum: -8
                  maximum: 8
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the custom eq for speaker output
      description: Defines the custom eq for speaker output.
      tags:
        - Audio
      security:
        - basicAuthApi: []        
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 7
              maxItems: 7
              example: [-8,5,-3,0,0,8,1]
              items:
                type: integer
                description: Unit is dB
                format: int8
                minimum: -8
                maximum: 8
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/dante:
    get:
      summary: Get the Dante audio input parameters.
      description: Command to retrieve the Dante Input channel parameters (name, level and gain [dBFS] for mic selector). This is used for connecting extension mics.
      tags:
        - Dante
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                minItems: 2
                maxItems: 2
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      format: uint8
                      minimum: 0
                      maximum: 1
                    gain:
                      type: integer
                      description: Unit is dB
                      format: int8
                      minimum: -60
                      maximum: 0
                      default: 0
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
  
  /api/audio/inputs/dante/{id}:
    get:
      parameters:
        - name: id
          in: path
          description: This id is the same as the id from GET /audio/inputs/dante
          required: true
          schema:
            type: integer
            minimum: 0
            maximum: 1
      summary: Get the Dante audio input parameters of a specific channel.
      description: An SSCv2 Command to retrieve the Dante Input channel parameters (name and gain [dBFS] for mic selector). This is used for connecting extension mics.
      tags:
        - Dante
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  gain:
                    type: integer
                    description: Unit is dB
                    format: int8
                    minimum: -60
                    maximum: 0
                    default: 0
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the Dante audio input parameters for a specific channel.
      description: An SSCv2 Command to set the Dante Input channel parameters (name and gain [dBFS] for mic selector). This is used for connecting extension mics.
      tags:
        - Dante
      security:
        - basicAuthApi: []        
      parameters:
        - name: id
          in: path
          description: This id is the same as the id from GET /audio/inputs/dante
          required: true
          schema:
            type: integer
            minimum: 0
            maximum: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                gain:
                  type: integer
                  description: Unit is dB
                  format: int8
                  minimum: -60
                  maximum: 0
                  example: 0
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct or value out of range. (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/dante/levels:
    get:
      summary: Get the Dante Audio level.
      description: An SSCv2 Command to retrieve the Dante Audio level of the bar.
      tags:
        - Dante
        - FastResource
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                minItems: 2
                maxItems: 2
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      format: uint8
                      minimum: 0
                      maximum: 1
                    value:
                      type: integer
                      description: Unit is dB
                      format: int8
                      minimum: -60
                      maximum: 10
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/dante/{id}/level:
    get:
      parameters:
        - name: id
          in: path
          description: This id is the same as the id from GET /audio/inputs/dante
          required: true
          schema:
            type: integer
            minimum: 0
            maximum: 1
      summary: Get the Dante Audio level of a specific channel.
      description: An SSCv2 Command to retrieve the Dante Audio level of the bar.
      tags:
        - Dante
        - FastResource
      security:
        - basicAuthApi: []        
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: integer
                    description: Unit is dB
                    format: int8
                    minimum: -60
                    maximum: 10
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '422':
          description: Not found since the resource is not existing (e.g., the URL contains a wrong ID)
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/mixer:
    get:
      summary: Get the fading time / behavior for mic selector.
      description: Command to retrieve the fading time for mic selector of the bar.
      tags:
        - Audio
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  fadeBehavior:
                    type: string
                    enum:
                      - "Slow"
                      - "Medium"
                      - "Fast"
                    default: "Medium"
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the fading time / behavior for mic selector.
      description: Defines the fading time / behavior for mic selector. of the bar.
      tags:
        - Audio
      security:
        - basicAuthApi: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                fadeBehavior:
                  type: string
                  enum:
                    - "Slow"
                    - "Medium"
                    - "Fast"
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/inputs/mixer/activity:
    get:
      summary: Get the active mic channel.
      description: A Command to retrieve the active mic channel of the bar, regardless if there is really a signal available or not.  Replaces SSCv1 ``/audio/input/micswitch/activechannel``
      tags:
        - Audio
        - FastResource
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  activeChannel:
                    type: string
                    enum:
                      - "InternalMic"
                      - "ExternalMic1"
                      - "ExternalMic2"
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource (e.g., this route is not allowed for the ``initialSennheiser`` user)
        '500':
          description: SSCv2 Server encountered an internal error

  /api/audio/outputs/conferenceOutput:
    get:
      summary: Get the audio output parameters for the Conference Output.
      description: Defines the audio mix signal for the hearing impaired people applications.
      tags:
        - Audio
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  farEndGain:
                    type: integer
                    description: Unit is dB
                    format: int8
                    minimum: -60
                    maximum: 0
                    default: -6
                  nearEndGain:
                    type: integer
                    description: Unit is dB
                    format: int8
                    minimum: -60
                    maximum: 0
                    default: -6
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Define the audio output paramters for the Conference Output.
      description: Defines the audio mix signal for the hearing impaired people applications. As it is a mix of two signals, be aware of clipping scenarios when setting the gains.
      tags:
        - Audio
      security:
        - basicAuthApi: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                farEndGain:
                  type: integer
                  description: Unit is dB
                  format: int8
                  minimum: -60
                  maximum: 0
                  example: -6
                nearEndGain:
                  type: integer
                  description: Unit is dB
                  format: int8
                  minimum: -60
                  maximum: 0
                  example: -6
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct or the value out of range. (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/device/power/poe/output:
    get:
      summary: Get the power over ethernet settings.
      description: An SSCv2 Command to retrieve the power over ethernet settings. It replaces the SSCv1 node ``power/output/poe/enable``
      tags:
        - Device
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  enabled:
                    type: boolean
                    example: true
                    default: false
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error
    put:
      summary: Write the the power over ethernet settings.
      description: An SSCv2 Command to set the power over ethernet settings of the device. It replaces the SSCv1 node ``power/output/poe/enable``.  Please be aware that an enabled PoE Port will lead to a higher power consumption which will be not compliant to the power saving restrictions. If you use that option, you will accept this.
      tags:
        - Device
      security:
        - basicAuthApi: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled: 
                  type: boolean
                  example: true
      responses:
        '200':
          description: Successful operation
        '400':
          description: Bad request since the format is not correct (e.g., wrong JSON payload)
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource
        '500':
          description: SSCv2 Server encountered an internal error

  /api/interfaces/network/dante:
    get:
      summary: Get the status of the Dante interface.
      description: An SSCv2 Command to retrieve the  status of the Dante interface.
      tags:
        - Device
      security:
        - basicAuthApi: []
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  enabled:
                    type: boolean
                    default: false
        '401':
          description: Unauthorized since no user credentials are passed
        '403':
          description: Forbidden since the authenticated user is not allowed to access this resource (e.g., this route is not allowed for the ``initialSennheiser`` user)
        '500':
          description: SSCv2 Server encountered an internal error