package com.airlock.iam.flow.shared.application.configuration.airlock2fa;

import com.airlock.iam.flow.api.domain.model.step.StepAction;
import com.airlock.iam.flow.shared.domain.model.airlock2fa.Airlock2FAApprovalStep;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public final class DefaultAirlock2FAApprovalStepActions implements Airlock2FAApprovalStep.Airlock2FAApprovalStepActions {
   public static final DefaultAirlock2FAApprovalStepActions DEFAULT_AIRLOCK_2FA_APPROVAL_STEP_ACTIONS = new DefaultAirlock2FAApprovalStepActions();

   @Override
   public StepAction pollingRequired() {
      return DefaultAirlock2FAApprovalStepActions.Actions.AIRLOCK_2FA_POLLING_REQUIRED;
   }

   @Override
   public StepAction qrCodeOtpRequired() {
      return DefaultAirlock2FAApprovalStepActions.Actions.AIRLOCK_2FA_QR_CODE_OTP_REQUIRED;
   }

   @Override
   public StepAction pollingOrOfflineRequired() {
      return DefaultAirlock2FAApprovalStepActions.Actions.AIRLOCK_2FA_POLLING_OR_OFFLINE_REQUIRED;
   }

   @Override
   public StepAction deviceChoiceRequired() {
      return DefaultAirlock2FAApprovalStepActions.Actions.AIRLOCK_2FA_DEVICE_CHOICE_REQUIRED;
   }

   @Override
   public StepAction mobileOnlyChallengeRetrievalRequired() {
      return DefaultAirlock2FAApprovalStepActions.Actions.AIRLOCK_2FA_MOBILE_ONLY_CHALLENGE_RETRIEVAL_REQUIRED;
   }

   @Override
   public StepAction passcodeRequired() {
      return DefaultAirlock2FAApprovalStepActions.Actions.AIRLOCK_2FA_PASSCODE_REQUIRED;
   }

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

   public enum Actions implements StepAction {
      AIRLOCK_2FA_POLLING_OR_OFFLINE_REQUIRED,
      AIRLOCK_2FA_QR_CODE_OTP_REQUIRED,
      AIRLOCK_2FA_POLLING_REQUIRED,
      AIRLOCK_2FA_DEVICE_CHOICE_REQUIRED,
      AIRLOCK_2FA_MOBILE_ONLY_CHALLENGE_RETRIEVAL_REQUIRED,
      AIRLOCK_2FA_PASSCODE_REQUIRED;
   }
}
