{
  "$ref": "#/definitions/Events",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "Events": {
      "additionalProperties": false,
      "properties": {
        "login": {
          "additionalProperties": false,
          "properties": {
            "email": {
              "type": "string"
            },
            "password": {
              "type": "string"
            },
            "rememberMe": {
              "type": "boolean"
            },
            "token": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "oauthFlowCustom": {
          "additionalProperties": false,
          "properties": {
            "provider": {
              "$ref": "#/definitions/IProvider"
            }
          },
          "required": [
            "provider"
          ],
          "type": "object"
        },
        "oauthFlowInit": {
          "additionalProperties": false,
          "properties": {
            "provider": {
              "$ref": "#/definitions/IProvider"
            },
            "redirect_uri": {
              "type": "string"
            },
            "tmpCode": {
              "type": "string"
            },
            "token": {
              "type": "string"
            }
          },
          "required": [
            "provider"
          ],
          "type": "object"
        },
        "oauthFlowSuccess": {
          "additionalProperties": false,
          "properties": {
            "token": {
              "type": "string"
            }
          },
          "required": [
            "token"
          ],
          "type": "object"
        },
        "recoverOrActivate": {
          "additionalProperties": false,
          "properties": {
            "email": {
              "type": "string"
            },
            "password": {
              "type": "string"
            },
            "recoverycode": {
              "type": "string"
            }
          },
          "required": [
            "password",
            "recoverycode",
            "email"
          ],
          "type": "object"
        },
        "recoverPassword": {
          "additionalProperties": false,
          "properties": {
            "email": {
              "type": "string"
            }
          },
          "required": [
            "email"
          ],
          "type": "object"
        },
        "register": {
          "properties": {
            "email": {
              "type": "string"
            },
            "password": {
              "type": "string"
            },
            "requestSent": {
              "additionalProperties": false,
              "properties": {
                "email": {
                  "type": "string"
                },
                "password": {
                  "type": "string"
                }
              },
              "required": [
                "email",
                "password"
              ],
              "type": "object"
            }
          },
          "required": [
            "email",
            "password",
            "requestSent"
          ],
          "type": "object"
        }
      },
      "required": [
        "login",
        "register",
        "recoverOrActivate",
        "recoverPassword",
        "oauthFlowInit",
        "oauthFlowSuccess",
        "oauthFlowCustom"
      ],
      "type": "object"
    },
    "IProvider": {
      "enum": [
        "facebook",
        "google",
        "gitlab",
        "github",
        "authentik"
      ],
      "type": "string"
    }
  }
}

