class_docstr: Constructs a link to monitor a pipeline run in Azure Synapse.
code: def get_link(
      self, operator: BaseOperator, *, ti_key: TaskInstanceKey
  ):
      run_id = XCom.get_value(key="run_id", ti_key=ti_key) or ""
      conn_id = operator.azure_synapse_conn_id  # type: ignore
      conn = BaseHook.get_connection(conn_id)
      self.synapse_workspace_url = conn.host
  
      fields = self.get_fields_from_url(self.synapse_workspace_url)
  
      params = {
          "workspace": f"/subscriptions/{fields['subscription_id']}"
          f"/resourceGroups/{fields['resource_group']}/providers/Microsoft.Synapse"
          f"/workspaces/{fields['workspace_name']}",
      }
      encoded_params = urlencode(params)
      base_url = f"https://ms.web.azuresynapse.net/en/monitoring/pipelineruns/{run_id}?"
  
      return base_url + encoded_params
  
imports: from __future__ import annotations
  from functools import cached_property
  from typing import TYPE_CHECKING, Any, Sequence
  from urllib.parse import urlencode
  from airflow.exceptions import AirflowException
  from airflow.hooks.base import BaseHook
  from airflow.models import BaseOperator, BaseOperatorLink, XCom
  from airflow.providers.microsoft.azure.hooks.synapse import AzureSynapseHook, AzureSynapsePipelineHook, AzureSynapsePipelineRunException, AzureSynapsePipelineRunStatus, AzureSynapseSparkBatchRunStatus
label_desc: Use image node_id 2 for calling the AzureSynapsePipelineRunLink obj's underlying member method code with example usage: obj.get_link(operator) and returns: unknown