Extra links supported for operators coming from third-party packages:

airflow.serialization.serialized_objects.BUILTIN_OPERATOR_EXTRA_LINKS

airflow/serialization/serialized_objects.py
return self._task_type
    @task_type.setter
    def task_type(self, task_type: str):
        self._task_type = task_type
    @classmethod
    def serialize_operator(cls, op: BaseOperator) -> dict:
        """Serializes operator into a JSON object."""
        serialize_op = cls.serialize_to_json(op, cls._decorated_fields)
        serialize_op['_task_type'] = op.__class__.__name__
        serialize_op['_task_module'] = op.__class__.__module__
        
        serialize_op['_is_dummy'] = op.inherits_from_dummy_operator
        if op.operator_extra_links:
            serialize_op['_operator_extra_links'] = cls._serialize_operator_extra_links(
                op.operator_extra_links
            )
        
        
        if op.template_fields:
            for template_field in op.template_fields:
                value = getattr(op, template_field, None)
                if not cls._is_excluded(value, template_field, op):
                    serialize_op[template_field] = serialize_template_field(value)
        return serialize_op
    @classmethod
    def deserialize_operator(cls, encoded_op: Dict[str, Any]) -> BaseOperator: