{
  "definitions": {},
  "properties": {
    "logging": {
      "properties": {
        "console": {
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "format": {
              "type": "string"
            },
            "level": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "file": {
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "format": {
              "type": "string"
            },
            "level": {
              "type": "string"
            },
            "path": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "server": {
      "properties": {
        "addresses": {
          "items": {
            "properties": {
              "host": {
                "type": "string"
              },
              "port": {
                "type": "integer"
              },
              "ssl": {
                "type": "boolean"
              }
            },
            "required": [
              "port",
              "host"
            ],
            "type": "object"
          },
          "minItems": 1,
          "type": "array"
        },
        "authentication": {
          "properties": {
            "cache_timeout": {
              "type": "string"
            },
            "group": {
              "type": "string"
            },
            "pam_service": {
              "type": "string"
            },
            "session_timeout": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "client_ip_header": {
          "type": "string"
        },
        "cookie_name": {
          "type": "string"
        },
        "data_path": {
          "type": "string"
        },
        "database": {
          "type": "string"
        },
        "fork": {
          "type": "boolean"
        },
        "geoip": {
          "properties": {
            "database": {
              "type": "string"
            }
          },
          "required": [
            "database"
          ],
          "type": "object"
        },
        "headers": {
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "type": "array"
        },
        "hostnames": {
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "type": "array"
        },
        "letsencrypt": {
          "properties": {
            "certbot_path": {
              "type": "string"
            },
            "chown_data_path": {
              "type": "boolean"
            },
            "data_path": {
              "type": "string"
            }
          },
          "required": [
            "data_path"
          ],
          "type": "object"
        },
        "pid_file": {
          "type": "string"
        },
        "plugin_directories": {
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "type": "array"
        },
        "plugins": {
          "minProperties": 1,
          "properties": {},
          "type": "object"
        },
        "require_id": {
          "type": "boolean"
        },
        "rest_api": {
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "networks": {
              "items": {
                "type": "string"
              },
              "minItems": 1,
              "type": "array"
            },
            "token": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "enabled",
            "token"
          ],
          "type": "object"
        },
        "server_header": {
          "type": "string"
        },
        "set_message_opened_on_visit": {
          "type": "boolean"
        },
        "setuid_username": {
          "type": "string"
        },
        "ssl_cert": {
          "type": "string"
        },
        "ssl_hosts": {
          "items": {
            "properties": {
              "host": {
                "type": "string"
              },
              "ssl_cert": {
                "type": "string"
              },
              "ssl_key": {
                "type": "string"
              }
            },
            "required": [
              "ssl_cert",
              "host",
              "ssl_key"
            ],
            "type": "object"
          },
          "minItems": 1,
          "type": "array"
        },
        "ssl_key": {
          "type": "string"
        },
        "tracking_image": {
          "type": "string"
        },
        "vhost_directories": {
          "type": "boolean"
        },
        "web_root": {
          "type": "string"
        }
      },
      "required": [
        "set_message_opened_on_visit",
        "web_root",
        "geoip",
        "database",
        "tracking_image",
        "rest_api",
        "cookie_name",
        "fork",
        "vhost_directories",
        "require_id",
        "addresses"
      ],
      "type": "object"
    }
  },
  "required": [
    "server",
    "logging"
  ],
  "type": "object"
}