def METHOD_NAME(self) -> None:
    # TODO(hughhh): check to make sure the server port is not localhost
    # using the config.SSH_TUNNEL_MANAGER
    exceptions: list[ValidationError] = []
    database_id: Optional[int] = self._properties.get("database_id")
    server_address: Optional[str] = self._properties.get("server_address")
    server_port: Optional[int] = self._properties.get("server_port")
    username: Optional[str] = self._properties.get("username")
    private_key: Optional[str] = self._properties.get("private_key")
    private_key_password: Optional[str] = self._properties.get(
        "private_key_password"
    )
    if not database_id:
        exceptions.append(SSHTunnelRequiredFieldValidationError("database_id"))
    if not server_address:
        exceptions.append(SSHTunnelRequiredFieldValidationError("server_address"))
    if not server_port:
        exceptions.append(SSHTunnelRequiredFieldValidationError("server_port"))
    if not username:
        exceptions.append(SSHTunnelRequiredFieldValidationError("username"))
    if private_key_password and private_key is None:
        exceptions.append(SSHTunnelRequiredFieldValidationError("private_key"))
    if exceptions:
        exception = SSHTunnelInvalidError()
        exception.extend(exceptions)
        event_logger.log_with_context(
            # pylint: disable=consider-using-f-string
            action="ssh_tunnel_creation_failed.{}.{}".format(
                exception.__class__.__name__,
                ".".join(exception.get_list_classnames()),
            )
        )
        raise exception