class_docstr: Credential which represent a sequence of Credentials where front one is exposed to user
      
class_docstr_tok: ["Credential","which","represent","a","sequence","of","Credentials","where","front","one","is","exposed","to","user"]
docstr: Re-establish "dependent" credentials
  
  E.g. if code outside was reported that it expired somehow before known expiration datetime
code: def refresh(self):
      """Re-establish "dependent" credentials
  
      E.g. if code outside was reported that it expired somehow before known expiration datetime
      """
      for c in self._credentials[1:]:
          c.delete()
      # trigger re-establishing the chain
      _ = self()
      if self.is_expired:
          raise RuntimeError(
              "Credential %s expired right upon refresh: should have not happened"
          )
  
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 3 for calling the CompositeCredential obj's underlying member method code with example usage: obj.refresh() without return types