@staticmethod
def get_sub_argparse(auth_parser, for_rr=False):
    """
        Get an argparse subparser for authentication
        """
    auth_parser.add_argument('-u', '--username', action='store', help=
        'Username for authentication')
    auth_parser.add_argument('-p', '--password', action='store', help=
        'Password (leave empty to prompt)')
    auth_parser.add_argument('-t', '--tenant', action='store', help=
        'Tenant ID to auth to (leave blank for default tenant for account)')
    if for_rr:
        helptext = (
            'Client ID to use when authenticating. (Must be a public client from Microsoft with user_impersonation permissions!). Default: Azure AD PowerShell module App ID'
            )
    else:
        helptext = (
            'Client ID to use when authenticating. (Must have the required OAuth2 permissions or Application Role for what you want to achieve)'
            )
    auth_parser.add_argument('-c', '--client', action='store', help=
        helptext, default='1b730954-1685-4b74-9bfd-dac224a7b894')
    auth_parser.add_argument('--as-app', action='store_true', help=
        'Authenticate as App (requires password and client ID set)')
    auth_parser.add_argument('--device-code', action='store_true', help=
        'Authenticate using a device code')
    auth_parser.add_argument('--access-token', action='store', help=
        'Access token (JWT)')
    auth_parser.add_argument('--refresh-token', action='store', help=
        'Refresh token (JWT)')
    auth_parser.add_argument('-f', '--tokenfile', action='store', help=
        'File to store the credentials (default: .roadtools_auth)', default
        ='.roadtools_auth')
    auth_parser.add_argument('--tokens-stdout', action='store_true', help=
        'Do not store tokens on disk, pipe to stdout instead')
    return auth_parser
