{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "/modules/brew.json",
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "brew",
      "description": "The brew module installs Homebrew / Linuxbrew at build time and ensures the package manager remains up-to-date.\nhttps://blue-build.org/reference/modules/brew/"
    },
    "no-cache": {
      "type": "boolean",
      "default": false,
      "description": "Whether to disabling caching for this layer.\nhttps://blue-build.org/reference/module/#no-cache-optional"
    },
    "auto-update": {
      "type": "boolean",
      "default": true,
      "description": "Whether to auto-update the Brew binary using a systemd service."
    },
    "update-interval": {
      "type": "string",
      "default": "6h",
      "description": "Defines how often the Brew update service should run. The string is passed directly to `OnUnitInactiveSec` in systemd timer. (Syntax: ['1d', '6h', '10m'])."
    },
    "update-wait-after-boot": {
      "type": "string",
      "default": "10min",
      "description": "Time delay after system boot before the first Brew update runs. The string is passed directly to `OnBootSec` in systemd timer. (Syntax: ['1d', '6h', '10m'])."
    },
    "auto-upgrade": {
      "type": "boolean",
      "default": true,
      "description": "Whether to auto-upgrade all installed Brew packages using a systemd service."
    },
    "upgrade-interval": {
      "type": "string",
      "default": "8h",
      "description": "Defines how often the Brew upgrade service should run. The string is passed directly to `OnUnitInactiveSec` in systemd timer. (Syntax: ['1d', '6h', '10m'])."
    },
    "upgrade-wait-after-boot": {
      "type": "string",
      "default": "30min",
      "description": "Time delay after system boot before the first Brew package upgrade runs. The string is passed directly to `OnBootSec` in systemd timer. (Syntax: ['1d', '6h', '10m'])."
    },
    "nofile-limits": {
      "type": "boolean",
      "default": false,
      "description": "Whether to increase nofile limits (limits for number of open files) for Brew installations.\nWhen set to true, it increases the nofile limits to prevent certain \"I/O heavy\" Brew packages from failing due to \"too many open files\" error.\nHowever, it's important to note that increasing nofile limits can have potential security implications for malicious applications which would try to abuse storage I/O.\nDefaults to false for security purposes.\n\nhttps://serverfault.com/questions/577437/what-is-the-impact-of-increasing-nofile-limits-in-etc-security-limits-conf"
    },
    "brew-analytics": {
      "type": "boolean",
      "default": true,
      "description": "Whether to enable Brew analytics. \nThe Homebrew project uses analytics to anonymously collect the information about Brew usage & your system in order to improve the experience of Brew users."
    }
  },
  "required": [
    "type"
  ],
  "additionalProperties": false
}