{
  "$ref": "#/definitions/Component",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "Component": {
      "additionalProperties": false,
      "properties": {
        "activateuri": {
          "type": "string"
        },
        "appendbodyparams": {
          "type": "string"
        },
        "appendqueryparams": {
          "type": "string"
        },
        "disablelocal": {
          "type": "boolean"
        },
        "disableregister": {
          "type": "boolean"
        },
        "email": {
          "type": "string"
        },
        "enable_recover_password": {
          "type": "boolean"
        },
        "i18nlang": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "loginuri": {
          "type": "string"
        },
        "logouri": {
          "type": "string"
        },
        "oauth2providers": {
          "items": {
            "anyOf": [
              {
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "$ref": "#/definitions/IProvider"
                  },
                  "params": {
                    "additionalProperties": false,
                    "properties": {
                      "auth_server_url": {
                        "type": "string"
                      },
                      "client_id": {
                        "type": "string"
                      },
                      "redirect_url": {
                        "type": "string"
                      },
                      "scope": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "redirect_url",
                      "client_id",
                      "scope"
                    ],
                    "type": "object"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              },
              {
                "not": {}
              }
            ]
          },
          "type": "array"
        },
        "passwordpattern": {
          "type": "string"
        },
        "recoveruri": {
          "type": "string"
        },
        "recoverycode": {
          "type": "string"
        },
        "redirectoncreate": {
          "type": "string"
        },
        "redirectonlogin": {
          "type": "string"
        },
        "registeruri": {
          "type": "string"
        },
        "requestmethod": {
          "type": "string"
        },
        "sessionkey": {
          "type": "string"
        },
        "social_auth_server_url": {
          "type": "string"
        },
        "style": {
          "type": "string"
        },
        "type": {
          "enum": [
            "login",
            "register",
            "activate",
            "recover",
            "forgotpassword",
            "mailrecoverinfo",
            "otp",
            "2fa_code",
            "2fa_config"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "IProvider": {
      "enum": [
        "facebook",
        "google",
        "gitlab",
        "github",
        "authentik"
      ],
      "type": "string"
    }
  }
}
