{
  "pluginAlias": "Nest-cam",
  "pluginType": "platform",
  "customUi": true,
  "customUiPath": "./dist/homebridge-ui",
  "singular": true,
  "headerDisplay": "Instructions for setting up the config can be found on the [Github](https://github.com/Brandawg93/homebridge-nest-cam#setting-up-the-configjson).",
  "accountLinkingHeader": "Please supply your Google account credentials.  These will be used to generate a unique access token for your account.  Your email and password will be sent directly to Google and will not be stored anywhere.",
  "schema": {
    "refreshToken": {
      "title": "Refresh Token",
      "type": "string",
      "default": "",
      "required": true
    },
    "options": {
      "title": "Advanced Settings",
      "expandable": true,
      "type": "object",
      "properties": {
        "ffmpegCodec": {
          "title": "FFmpeg Codec",
          "type": "string",
          "default": "libx264",
          "description": "For best results use \"libx264\". The \"copy\" codec is not recommended but may work for less powerful devices.",
          "typeahead": {
            "source": [
              "libx264",
              "copy",
              "h264_omx",
              "h264_videotoolbox",
              "h264_mmal"
            ]
          }  
        },    
        "streamQuality": {
          "title": "Stream Quality",
          "description": "The quality of the stream. (Higher quality means better picture but slower stream) Note: Lowering the quality will force doorbells and hubs to stream in 16:9.",
          "type": "integer",
          "default": "HIGH",
          "oneOf": [
            { "title": "High", "enum": [3] },
            { "title": "Medium", "enum": [2] },
            { "title": "Low", "enum": [1] }
          ]
        },
        "alertCheckRate": {
          "title": "Alert Check Rate",
          "description": "How often to check for alerts? (seconds)",
          "type": "integer",
          "default": 10,
          "minimum": 2,
          "maximum": 60,
          "condition": {
            "functionBody": "return model.options.motionDetection === true || model.options.doorbellAlerts === true;"
          }
        },
        "alertCooldownRate": {
          "title": "Alert Cooldown Rate",
          "description": "How long between consecutive alert notifications? (seconds)",
          "type": "integer",
          "default": 180,
          "minimum": 60,
          "maximum": 300,
          "condition": {
            "functionBody": "return model.options.motionDetection === true || model.options.doorbellAlerts === true;"
          }
        },
        "alertTypes": {
          "title": "Alert Types",
          "description": "Restrict alerts to specific types",
          "type": "array",
          "items": {
            "title": "Alert Type",
            "type": "string",
            "oneOf": [
              { "title": "Motion", "enum": ["Motion"] },
              { "title": "Sound", "enum": ["Sound"] },
              { "title": "Person", "enum": ["Person"] },
              { "title": "Package Retrieved", "enum": ["Package Retrieved"] },
              { "title": "Package Delivered", "enum": ["Package Delivered"] },
              { "title": "Face", "enum": ["Face"] },
              { "title": "Zone", "enum": ["Zone"] }
            ]    
          },
          "condition": {
            "functionBody": "return model.options.motionDetection === true || model.options.doorbellAlerts === true;"
          }
        },
        "importantOnly": {
          "title": "Important Events Only",
          "description": "Only send notifications on events considered important?",
          "type": "boolean",
          "default": true,
          "condition": {
            "functionBody": "return model.options.motionDetection === true || model.options.doorbellAlerts === true;"
          }
        },
        "motionDetection": {
          "title": "Motion Detection",
          "type": "boolean",
          "default": true
        },
        "streamingSwitch": {
          "title": "Streaming Switch",
          "type": "boolean",
          "default": true
        },
        "chimeSwitch": {
          "title": "Indoor Chime Switch",
          "type": "boolean",
          "default": true
        },
        "announcementsSwitch": {
          "title": "Visitor Announcements Switch",
          "type": "boolean",
          "default": true
        },
        "doorbellAlerts": {
          "title": "Doorbell Alerts",
          "type": "boolean",
          "default": true
        },
        "doorbellSwitch": {
          "title": "Doorbell Switch",
          "type": "boolean",
          "default": true
        },
        "audioSwitch": {
          "title": "Audio Switch",
          "type": "boolean",
          "default": true
        },
        "pathToFfmpeg": {
          "title": "Path to FFMPEG",
          "description": "In order to use a custom FFMPEG build, add the path to the FFMPEG binary here. Otherwise, leave blank.",
          "type": "string",
          "placeholder": "/path/to/ffmpeg"
        },
        "structures": {
          "title": "Structures",
          "description": "Restart homebridge after logging in to see available structures. (All structures show if left blank.)",
          "type": "array",
          "items": {
            "title": "Structure Name",
            "type": "string"
          }
        },
        "cameras": {
          "title": "Cameras",
          "description": "Restart homebridge after logging in to see available cameras. (All cameras show if left blank.)",
          "type": "array",
          "items": {
            "title": "Camera Name",
            "type": "string"
          }
        },
        "fieldTest": {
          "title": "Field Test",
          "description": "Enable this if you have a field test account. Leave blank if you are not sure.",
          "type": "boolean",
          "default": false
        }
      }
    }
  }
}
