# Copyright (c) CloudZero - ALL RIGHTS RESERVED - PROPRIETARY AND CONFIDENTIAL
# Unauthorized copying of this file and/or project, via any medium is strictly prohibited.
# Direct all questions to legal@cloudzero.com
#

"""
Simplified authentication module for CloudZero Operations CLI.

This module provides a simple interface for Okta authentication.
"""

from .okta_pkce import AuthenticationError, OktaPKCEAuthenticator

__all__ = ["OktaPKCEAuthenticator", "AuthenticationError", "get_authenticator"]


def get_authenticator(token_storage=None):
    """Get an instance of the authenticator.

    Args:
        token_storage: Optional token storage instance for dependency injection

    Returns:
        OktaPKCEAuthenticator instance
    """
    return OktaPKCEAuthenticator(token_storage=token_storage)
