code: def with_claims(self, issuer=None, subject=None, audience=None,
                      additional_claims=None):
          
          new_additional_claims = copy.deepcopy(self._additional_claims)
          new_additional_claims.update(additional_claims or {})
  
          return self.__class__(
              self._signer,
              issuer=issuer if issuer is not None else self._issuer,
              subject=subject if subject is not None else self._subject,
              audience=audience if audience is not None else self._audience,
              additional_claims=new_additional_claims)
docs: Returns a copy of these credentials with modified claims.
  
          Args:
              issuer (str): The `iss` claim. If unspecified the current issuer
                  claim will be used.
              subject (str): The `sub` claim. If unspecified the current subject
                  claim will be used.
              audience (str): the `aud` claim. If unspecified the current
                  audience claim will be used.
              additional_claims (Mapping[str, str]): Any additional claims for
                  the JWT payload. This will be merged with the current
                  additional claims.
  
          Returns:
              google.auth.jwt.Credentials: A new credentials instance.