
export class LdapSearchError extends Error {
  constructor(message?: string) {
    super(message);
    this.name = "LdapSearchError";
    (<any>Object).setPrototypeOf(this, LdapSearchError.prototype);
  }
}

export class LdapBindError extends Error {
  constructor(message?: string) {
    super(message);
    this.name = "LdapBindError";
    (<any>Object).setPrototypeOf(this, LdapBindError.prototype);
  }
}

export class LdapError extends Error {
  constructor(message?: string) {
    super(message);
    this.name = "LdapError";
    (<any>Object).setPrototypeOf(this, LdapError.prototype);
  }
}

export class IdentityError extends Error {
  constructor(message?: string) {
    super(message);
    this.name = "IdentityError";
    (<any>Object).setPrototypeOf(this, IdentityError.prototype);
  }
}

export class AccessDeniedError extends Error {
  constructor(message?: string) {
    super(message);
    this.name = "AccessDeniedError";
    (<any>Object).setPrototypeOf(this, AccessDeniedError.prototype);
  }
}

export class AuthenticationRegulationError extends Error {
  constructor(message?: string) {
    super(message);
    this.name = "AuthenticationRegulationError";
    (<any>Object).setPrototypeOf(this, AuthenticationRegulationError.prototype);
  }
}

export class InvalidTOTPError extends Error {
  constructor(message?: string) {
    super(message);
    this.name = "InvalidTOTPError";
    (<any>Object).setPrototypeOf(this, InvalidTOTPError.prototype);
  }
}

export class DomainAccessDenied extends Error {
  constructor(message?: string) {
    super(message);
    this.name = "DomainAccessDenied";
    (<any>Object).setPrototypeOf(this, DomainAccessDenied.prototype);
  }
}

export class FirstFactorValidationError extends Error {
  constructor(message?: string) {
    super(message);
    this.name = "FirstFactorValidationError";
    (<any>Object).setPrototypeOf(this, FirstFactorValidationError.prototype);
  }
}

export class SecondFactorValidationError extends Error {
  constructor(message?: string) {
    super(message);
    this.name = "SecondFactorValidationError";
    (<any>Object).setPrototypeOf(this, FirstFactorValidationError.prototype);
  }
}