{
  "pluginAlias": "UnifiAccess",
  "pluginType": "platform",
  "singular": true,
  "schema": {
    "type": "object",
    "properties": {
      "name": {
        "title": "name",
        "type": "string",
        "required": false,
        "default": "Unifi Access"
      },
      "host": {
        "title": "IP/Host",
        "type": "string",
        "required": true,
        "description": "The IP/host of the unifi access controller"
      },
      "port": {
        "title": "Port",
        "type": "number",
        "required": true,
        "default": 12445,
        "description": "The IP/host of the unifi access controller"
      },
      "token": {
        "title": "API Token",
        "type": "string",
        "required": true,
        "description": "Unifi Access API token (create a token at System > General > API Token)"
      },
      "mqtt": {
        "title": "Mqtt",
        "type": "object",
        "required": false,
        "properties": {
          "host": {
            "title": "Broker host",
            "type": "string",
            "required": true,
            "description": "The IP/host of the mqtt broker"
          },
          "port": {
            "title": "Port",
            "type": "number",
            "required": true,
            "default": 1883,
            "description": "The port of the mqtt broker"
          },
          "auth": {
            "title": "Auth",
            "type": "object",
            "required": false,
            "properties": {
              "username": {
                "title": "Username",
                "type": "string",
                "required": true
              },
              "password": {
                "title": "Password",
                "type": "string",
                "required": true
              }
            }
          },
          "baseTopic": {
            "title": "Base Topic",
            "type": "string",
            "required": false,
            "default": "unifi/access",
            "description": "The base topic for all the published topics"
          },
          "events": {
            "title": "Event types",
            "type": "array",
            "items": {
              "title": "Event",
              "type": "string"
            }
          }
        }
      },
      "devices": {
        "title": "Devices",
        "type": "array",
        "items": {
          "title": "Device",
          "type": "object",
          "properties": {
            "id": {
              "title": "ID",
              "type": "string",
              "required": true,
              "description": "The door ID as shown in the homebridge logs",
              "minLength": 1
            },
            "ignore": {
              "title": "Ignore this device/door",
              "type": "boolean",
              "required": false,
              "default": false,
              "description": "When set, the device will be ignore and will not be exposed to homekit"
            },
            "asGarageDoor": {
              "title": "Publish as Garage Door",
              "type": "boolean",
              "required": false,
              "default": false,
              "description": "When set the door will be published to HomeKit as a Garage Door"
            }
          }
        }
      }
    }
  }
}