{
  "pluginAlias": "GenieAladdinConnect",
  "pluginType": "platform",
  "singular": true,
  "schema": {
    "type": "object",
    "properties": {
      "name": {
        "title": "Name",
        "type": "string",
        "default": "Garage Door",
        "minLength": 1,
        "required": true
      },
      "username": {
        "title": "User Name/Email Address",
        "type": "string",
        "required": true
      },
      "password": {
        "title": "Password",
        "type": "string",
        "required": true
      },
      "batteryLowLevel": {
        "title": "Low battery warning threshold level (in percent)",
        "type": "integer",
        "default": 15,
        "minimum": 0,
        "maximum": 100
      },
      "doorStatusStationaryCacheTtl": {
        "title": "Stationary door status cache TTL (in seconds). Used when the door is in a stationary state.",
        "type": "integer",
        "default": 15,
        "minimum": 5,
        "maximum": 60
      },
      "doorStatusTransitioningCacheTtl": {
        "title": "Transitioning door status cache TTL (in seconds). Used when the door is in a transitioning state.",
        "type": "integer",
        "default": 5,
        "minimum": 1,
        "maximum": 30
      },
      "doorStatusPollInterval": {
        "title": "Door Status Poll Interval (in milliseconds)",
        "type": "integer",
        "default": 15000,
        "minimum": 5000,
        "maximum": 60000
      },
      "logApiResponses": {
        "title": "Log Genie API responses in debug mode",
        "type": "boolean",
        "default": false
      },
      "showShared": {
        "title": "Show doors that have been shared with me",
        "type": "boolean",
        "default": false
      },
      "ignoreDevices": {
        "title": "Ignore Doors By ID",
        "description": "Ignore doors by their device ID obtained from the logs during startup.",
        "type": "array",
        "default": [],
        "required": false,
        "items": {
          "title": "Device ID",
          "type": "string"
        }
      }
    }
  },
  "layout": [
    "name",
    "username",
    { "key": "password", "type": "password" },
    {
      "type": "section",
      "title": "Advanced Settings",
      "expandable": true,
      "expanded": false,
      "items": [
        "batteryLowLevel",
        "doorStatusStationaryCacheTtl",
        "doorStatusTransitioningCacheTtl",
        "doorStatusPollInterval",
        "logApiResponses",
        "showShared",
        {
          "key": "ignoreDevices",
          "type": "array",
          "name": "Device ID",
          "orderable": false,
          "buttonText": "Add Device ID",
          "items": {
            "key": "ignoreDevices[]",
            "type": "string",
            "pattern": "^[A-F0-9]{12}_[1-9]+$",
            "title": "Device ID",
            "placeholder": "eg. F0AD4E1BC74D_1"
          }
        }
      ]
    }
  ]
}
