package com.airlock.iam.authentication.application.configuration.fido;

import com.airlock.iam.flow.api.domain.model.step.StepError;
import com.airlock.iam.flow.shared.domain.model.fido.FidoCheckingStep;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public final class FidoAuthenticationStepErrors implements FidoCheckingStep.FidoStepErrors {
   public static final FidoAuthenticationStepErrors FIDO_AUTHENTICATION_STEP_ERRORS = new FidoAuthenticationStepErrors();

   @Override
   public StepError failed() {
      return FidoAuthenticationStepErrors.Error.FIDO_AUTHENTICATION_FAILED;
   }

   @Override
   public StepError timeout() {
      return FidoAuthenticationStepErrors.Error.FIDO_AUTHENTICATION_TIMEOUT;
   }

   @Override
   public StepError aborted() {
      return FidoAuthenticationStepErrors.Error.FIDO_AUTHENTICATION_ABORTED;
   }

   @Override
   public StepError notAllowed() {
      return FidoAuthenticationStepErrors.Error.FIDO_AUTHENTICATION_NOT_ALLOWED;
   }

   @SuppressFBWarnings(justification = "generated code")
   private FidoAuthenticationStepErrors() {
   }

   public enum Error implements StepError {
      FIDO_AUTHENTICATION_FAILED,
      FIDO_AUTHENTICATION_TIMEOUT,
      FIDO_AUTHENTICATION_ABORTED,
      FIDO_AUTHENTICATION_NOT_ALLOWED,
      FIDO_WEB_AUTHN_NOT_AVAILABLE;
   }
}
