def parse_security(security: BaseSecurity | None) -> dict[str, Any]:
if security is None:
return {}
if isinstance(security, NatsToken):
return _parse_nats_token(security)
if isinstance(security, NatsUserPassword):
return _parse_nats_user_password(security)
if isinstance(security, NatsCredentials):
return _parse_nats_credentials(security)
if isinstance(security, NatsNKey):
return _parse_nats_nkey(security)
if isinstance(security, NatsJWT):
return _parse_nats_jwt(security)
if type(security) is NatsSecurity:
return _parse_nats_security(security)
if isinstance(security, SASLPlaintext):
return _parse_sasl_plaintext(security)
if type(security) is BaseSecurity:
return _parse_base_security(security)
msg = f"NatsBroker does not support {type(security)}"
raise NotImplementedError(msg)