def METHOD_NAME(self, **kwargs: Any) -> msal.ClientApplication:
    tenant_id = resolve_tenant(
        self._tenant_id, additionally_allowed_tenants=self._additionally_allowed_tenants, **kwargs
    )
    client_applications_map = self._client_applications
    capabilities = None
    token_cache = self._cache
    app_class = msal.ConfidentialClientApplication if self._client_credential else msal.PublicClientApplication
    if kwargs.get("enable_cae"):
        client_applications_map = self._cae_client_applications
        capabilities = ["CP1"]
        token_cache = self._cae_cache
    if not token_cache:
        token_cache = self._initialize_cache(is_cae=bool(kwargs.get("enable_cae")))
    if tenant_id not in client_applications_map:
        client_applications_map[tenant_id] = app_class(
            client_id=self._client_id,
            client_credential=self._client_credential,
            client_capabilities=capabilities,
            authority="{}/{}".format(self._authority, tenant_id),
            azure_region=self._regional_authority,
            token_cache=token_cache,
            http_client=self._client,
            instance_discovery=self._instance_discovery,
            allow_broker=self._allow_broker,
        )
    return client_applications_map[tenant_id]