class_docstr: Base class for different types of credentials
  
  Note: While subclasses can define their own `_FIELDS`, they are actually
  assumed to have particular keys by the implementation of (some)
  authenticators. `HTTPRequestsAuthenticator` and its subclasses for example,
  assume `user` and `password` to be valid keys.
class_docstr_tok: ["Base","class","for","different","types","of","credentials","Note",":","While","subclasses","can","define","their","own","`","_FIELDS","`",",","they","are","actually","assumed","to","have","particular","keys","by","the","implementation","of","(","some",")","authenticators",".","`","HTTPRequestsAuthenticator","`","and","its","subclasses","for","example",",","assume","`","user","`","and","`","password","`","to","be","valid","keys","."]
docstr: Return True if values for all fields of the credential are known
code: def is_known(self):
      """Return True if values for all fields of the credential are known"""
      try:
          return all(
              self._is_field_optional(f)
              or self._get_field_value(f) is not None
              for f in self._FIELDS
          )
      except Exception as exc:
          ce = CapturedException(exc)
          lgr.warning("Failed to query keyring: %s", ce)
          return False
  
imports: import time
  from ..support.exceptions import AccessDeniedError, CapturedException
  from ..support.keyring_ import keyring
  from ..ui import ui
  from ..utils import auto_repr
  from ..support.network import iso8601_to_epoch
  from datalad import cfg
  from datalad.config import anything2bool
  from datalad.distribution.dataset import Dataset
  from datalad.local.gitcredential import GitCredentialInterface
  from logging import getLogger
label_desc: Use image node_id 4 for calling the Credential obj's underlying member method code with example usage: obj.is_known() and returns: all, False