internal Auth ToAPIAuthentication()
        {
            if (sdkAuth == null)
            {
                return(apiAuth);
            }

            Auth auth = new Auth();

            auth.Scheme = new AuthenticationMethodConverter(sdkAuth.Method).ToAPIAuthMethod();

            foreach (Challenge challenge in sdkAuth.Challenges)
            {
                AuthChallenge authChallenge = new AuthChallenge();

                authChallenge.Question  = challenge.Question;
                authChallenge.Answer    = challenge.Answer;
                authChallenge.MaskInput = challenge.MaskOption == Challenge.MaskOptions.MaskInput;
                auth.AddChallenge(authChallenge);
            }

            if (sdkAuth.IdvWorkflow != null)
            {
                auth.IdvWorkflow = new IdvWorkflowConverter(sdkAuth.IdvWorkflow).ToAPIIdvWorkflow();
            }

            if (!String.IsNullOrEmpty(sdkAuth.PhoneNumber))
            {
                AuthChallenge challenge = new AuthChallenge();

                challenge.Question = sdkAuth.PhoneNumber;
                auth.AddChallenge(challenge);
            }

            return(auth);
        }