{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/drush.site.yml.json",
  "additionalProperties": {
    "type": "object",
    "properties": {
      "root": {
        "title": "The Drupal root for this site",
        "default": "/path/to/drupal/root",
        "type": "string"
      },
      "host": {
        "title": "The fully-qualified domain name of the remote system hosting the Drupal instance",
        "default": "my-server.com",
        "type": "string"
      },
      "uri": {
        "title": "Site URI",
        "description": "The value of uri should always be the same as when the site is being accessed from a web browser",
        "default": "https://example.com",
        "type": "string"
      },
      "user": {
        "title": "The username to log in as when using ssh or rsync",
        "type": "string"
      },
      "os": {
        "title": "The operating system of the remote server",
        "type": "string",
        "enum": ["Windows", "Linux"]
      },
      "ssh": {
        "title": "Contains settings used to control how ssh commands are generated when running remote commands",
        "type": "object",
        "properties": {
          "options": {
            "title": "Additional commandline options for the ssh command itself",
            "type": "string"
          },
          "tty": {
            "title": "A flag to force Drush to always or never create a tty",
            "type": "boolean"
          }
        }
      },
      "paths": {
        "title": "Aliases for common rsync targets",
        "type": "object",
        "properties": {
          "drush-script": {
            "title": "Path to the remote Drush command",
            "default": "/path/to/drush",
            "type": "string"
          },
          "alias-path": {
            "title": "A list of paths where Drush will search for alias files",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "files": {
            "titles": "Path to 'files' directory",
            "type": "string"
          }
        },
        "additionalProperties": {
          "type": "string"
        }
      },
      "command": {
        "title": "Contains options for specific commands",
        "type": "object",
        "additionalProperties": {
          "type": "object"
        }
      },
      "docker": {
        "type": "object",
        "properties": {
          "service": {
            "title": "The name of the container to run on",
            "type": "string"
          },
          "exec": {
            "type": "object",
            "options": {
              "title": "Options for exec command",
              "type": "string"
            }
          }
        }
      },
      "vagrant": {
        "title": "Vagrant transport",
        "type": "null"
      }
    }
  },
  "title": "JSON Schema for Drush site aliases",
  "type": "object"
}
