{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Config",
  "description": "The config type mapped to `tauri.conf.json`.",
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string",
      "default": "types/schema.json"
    },
    "build": {
      "description": "The build configuration.",
      "default": {
        "devPath": "http://localhost:8080/",
        "distDir": "../dist",
        "withGlobalTauri": false
      },
      "allOf": [
        {
          "$ref": "#/definitions/BuildConfig"
        }
      ]
    },
    "package": {
      "description": "Package settings.",
      "default": {
        "productName": null,
        "version": null
      },
      "allOf": [
        {
          "$ref": "#/definitions/PackageConfig"
        }
      ]
    },
    "plugins": {
      "description": "The plugins config.",
      "default": {},
      "allOf": [
        {
          "$ref": "#/definitions/PluginConfig"
        }
      ]
    },
    "tauri": {
      "description": "The Tauri configuration.",
      "default": {
        "allowlist": {
          "all": false,
          "clipboard": {
            "all": false,
            "readText": false,
            "writeText": false
          },
          "dialog": {
            "all": false,
            "ask": false,
            "confirm": false,
            "message": false,
            "open": false,
            "save": false
          },
          "fs": {
            "all": false,
            "copyFile": false,
            "createDir": false,
            "readDir": false,
            "readFile": false,
            "removeDir": false,
            "removeFile": false,
            "renameFile": false,
            "scope": [],
            "writeFile": false
          },
          "globalShortcut": {
            "all": false
          },
          "http": {
            "all": false,
            "request": false,
            "scope": []
          },
          "notification": {
            "all": false
          },
          "os": {
            "all": false
          },
          "path": {
            "all": false
          },
          "process": {
            "all": false,
            "exit": false,
            "relaunch": false,
            "relaunchDangerousAllowSymlinkMacos": false
          },
          "protocol": {
            "all": false,
            "asset": false,
            "assetScope": []
          },
          "shell": {
            "all": false,
            "execute": false,
            "open": false,
            "scope": [],
            "sidecar": false
          },
          "window": {
            "all": false,
            "center": false,
            "close": false,
            "create": false,
            "hide": false,
            "maximize": false,
            "minimize": false,
            "print": false,
            "requestUserAttention": false,
            "setAlwaysOnTop": false,
            "setDecorations": false,
            "setFocus": false,
            "setFullscreen": false,
            "setIcon": false,
            "setMaxSize": false,
            "setMinSize": false,
            "setPosition": false,
            "setResizable": false,
            "setSize": false,
            "setSkipTaskbar": false,
            "setTitle": false,
            "show": false,
            "startDragging": false,
            "unmaximize": false,
            "unminimize": false
          }
        },
        "bundle": {
          "active": false,
          "deb": {
            "files": {},
            "useBootstrapper": false
          },
          "icon": [],
          "identifier": "",
          "macOS": {
            "minimumSystemVersion": "10.13",
            "useBootstrapper": false
          },
          "windows": {
            "certificateThumbprint": null,
            "digestAlgorithm": null,
            "timestampUrl": null,
            "webviewFixedRuntimePath": null,
            "wix": null
          }
        },
        "macOSPrivateApi": false,
        "pattern": {
          "use": "brownfield"
        },
        "security": {
          "freezePrototype": false
        },
        "updater": {
          "active": false,
          "dialog": true,
          "pubkey": ""
        },
        "windows": []
      },
      "allOf": [
        {
          "$ref": "#/definitions/TauriConfig"
        }
      ]
    }
  },
  "additionalProperties": false,
  "definitions": {
    "AllowlistConfig": {
      "description": "Allowlist configuration.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all API features.",
          "default": false,
          "type": "boolean"
        },
        "clipboard": {
          "description": "Clipboard APIs allowlist.",
          "default": {
            "all": false,
            "readText": false,
            "writeText": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/ClipboardAllowlistConfig"
            }
          ]
        },
        "dialog": {
          "description": "Dialog API allowlist.",
          "default": {
            "all": false,
            "ask": false,
            "confirm": false,
            "message": false,
            "open": false,
            "save": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/DialogAllowlistConfig"
            }
          ]
        },
        "fs": {
          "description": "File system API allowlist.",
          "default": {
            "all": false,
            "copyFile": false,
            "createDir": false,
            "readDir": false,
            "readFile": false,
            "removeDir": false,
            "removeFile": false,
            "renameFile": false,
            "scope": [],
            "writeFile": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/FsAllowlistConfig"
            }
          ]
        },
        "globalShortcut": {
          "description": "Global shortcut API allowlist.",
          "default": {
            "all": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/GlobalShortcutAllowlistConfig"
            }
          ]
        },
        "http": {
          "description": "HTTP API allowlist.",
          "default": {
            "all": false,
            "request": false,
            "scope": []
          },
          "allOf": [
            {
              "$ref": "#/definitions/HttpAllowlistConfig"
            }
          ]
        },
        "notification": {
          "description": "Notification API allowlist.",
          "default": {
            "all": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/NotificationAllowlistConfig"
            }
          ]
        },
        "os": {
          "description": "OS allowlist.",
          "default": {
            "all": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/OsAllowlistConfig"
            }
          ]
        },
        "path": {
          "description": "Path API allowlist.",
          "default": {
            "all": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/PathAllowlistConfig"
            }
          ]
        },
        "process": {
          "description": "Process API allowlist.",
          "default": {
            "all": false,
            "exit": false,
            "relaunch": false,
            "relaunchDangerousAllowSymlinkMacos": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/ProcessAllowlistConfig"
            }
          ]
        },
        "protocol": {
          "description": "Custom protocol allowlist.",
          "default": {
            "all": false,
            "asset": false,
            "assetScope": []
          },
          "allOf": [
            {
              "$ref": "#/definitions/ProtocolAllowlistConfig"
            }
          ]
        },
        "shell": {
          "description": "Shell API allowlist.",
          "default": {
            "all": false,
            "execute": false,
            "open": false,
            "scope": [],
            "sidecar": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/ShellAllowlistConfig"
            }
          ]
        },
        "window": {
          "description": "Window API allowlist.",
          "default": {
            "all": false,
            "center": false,
            "close": false,
            "create": false,
            "hide": false,
            "maximize": false,
            "minimize": false,
            "print": false,
            "requestUserAttention": false,
            "setAlwaysOnTop": false,
            "setDecorations": false,
            "setFocus": false,
            "setFullscreen": false,
            "setIcon": false,
            "setMaxSize": false,
            "setMinSize": false,
            "setPosition": false,
            "setResizable": false,
            "setSize": false,
            "setSkipTaskbar": false,
            "setTitle": false,
            "show": false,
            "startDragging": false,
            "unmaximize": false,
            "unminimize": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/WindowAllowlistConfig"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "AppUrl": {
      "description": "The `dev_path` and `dist_dir` options.",
      "anyOf": [
        {
          "description": "The app's external URL, or the path to the directory containing the app assets.",
          "allOf": [
            {
              "$ref": "#/definitions/WindowUrl"
            }
          ]
        },
        {
          "description": "An array of files to embed on the app.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "BuildConfig": {
      "description": "The Build configuration object.",
      "type": "object",
      "properties": {
        "beforeBuildCommand": {
          "description": "A shell command to run before `tauri build` kicks in.\n\nThe TAURI_PLATFORM, TAURI_ARCH, TAURI_FAMILY, TAURI_PLATFORM_VERSION, TAURI_PLATFORM_TYPE and TAURI_DEBUG environment variables are set if you perform conditional compilation.",
          "type": [
            "string",
            "null"
          ]
        },
        "beforeDevCommand": {
          "description": "A shell command to run before `tauri dev` kicks in.\n\nThe TAURI_PLATFORM, TAURI_ARCH, TAURI_FAMILY, TAURI_PLATFORM_VERSION, TAURI_PLATFORM_TYPE and TAURI_DEBUG environment variables are set if you perform conditional compilation.",
          "type": [
            "string",
            "null"
          ]
        },
        "devPath": {
          "description": "The path or URL to use on development.",
          "default": "http://localhost:8080/",
          "allOf": [
            {
              "$ref": "#/definitions/AppUrl"
            }
          ]
        },
        "distDir": {
          "description": "The path to the app's dist dir. This path must contain your index.html file.",
          "default": "../dist",
          "allOf": [
            {
              "$ref": "#/definitions/AppUrl"
            }
          ]
        },
        "features": {
          "description": "Features passed to `cargo` commands.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "runner": {
          "description": "The binary used to build and run the application.",
          "type": [
            "string",
            "null"
          ]
        },
        "withGlobalTauri": {
          "description": "Whether we should inject the Tauri API on `window.__TAURI__` or not.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "BundleConfig": {
      "description": "Configuration for tauri-bundler.",
      "type": "object",
      "required": [
        "identifier"
      ],
      "properties": {
        "active": {
          "description": "Whether we should build your app with tauri-bundler or plain `cargo build`",
          "default": false,
          "type": "boolean"
        },
        "category": {
          "description": "The application kind.",
          "type": [
            "string",
            "null"
          ]
        },
        "copyright": {
          "description": "A copyright string associated with your application.",
          "type": [
            "string",
            "null"
          ]
        },
        "deb": {
          "description": "Configuration for the Debian bundle.",
          "default": {
            "files": {},
            "useBootstrapper": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/DebConfig"
            }
          ]
        },
        "externalBin": {
          "description": "A list of—either absolute or relative—paths to binaries to embed with your application.\n\nNote that Tauri will look for system-specific binaries following the pattern \"binary-name{-target-triple}{.system-extension}\".\n\nE.g. for the external binary \"my-binary\", Tauri looks for:\n\n- \"my-binary-x86_64-pc-windows-msvc.exe\" for Windows - \"my-binary-x86_64-apple-darwin\" for macOS - \"my-binary-x86_64-unknown-linux-gnu\" for Linux\n\nso don't forget to provide binaries for all targeted platforms.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "icon": {
          "description": "The app's icons",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "identifier": {
          "description": "The app's identifier",
          "type": "string"
        },
        "longDescription": {
          "description": "A longer, multi-line description of the application.",
          "type": [
            "string",
            "null"
          ]
        },
        "macOS": {
          "description": "Configuration for the macOS bundles.",
          "default": {
            "minimumSystemVersion": "10.13",
            "useBootstrapper": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/MacConfig"
            }
          ]
        },
        "resources": {
          "description": "App resources to bundle. Each resource is a path to a file or directory. Glob patterns are supported.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "shortDescription": {
          "description": "A short description of your application.",
          "type": [
            "string",
            "null"
          ]
        },
        "targets": {
          "description": "The bundle targets, currently supports [\"deb\", \"app\", \"msi\", \"appimage\", \"dmg\"] or \"all\"",
          "anyOf": [
            {
              "$ref": "#/definitions/BundleTarget"
            },
            {
              "type": "null"
            }
          ]
        },
        "windows": {
          "description": "Configuration for the Windows bundle.",
          "default": {
            "certificateThumbprint": null,
            "digestAlgorithm": null,
            "timestampUrl": null,
            "webviewFixedRuntimePath": null,
            "wix": null
          },
          "allOf": [
            {
              "$ref": "#/definitions/WindowsConfig"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "BundleTarget": {
      "description": "Targets to bundle.",
      "anyOf": [
        {
          "description": "A list of bundle targets.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "description": "A single bundle target.",
          "type": "string"
        }
      ]
    },
    "CliArg": {
      "description": "A CLI argument definition.",
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "conflictsWith": {
          "description": "Sets a conflicting argument by name i.e. when using this argument, the following argument can't be present and vice versa.",
          "type": [
            "string",
            "null"
          ]
        },
        "conflictsWithAll": {
          "description": "The same as conflictsWith but allows specifying multiple two-way conflicts per argument.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "description": {
          "description": "The argument description which will be shown on the help information. Typically, this is a short (one line) description of the arg.",
          "type": [
            "string",
            "null"
          ]
        },
        "index": {
          "description": "The positional argument index, starting at 1.\n\nThe index refers to position according to other positional argument. It does not define position in the argument list as a whole. When utilized with multiple=true, only the last positional argument may be defined as multiple (i.e. the one with the highest index).",
          "type": [
            "integer",
            "null"
          ],
          "format": "uint",
          "minimum": 0.0
        },
        "longDescription": {
          "description": "The argument long description which will be shown on the help information. Typically this a more detailed (multi-line) message that describes the argument.",
          "type": [
            "string",
            "null"
          ]
        },
        "maxValues": {
          "description": "Specifies the maximum number of values are for this argument. For example, if you had a -f <file> argument where you wanted up to 3 'files', you would set .max_values(3), and this argument would be satisfied if the user provided, 1, 2, or 3 values.",
          "type": [
            "integer",
            "null"
          ],
          "format": "uint",
          "minimum": 0.0
        },
        "minValues": {
          "description": "Specifies the minimum number of values for this argument. For example, if you had a -f <file> argument where you wanted at least 2 'files', you would set `minValues: 2`, and this argument would be satisfied if the user provided, 2 or more values.",
          "type": [
            "integer",
            "null"
          ],
          "format": "uint",
          "minimum": 0.0
        },
        "multiple": {
          "description": "Specifies that the argument may have an unknown number of multiple values. Without any other settings, this argument may appear only once.\n\nFor example, --opt val1 val2 is allowed, but --opt val1 val2 --opt val3 is not.\n\nNOTE: Setting this requires `takes_value` to be set to true.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "multipleOccurrences": {
          "description": "Specifies that the argument may appear more than once. For flags, this results in the number of occurrences of the flag being recorded. For example -ddd or -d -d -d would count as three occurrences. For options or arguments that take a value, this does not affect how many values they can accept. (i.e. only one at a time is allowed)\n\nFor example, --opt val1 --opt val2 is allowed, but --opt val1 val2 is not.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "name": {
          "description": "The unique argument name",
          "type": "string"
        },
        "numberOfValues": {
          "description": "Specifies how many values are required to satisfy this argument. For example, if you had a `-f <file>` argument where you wanted exactly 3 'files' you would set `number_of_values = 3`, and this argument wouldn't be satisfied unless the user provided 3 and only 3 values.\n\n**NOTE:** Does *not* require `multiple_occurrences = true` to be set. Setting `multiple_occurrences = true` would allow `-f <file> <file> <file> -f <file> <file> <file>` where as *not* setting it would only allow one occurrence of this argument.\n\n**NOTE:** implicitly sets `takes_value = true` and `multiple_values = true`.",
          "type": [
            "integer",
            "null"
          ],
          "format": "uint",
          "minimum": 0.0
        },
        "possibleValues": {
          "description": "Specifies a list of possible values for this argument. At runtime, the CLI verifies that only one of the specified values was used, or fails with an error message.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "requireEquals": {
          "description": "Requires that options use the --option=val syntax i.e. an equals between the option and associated value.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "required": {
          "description": "Sets whether or not the argument is required by default.\n\n- Required by default means it is required, when no other conflicting rules have been evaluated - Conflicting rules take precedence over being required.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "requiredIfEq": {
          "description": "Allows specifying that an argument is required conditionally with the signature [arg, value] the requirement will only become valid if the `arg`'s value equals `${value}`.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "requiredUnlessPresent": {
          "description": "Sets an arg that override this arg's required setting i.e. this arg will be required unless this other argument is present.",
          "type": [
            "string",
            "null"
          ]
        },
        "requiredUnlessPresentAll": {
          "description": "Sets args that override this arg's required setting i.e. this arg will be required unless all these other arguments are present.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "requiredUnlessPresentAny": {
          "description": "Sets args that override this arg's required setting i.e. this arg will be required unless at least one of these other arguments are present.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "requires": {
          "description": "Tets an argument by name that is required when this one is present i.e. when using this argument, the following argument must be present.",
          "type": [
            "string",
            "null"
          ]
        },
        "requiresAll": {
          "description": "Sts multiple arguments by names that are required when this one is present i.e. when using this argument, the following arguments must be present.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "requiresIf": {
          "description": "Allows a conditional requirement with the signature [arg, value] the requirement will only become valid if `arg`'s value equals `${value}`.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "short": {
          "description": "The short version of the argument, without the preceding -.\n\nNOTE: Any leading - characters will be stripped, and only the first non - character will be used as the short version.",
          "type": [
            "string",
            "null"
          ],
          "maxLength": 1,
          "minLength": 1
        },
        "takesValue": {
          "description": "Specifies that the argument takes a value at run time.\n\nNOTE: values for arguments may be specified in any of the following methods - Using a space such as -o value or --option value - Using an equals and no space such as -o=value or --option=value - Use a short and no space such as -ovalue",
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "CliConfig": {
      "description": "describes a CLI configuration",
      "type": "object",
      "properties": {
        "afterHelp": {
          "description": "Adds additional help information to be displayed in addition to auto-generated help. This information is displayed after the auto-generated help information. This is often used to describe how to use the arguments, or caveats to be noted.",
          "type": [
            "string",
            "null"
          ]
        },
        "args": {
          "description": "List of arguments for the command",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/CliArg"
          }
        },
        "beforeHelp": {
          "description": "Adds additional help information to be displayed in addition to auto-generated help. This information is displayed before the auto-generated help information. This is often used for header information.",
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "description": "Command description which will be shown on the help information.",
          "type": [
            "string",
            "null"
          ]
        },
        "longDescription": {
          "description": "Command long description which will be shown on the help information.",
          "type": [
            "string",
            "null"
          ]
        },
        "subcommands": {
          "description": "List of subcommands of this command",
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": {
            "$ref": "#/definitions/CliConfig"
          }
        }
      },
      "additionalProperties": false
    },
    "ClipboardAllowlistConfig": {
      "description": "Allowlist for the clipboard APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all clipboard APIs.",
          "default": false,
          "type": "boolean"
        },
        "readText": {
          "description": "Enables the clipboard's `readText` API.",
          "default": false,
          "type": "boolean"
        },
        "writeText": {
          "description": "Enables the clipboard's `writeText` API.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "DebConfig": {
      "description": "Configuration for Debian (.deb) bundles.",
      "type": "object",
      "properties": {
        "depends": {
          "description": "The list of deb dependencies your application relies on.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "files": {
          "description": "The files to include on the package.",
          "default": {},
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "useBootstrapper": {
          "description": "Enable the boostrapper script.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "DialogAllowlistConfig": {
      "description": "Allowlist for the dialog APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all dialog API features.",
          "default": false,
          "type": "boolean"
        },
        "ask": {
          "description": "Allows the API to show a dialog window with Yes/No buttons.",
          "default": false,
          "type": "boolean"
        },
        "confirm": {
          "description": "Allows the API to show a dialog window with Ok/Cancel buttons.",
          "default": false,
          "type": "boolean"
        },
        "message": {
          "description": "Allows the API to show a message dialog window.",
          "default": false,
          "type": "boolean"
        },
        "open": {
          "description": "Allows the API to open a dialog window to pick files.",
          "default": false,
          "type": "boolean"
        },
        "save": {
          "description": "Allows the API to open a dialog window to pick where to save files.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "FsAllowlistConfig": {
      "description": "Allowlist for the file system APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all file system API features.",
          "default": false,
          "type": "boolean"
        },
        "copyFile": {
          "description": "Copy file from local filesystem.",
          "default": false,
          "type": "boolean"
        },
        "createDir": {
          "description": "Create directory from local filesystem.",
          "default": false,
          "type": "boolean"
        },
        "readDir": {
          "description": "Read directory from local filesystem.",
          "default": false,
          "type": "boolean"
        },
        "readFile": {
          "description": "Read file from local filesystem.",
          "default": false,
          "type": "boolean"
        },
        "removeDir": {
          "description": "Remove directory from local filesystem.",
          "default": false,
          "type": "boolean"
        },
        "removeFile": {
          "description": "Remove file from local filesystem.",
          "default": false,
          "type": "boolean"
        },
        "renameFile": {
          "description": "Rename file from local filesystem.",
          "default": false,
          "type": "boolean"
        },
        "scope": {
          "description": "The access scope for the filesystem APIs.",
          "default": [],
          "allOf": [
            {
              "$ref": "#/definitions/FsAllowlistScope"
            }
          ]
        },
        "writeFile": {
          "description": "Write file to local filesystem.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "FsAllowlistScope": {
      "description": "Filesystem scope definition. It is a list of glob patterns that restrict the API access from the webview.\n\nEach pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "GlobalShortcutAllowlistConfig": {
      "description": "Allowlist for the global shortcut APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all global shortcut API features.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "HttpAllowlistConfig": {
      "description": "Allowlist for the HTTP APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all HTTP API features.",
          "default": false,
          "type": "boolean"
        },
        "request": {
          "description": "Allows making HTTP requests.",
          "default": false,
          "type": "boolean"
        },
        "scope": {
          "description": "The access scope for the HTTP APIs.",
          "default": [],
          "allOf": [
            {
              "$ref": "#/definitions/HttpAllowlistScope"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "HttpAllowlistScope": {
      "description": "HTTP API scope definition. It is a list of URLs that can be accessed by the webview when using the HTTP APIs. The scoped URL is matched against the request URL using a glob pattern.\n\n# Examples\n\n- \"https://*\": allows all HTTPS urls - \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path - \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"",
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "MacConfig": {
      "description": "Configuration for the macOS bundles.",
      "type": "object",
      "properties": {
        "entitlements": {
          "description": "Path to the entitlements file.",
          "type": [
            "string",
            "null"
          ]
        },
        "exceptionDomain": {
          "description": "Allows your application to communicate with the outside world. It should be a lowercase, without port and protocol domain name.",
          "type": [
            "string",
            "null"
          ]
        },
        "frameworks": {
          "description": "A list of strings indicating any macOS X frameworks that need to be bundled with the application.\n\nIf a name is used, \".framework\" must be omitted and it will look for standard install locations. You may also use a path to a specific framework.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "license": {
          "description": "The path to the license file to add to the DMG bundle.",
          "type": [
            "string",
            "null"
          ]
        },
        "minimumSystemVersion": {
          "description": "A version string indicating the minimum macOS X version that the bundled application supports. Defaults to `10.13`. Setting it to `null` completely removes the `LSMinimumSystemVersion` field on the bundle's `Info.plist` and the `MACOSX_DEPLOYMENT_TARGET` environment variable.",
          "default": "10.13",
          "type": [
            "string",
            "null"
          ]
        },
        "providerShortName": {
          "description": "Provider short name for notarization.",
          "type": [
            "string",
            "null"
          ]
        },
        "signingIdentity": {
          "description": "Identity to use for code signing.",
          "type": [
            "string",
            "null"
          ]
        },
        "useBootstrapper": {
          "description": "Enable the boostrapper script.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "NotificationAllowlistConfig": {
      "description": "Allowlist for the notification APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all notification API features.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "OsAllowlistConfig": {
      "description": "Allowlist for the OS APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all OS API features.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "PackageConfig": {
      "description": "The package configuration.",
      "type": "object",
      "properties": {
        "productName": {
          "description": "App name.",
          "type": [
            "string",
            "null"
          ]
        },
        "version": {
          "description": "App version. It is a semver version number or a path to a `package.json` file contaning the `version` field.",
          "default": null,
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "PathAllowlistConfig": {
      "description": "Allowlist for the path APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all path API features.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "PatternKind": {
      "description": "The application pattern.",
      "oneOf": [
        {
          "description": "Brownfield pattern.",
          "type": "object",
          "required": [
            "use"
          ],
          "properties": {
            "use": {
              "type": "string",
              "enum": [
                "brownfield"
              ]
            }
          }
        },
        {
          "description": "Isolation pattern. Recommended for security purposes.",
          "type": "object",
          "required": [
            "options",
            "use"
          ],
          "properties": {
            "options": {
              "type": "object",
              "required": [
                "dir"
              ],
              "properties": {
                "dir": {
                  "description": "The dir containing the index.html file that contains the secure isolation application.",
                  "type": "string"
                }
              }
            },
            "use": {
              "type": "string",
              "enum": [
                "isolation"
              ]
            }
          }
        }
      ]
    },
    "PluginConfig": {
      "description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.",
      "type": "object",
      "additionalProperties": true
    },
    "ProcessAllowlistConfig": {
      "description": "Allowlist for the process APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all process APIs.",
          "default": false,
          "type": "boolean"
        },
        "exit": {
          "description": "Enables the exit API.",
          "default": false,
          "type": "boolean"
        },
        "relaunch": {
          "description": "Enables the relaunch API.",
          "default": false,
          "type": "boolean"
        },
        "relaunchDangerousAllowSymlinkMacos": {
          "description": "Dangerous option that allows macOS to relaunch even if the binary contains a symlink.\n\nThis is due to macOS having less symlink protection. Highly recommended to not set this flag unless you have a very specific reason too, and understand the implications of it.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "ProtocolAllowlistConfig": {
      "description": "Allowlist for the custom protocols.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all custom protocols.",
          "default": false,
          "type": "boolean"
        },
        "asset": {
          "description": "Enables the asset protocol.",
          "default": false,
          "type": "boolean"
        },
        "assetScope": {
          "description": "The access scope for the asset protocol.",
          "default": [],
          "allOf": [
            {
              "$ref": "#/definitions/FsAllowlistScope"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "SecurityConfig": {
      "description": "Security configuration.",
      "type": "object",
      "properties": {
        "csp": {
          "description": "The Content Security Policy that will be injected on all HTML files on the built application. If [`dev_csp`](SecurityConfig.dev_csp) is not specified, this value is also injected on dev.\n\nThis is a really important part of the configuration since it helps you ensure your WebView is secured. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
          "type": [
            "string",
            "null"
          ]
        },
        "devCsp": {
          "description": "The Content Security Policy that will be injected on all HTML files on development.\n\nThis is a really important part of the configuration since it helps you ensure your WebView is secured. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
          "type": [
            "string",
            "null"
          ]
        },
        "freezePrototype": {
          "description": "Freeze the `Object.prototype` when using the custom protocol.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "ShellAllowedArg": {
      "description": "A command argument allowed to be executed by the webview API.",
      "anyOf": [
        {
          "description": "A non-configurable argument that is passed to the command in the order it was specified.",
          "type": "string"
        },
        {
          "description": "A variable that is set while calling the command from the webview API.",
          "type": "object",
          "required": [
            "validator"
          ],
          "properties": {
            "validator": {
              "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\n[regex]: https://docs.rs/regex/latest/regex/#syntax",
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "ShellAllowedArgs": {
      "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.",
      "anyOf": [
        {
          "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.",
          "type": "boolean"
        },
        {
          "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ShellAllowedArg"
          }
        }
      ]
    },
    "ShellAllowedCommand": {
      "description": "A command allowed to be executed by the webview API.",
      "type": "object",
      "required": [
        "cmd",
        "name"
      ],
      "properties": {
        "args": {
          "description": "The allowed arguments for the command execution.",
          "default": false,
          "allOf": [
            {
              "$ref": "#/definitions/ShellAllowedArgs"
            }
          ]
        },
        "cmd": {
          "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`.",
          "type": "string"
        },
        "name": {
          "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.",
          "type": "string"
        },
        "sidecar": {
          "description": "If this command is a sidecar command.",
          "default": false,
          "type": "boolean"
        }
      }
    },
    "ShellAllowlistConfig": {
      "description": "Allowlist for the shell APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all shell API features.",
          "default": false,
          "type": "boolean"
        },
        "execute": {
          "description": "Enable binary execution.",
          "default": false,
          "type": "boolean"
        },
        "open": {
          "description": "Open URL with the user's default application.",
          "default": false,
          "allOf": [
            {
              "$ref": "#/definitions/ShellAllowlistOpen"
            }
          ]
        },
        "scope": {
          "description": "Access scope for the binary execution APIs. Sidecars are automatically enabled.",
          "default": [],
          "allOf": [
            {
              "$ref": "#/definitions/ShellAllowlistScope"
            }
          ]
        },
        "sidecar": {
          "description": "Enable sidecar execution, allowing the JavaScript layer to spawn a sidecar command, an executable that is shipped with the application. For more information see <https://tauri.studio/docs/guides/bundler/sidecar/>.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "ShellAllowlistOpen": {
      "description": "Defines the `shell > open` api scope.",
      "anyOf": [
        {
          "description": "If the shell open API should be enabled.\n\nIf enabled, the default validation regex (`^https?://`) is used.",
          "type": "boolean"
        },
        {
          "description": "Enable the shell open API, with a custom regex that the opened path must match against.\n\nIf using a custom regex to support a non-http(s) schema, care should be used to prevent values that allow flag-like strings to pass validation. e.g. `--enable-debugging`, `-i`, `/R`.",
          "type": "string"
        }
      ]
    },
    "ShellAllowlistScope": {
      "description": "Shell scope definition. It is a list of command names and associated CLI arguments that restrict the API access from the webview.",
      "type": "array",
      "items": {
        "$ref": "#/definitions/ShellAllowedCommand"
      }
    },
    "SystemTrayConfig": {
      "description": "Configuration for application system tray icon.",
      "type": "object",
      "required": [
        "iconPath"
      ],
      "properties": {
        "iconAsTemplate": {
          "description": "A Boolean value that determines whether the image represents a [template](https://developer.apple.com/documentation/appkit/nsimage/1520017-template?language=objc) image on macOS.",
          "default": false,
          "type": "boolean"
        },
        "iconPath": {
          "description": "Path to the icon to use on the system tray.\n\nIt is forced to be a `.png` file on Linux and macOS, and a `.ico` file on Windows.",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "TauriConfig": {
      "description": "The Tauri configuration object.",
      "type": "object",
      "properties": {
        "allowlist": {
          "description": "The allowlist configuration.",
          "default": {
            "all": false,
            "clipboard": {
              "all": false,
              "readText": false,
              "writeText": false
            },
            "dialog": {
              "all": false,
              "ask": false,
              "confirm": false,
              "message": false,
              "open": false,
              "save": false
            },
            "fs": {
              "all": false,
              "copyFile": false,
              "createDir": false,
              "readDir": false,
              "readFile": false,
              "removeDir": false,
              "removeFile": false,
              "renameFile": false,
              "scope": [],
              "writeFile": false
            },
            "globalShortcut": {
              "all": false
            },
            "http": {
              "all": false,
              "request": false,
              "scope": []
            },
            "notification": {
              "all": false
            },
            "os": {
              "all": false
            },
            "path": {
              "all": false
            },
            "process": {
              "all": false,
              "exit": false,
              "relaunch": false,
              "relaunchDangerousAllowSymlinkMacos": false
            },
            "protocol": {
              "all": false,
              "asset": false,
              "assetScope": []
            },
            "shell": {
              "all": false,
              "execute": false,
              "open": false,
              "scope": [],
              "sidecar": false
            },
            "window": {
              "all": false,
              "center": false,
              "close": false,
              "create": false,
              "hide": false,
              "maximize": false,
              "minimize": false,
              "print": false,
              "requestUserAttention": false,
              "setAlwaysOnTop": false,
              "setDecorations": false,
              "setFocus": false,
              "setFullscreen": false,
              "setIcon": false,
              "setMaxSize": false,
              "setMinSize": false,
              "setPosition": false,
              "setResizable": false,
              "setSize": false,
              "setSkipTaskbar": false,
              "setTitle": false,
              "show": false,
              "startDragging": false,
              "unmaximize": false,
              "unminimize": false
            }
          },
          "allOf": [
            {
              "$ref": "#/definitions/AllowlistConfig"
            }
          ]
        },
        "bundle": {
          "description": "The bundler configuration.",
          "default": {
            "active": false,
            "deb": {
              "files": {},
              "useBootstrapper": false
            },
            "icon": [],
            "identifier": "",
            "macOS": {
              "minimumSystemVersion": "10.13",
              "useBootstrapper": false
            },
            "windows": {
              "certificateThumbprint": null,
              "digestAlgorithm": null,
              "timestampUrl": null,
              "webviewFixedRuntimePath": null,
              "wix": null
            }
          },
          "allOf": [
            {
              "$ref": "#/definitions/BundleConfig"
            }
          ]
        },
        "cli": {
          "description": "The CLI configuration.",
          "anyOf": [
            {
              "$ref": "#/definitions/CliConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "macOSPrivateApi": {
          "description": "MacOS private API configuration. Enables the transparent background API and sets the `fullScreenEnabled` preference to `true`.",
          "default": false,
          "type": "boolean"
        },
        "pattern": {
          "description": "The pattern to use.",
          "default": {
            "use": "brownfield"
          },
          "allOf": [
            {
              "$ref": "#/definitions/PatternKind"
            }
          ]
        },
        "security": {
          "description": "Security configuration.",
          "default": {
            "freezePrototype": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/SecurityConfig"
            }
          ]
        },
        "systemTray": {
          "description": "Configuration for app system tray.",
          "anyOf": [
            {
              "$ref": "#/definitions/SystemTrayConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "updater": {
          "description": "The updater configuration.",
          "default": {
            "active": false,
            "dialog": true,
            "pubkey": ""
          },
          "allOf": [
            {
              "$ref": "#/definitions/UpdaterConfig"
            }
          ]
        },
        "windows": {
          "description": "The windows configuration.",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/WindowConfig"
          }
        }
      },
      "additionalProperties": false
    },
    "UpdaterConfig": {
      "description": "The Updater configuration object.",
      "type": "object",
      "properties": {
        "active": {
          "description": "Whether the updater is active or not.",
          "default": false,
          "type": "boolean"
        },
        "dialog": {
          "description": "Display built-in dialog or use event system if disabled.",
          "default": true,
          "type": "boolean"
        },
        "endpoints": {
          "description": "The updater endpoints. TLS is enforced on production.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/UpdaterEndpoint"
          }
        },
        "pubkey": {
          "description": "Signature public key.",
          "default": "",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "UpdaterEndpoint": {
      "description": "A URL to an updater server.\n\nThe URL must use the `https` scheme on production.",
      "type": "string",
      "format": "uri"
    },
    "WindowAllowlistConfig": {
      "description": "Allowlist for the window APIs.",
      "type": "object",
      "properties": {
        "all": {
          "description": "Use this flag to enable all window API features.",
          "default": false,
          "type": "boolean"
        },
        "center": {
          "description": "Allows centering the window.",
          "default": false,
          "type": "boolean"
        },
        "close": {
          "description": "Allows closing the window.",
          "default": false,
          "type": "boolean"
        },
        "create": {
          "description": "Allows dynamic window creation.",
          "default": false,
          "type": "boolean"
        },
        "hide": {
          "description": "Allows hiding the window.",
          "default": false,
          "type": "boolean"
        },
        "maximize": {
          "description": "Allows maximizing the window.",
          "default": false,
          "type": "boolean"
        },
        "minimize": {
          "description": "Allows minimizing the window.",
          "default": false,
          "type": "boolean"
        },
        "print": {
          "description": "Allows opening the system dialog to print the window content.",
          "default": false,
          "type": "boolean"
        },
        "requestUserAttention": {
          "description": "Allows requesting user attention on the window.",
          "default": false,
          "type": "boolean"
        },
        "setAlwaysOnTop": {
          "description": "Allows setting the always_on_top flag of the window.",
          "default": false,
          "type": "boolean"
        },
        "setDecorations": {
          "description": "Allows setting the decorations flag of the window.",
          "default": false,
          "type": "boolean"
        },
        "setFocus": {
          "description": "Allows focusing the window.",
          "default": false,
          "type": "boolean"
        },
        "setFullscreen": {
          "description": "Allows setting the fullscreen flag of the window.",
          "default": false,
          "type": "boolean"
        },
        "setIcon": {
          "description": "Allows changing the window icon.",
          "default": false,
          "type": "boolean"
        },
        "setMaxSize": {
          "description": "Allows setting the window maximum size.",
          "default": false,
          "type": "boolean"
        },
        "setMinSize": {
          "description": "Allows setting the window minimum size.",
          "default": false,
          "type": "boolean"
        },
        "setPosition": {
          "description": "Allows changing the position of the window.",
          "default": false,
          "type": "boolean"
        },
        "setResizable": {
          "description": "Allows setting the resizable flag of the window.",
          "default": false,
          "type": "boolean"
        },
        "setSize": {
          "description": "Allows setting the window size.",
          "default": false,
          "type": "boolean"
        },
        "setSkipTaskbar": {
          "description": "Allows setting the skip_taskbar flag of the window.",
          "default": false,
          "type": "boolean"
        },
        "setTitle": {
          "description": "Allows changing the window title.",
          "default": false,
          "type": "boolean"
        },
        "show": {
          "description": "Allows showing the window.",
          "default": false,
          "type": "boolean"
        },
        "startDragging": {
          "description": "Allows start dragging on the window.",
          "default": false,
          "type": "boolean"
        },
        "unmaximize": {
          "description": "Allows unmaximizing the window.",
          "default": false,
          "type": "boolean"
        },
        "unminimize": {
          "description": "Allows unminimizing the window.",
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "WindowConfig": {
      "description": "The window configuration object.",
      "type": "object",
      "properties": {
        "alwaysOnTop": {
          "description": "Whether the window should always be on top of other windows.",
          "default": false,
          "type": "boolean"
        },
        "center": {
          "description": "Whether or not the window starts centered or not.",
          "default": false,
          "type": "boolean"
        },
        "decorations": {
          "description": "Whether the window should have borders and bars.",
          "default": true,
          "type": "boolean"
        },
        "fileDropEnabled": {
          "description": "Whether the file drop is enabled or not on the webview. By default it is enabled.\n\nDisabling it is required to use drag and drop on the frontend on Windows.",
          "default": true,
          "type": "boolean"
        },
        "focus": {
          "description": "Whether the window will be initially hidden or focused.",
          "default": true,
          "type": "boolean"
        },
        "fullscreen": {
          "description": "Whether the window starts as fullscreen or not.",
          "default": false,
          "type": "boolean"
        },
        "height": {
          "description": "The window height.",
          "default": 600.0,
          "type": "number",
          "format": "double"
        },
        "label": {
          "description": "The window identifier. It must be alphanumeric.",
          "default": "main",
          "type": "string"
        },
        "maxHeight": {
          "description": "The max window height.",
          "type": [
            "number",
            "null"
          ],
          "format": "double"
        },
        "maxWidth": {
          "description": "The max window width.",
          "type": [
            "number",
            "null"
          ],
          "format": "double"
        },
        "maximized": {
          "description": "Whether the window is maximized or not.",
          "default": false,
          "type": "boolean"
        },
        "minHeight": {
          "description": "The min window height.",
          "type": [
            "number",
            "null"
          ],
          "format": "double"
        },
        "minWidth": {
          "description": "The min window width.",
          "type": [
            "number",
            "null"
          ],
          "format": "double"
        },
        "resizable": {
          "description": "Whether the window is resizable or not.",
          "default": true,
          "type": "boolean"
        },
        "skipTaskbar": {
          "description": "Whether or not the window icon should be added to the taskbar.",
          "default": false,
          "type": "boolean"
        },
        "title": {
          "description": "The window title.",
          "default": "Tauri App",
          "type": "string"
        },
        "transparent": {
          "description": "Whether the window is transparent or not.\n\nNote that on `macOS` this requires the `macos-private-api` feature flag, enabled under `tauri.conf.json > tauri > macosPrivateApi`. WARNING: Using private APIs on `macOS` prevents your application from being accepted for the `App Store`.",
          "default": false,
          "type": "boolean"
        },
        "url": {
          "description": "The window webview URL.",
          "default": "index.html",
          "allOf": [
            {
              "$ref": "#/definitions/WindowUrl"
            }
          ]
        },
        "visible": {
          "description": "Whether the window is visible or not.",
          "default": true,
          "type": "boolean"
        },
        "width": {
          "description": "The window width.",
          "default": 800.0,
          "type": "number",
          "format": "double"
        },
        "x": {
          "description": "The horizontal position of the window's top left corner",
          "type": [
            "number",
            "null"
          ],
          "format": "double"
        },
        "y": {
          "description": "The vertical position of the window's top left corner",
          "type": [
            "number",
            "null"
          ],
          "format": "double"
        }
      },
      "additionalProperties": false
    },
    "WindowUrl": {
      "description": "An URL to open on a Tauri webview window.",
      "anyOf": [
        {
          "description": "An external URL.",
          "type": "string",
          "format": "uri"
        },
        {
          "description": "An app URL.",
          "type": "string"
        }
      ]
    },
    "WindowsConfig": {
      "description": "Windows bundler configuration.",
      "type": "object",
      "properties": {
        "certificateThumbprint": {
          "description": "Specifies the SHA1 hash of the signing certificate.",
          "type": [
            "string",
            "null"
          ]
        },
        "digestAlgorithm": {
          "description": "Specifies the file digest algorithm to use for creating file signatures. Required for code signing. SHA-256 is recommended.",
          "type": [
            "string",
            "null"
          ]
        },
        "timestampUrl": {
          "description": "Server to use during timestamping.",
          "type": [
            "string",
            "null"
          ]
        },
        "webviewFixedRuntimePath": {
          "description": "Path to the webview fixed runtime to use.\n\nThe fixed version can be downloaded [on the official website](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section). The `.cab` file must be extracted to a folder and this folder path must be defined on this field.",
          "type": [
            "string",
            "null"
          ]
        },
        "wix": {
          "description": "Configuration for the MSI generated with WiX.",
          "anyOf": [
            {
              "$ref": "#/definitions/WixConfig"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "WixConfig": {
      "description": "Configuration for the MSI bundle using WiX.",
      "type": "object",
      "properties": {
        "bannerPath": {
          "description": "Path to a bitmap file to use as the installation user interface banner. This bitmap will appear at the top of all but the first page of the installer.\n\nThe required dimensions are 493px × 58px.",
          "type": [
            "string",
            "null"
          ]
        },
        "componentGroupRefs": {
          "description": "The ComponentGroup element ids you want to reference from the fragments.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "componentRefs": {
          "description": "The Component element ids you want to reference from the fragments.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "dialogImagePath": {
          "description": "Path to a bitmap file to use on the installation user interface dialogs. It is used on the welcome and completion dialogs. The required dimensions are 493px × 312px.",
          "type": [
            "string",
            "null"
          ]
        },
        "enableElevatedUpdateTask": {
          "description": "Create an elevated update task within Windows Task Scheduler.",
          "default": false,
          "type": "boolean"
        },
        "featureGroupRefs": {
          "description": "The FeatureGroup element ids you want to reference from the fragments.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "featureRefs": {
          "description": "The Feature element ids you want to reference from the fragments.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fragmentPaths": {
          "description": "A list of paths to .wxs files with WiX fragments to use.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "language": {
          "description": "The installer languages to build. See <https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables>.",
          "default": "en-US",
          "allOf": [
            {
              "$ref": "#/definitions/WixLanguage"
            }
          ]
        },
        "license": {
          "description": "The path to the license file to render on the installer.\n\nMust be an RTF file, so if a different extension is provided, we convert it to the RTF format.",
          "type": [
            "string",
            "null"
          ]
        },
        "mergeRefs": {
          "description": "The Merge element ids you want to reference from the fragments.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "skipWebviewInstall": {
          "description": "Disables the Webview2 runtime installation after app install.",
          "default": false,
          "type": "boolean"
        },
        "template": {
          "description": "A custom .wxs template to use.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "WixLanguage": {
      "description": "The languages to build using WiX.",
      "anyOf": [
        {
          "description": "A single language to build, without configuration.",
          "type": "string"
        },
        {
          "description": "A list of languages to build, without configuration.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "description": "A map of languages and its configuration.",
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/WixLanguageConfig"
          }
        }
      ]
    },
    "WixLanguageConfig": {
      "description": "Configuration for a target language for the WiX build.",
      "type": "object",
      "properties": {
        "localePath": {
          "description": "The path to a locale (`.wxl`) file. See <https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html>.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    }
  }
}