{
  "title": "Matterbridge webhooks plugin",
  "description": "matterbridge-webhooks v. 0.0.1 by https://github.com/Luligu",
  "type": "object",
  "properties": {
    "name": {
      "title": "Plugin Name",
      "description": "Plugin name",
      "type": "string",
      "readOnly": true,
      "ui:widget": "hidden"
    },
    "type": {
      "title": "Plugin Type",
      "description": "Plugin type",
      "type": "string",
      "readOnly": true,
      "ui:widget": "hidden"
    },
    "version": {
      "title": "Plugin Version",
      "description": "Plugin version",
      "type": "string",
      "readOnly": true,
      "default": "0.0.1",
      "ui:widget": "hidden"
    },
    "whiteList": {
      "title": "White List",
      "description": "Only the webhooks in the list will be exposed. If the list is empty, all the webhooks will be exposed.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectFrom": "name"
    },
    "blackList": {
      "title": "Black List",
      "description": "The webhooks in the list will not be exposed. If the list is empty, no webhooks will be excluded.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectFrom": "name"
    },
    "deviceType": {
      "title": "Device Type",
      "type": "string",
      "default": "Outlet",
      "enum": ["Outlet", "Switch", "Light"],
      "description": "Select how to represent the webhooks on the controller. Don't use Switch for Alexa."
    },
    "webhooks": {
      "title": "Webhooks",
      "description": "Define each webhooks. Enter in the first field the name of the webhook (replace newKey with the name of the webhook) and in the right panel the parameters.",
      "type": "object",
      "uniqueItems": true,
      "additionalProperties": {
        "type": "object",
        "description": "Webhook parameters:",
        "required": ["method", "httpUrl"],
        "properties": {
          "method": {
            "type": "string",
            "default": "GET",
            "enum": ["GET", "POST", "PUT"],
            "description": "HTTP method to use for the webhook."
          },
          "httpUrl": {
            "type": "string",
            "title": "Webhook URL",
            "description": "URL to which the webhook will send requests."
          },
          "test": {
            "type": "boolean",
            "default": false,
            "buttonText": "Test",
            "description": "Test the webhook by sending a request"
          }
        }
      }
    },
    "outlets": {
      "title": "Outlets",
      "description": "Define each outlet. Enter in the first field the name of the outlet (replace newKey with the name of the outlet) and in the right panel the urls (i.e. \"[GET|POST|PUT]#http://mydomain.com/api/device/on\").",
      "type": "object",
      "uniqueItems": true,
      "additionalProperties": {
        "type": "object",
        "description": "Outlet parameters:",
        "required": ["onUrl", "offUrl"],
        "properties": {
          "onUrl": {
            "type": "string",
            "title": "Outlet On URL",
            "description": "URL to turn on the outlet."
          },
          "offUrl": {
            "type": "string",
            "title": "Outlet Off URL",
            "description": "URL to turn off the outlet."
          }
        }
      }
    },
    "lights": {
      "title": "Lights",
      "description": "Define each light. Enter in the first field the name of the light (replace newKey with the name of the light) and in the right panel the urls (i.e. [GET|POST|PUT]#http://mydomain.com/api/device/on).",
      "type": "object",
      "uniqueItems": true,
      "additionalProperties": {
        "type": "object",
        "description": "Light parameters:",
        "required": ["onUrl", "offUrl"],
        "properties": {
          "minMireds": {
            "type": "integer",
            "title": "Minimum Mireds",
            "default": 154,
            "description": "Minimum color temperature in Mireds (Kelvin = 1000000 / Mireds). Default is 154 (6500K)."
          },
          "maxMireds": {
            "type": "integer",
            "title": "Maximum Mireds",
            "default": 500,
            "description": "Maximum color temperature in Mireds (Kelvin = 1000000 / Mireds). Default is 500 (2000K)."
          },
          "onUrl": {
            "type": "string",
            "title": "Light On URL",
            "description": "URL to turn on the light."
          },
          "offUrl": {
            "type": "string",
            "title": "Light Off URL",
            "description": "URL to turn off the light."
          },
          "brightnessUrl": {
            "type": "string",
            "title": "Light Brightness URL",
            "description": "URL to adjust the brightness of the light. (i.e. [GET|POST]:http://mydomain.com/api/device?brightness=${BRIGHTNESS})"
          },
          "colorTempUrl": {
            "type": "string",
            "title": "Light Color Temperature URL",
            "description": "URL to adjust the color temperature of the light. (i.e. [GET|POST]:http://mydomain.com/api/device?colorTemp=${MIRED})"
          },
          "rgbUrl": {
            "type": "string",
            "title": "Light RGB URL",
            "description": "URL to adjust the RGB color of the light. (i.e. [GET|POST]:http://mydomain.com/api/device?hue=${HUE}&saturation=${SATURATION})"
          }
        }
      }
    },
    "debug": {
      "title": "Enable Debug",
      "description": "Enable the debug for the plugin.",
      "type": "boolean",
      "default": false
    },
    "unregisterOnShutdown": {
      "title": "Unregister On Shutdown",
      "description": "Unregister all devices on shutdown. This will remove all devices from the controller when the plugin is stopped.",
      "type": "boolean",
      "default": false
    }
  }
}
