{
    "pluginAlias": "PrometheusExporter",
    "pluginType": "platform",
    "singular": true,
    "schema": {
        "type": "object",
        "required": ["pin"],
        "properties": {
            "pin": {
                "title": "Pin",
                "description": "Homebridge PIN for service authentication",
                "type": "string",
                "pattern": "^\\d{3}-\\d{2}-\\d{3}$",
                "required": true
            },
            "debug": {
                "title": "Debug",
                "type": "boolean",
                "required": false,
                "default": false
            },
            "prefix": {
                "title": "Metrics prefix",
                "type": "string",
                "required": false,
                "default": "homebridge"
            },
            "port": {
                "title": "Metrics server port",
                "description": "TCP port where the Prometheus metrics server listens",
                "type": "integer",
                "required": false,
                "default": 36123
            },
            "interface": {
                "title": "Metrics server interface",
                "description": "Interface where the Prometheus metrics server listens. Can be an IP, a hostname, \"0.0.0.0\" for all IPv4 interfaces, \"::1\" for all IPv6 interfaces. Default is \"::\" which means \"any interface\"",
                "type": "string",
                "default": "::"
            },
            "refresh_interval": {
                "title": "Service refresh interval",
                "description": "Discover new services every <interval> seconds",
                "type": "integer",
                "required": false,
                "default": 60
            },
            "request_timeout": {
                "title": "Request timeout",
                "description": "Request timeout when interacting with homebridge instances",
                "type": "integer",
                "required": false,
                "default": 10
            },
            "discovery_timeout": {
                "title": "Service discovery timeout",
                "description": "Discovery timeout after which the current discovery is considered failed",
                "type": "integer",
                "required": false,
                "default": 20
            },
            "tls_cert_file": {
                "title": "TLS cert file",
                "description": "Path to TLS certificate file (in PEM format)",
                "type": "string",
                "required": false
            },
            "tls_key_file": {
                "title": "TLS key file",
                "description": "Path to TLS key file",
                "type": "string",
                "required": false
            },
            "basic_auth": {
                "title": "Basic auth username/password pairs",
                "description": "Usernames and passwords for basic auth. Object key is the username, object value is the password. Password must be encoded with bcrypt. Example: {\"joanna\": \"$2a$12$5/mmmRB28wg9yzaXhee5Iupq3UrFr/qMgAe9LvAxGoY5jLcfVGTUq\"}",
                "type": "object",
                "additionalProperties": { "type": "string" },
                "required": false
            }
        }
    }
}
