class_docstr: Executes a Synapse Pipeline.
  
  :param pipeline_name: The name of the pipeline to execute.
  :param azure_synapse_conn_id: The Airflow connection ID for Azure Synapse.
  :param azure_synapse_workspace_dev_endpoint: The Azure Synapse workspace development endpoint.
  :param wait_for_termination: Flag to wait on a pipeline run's termination.
  :param reference_pipeline_run_id: The pipeline run identifier. If this run ID is specified the parameters
      of the specified run will be used to create a new run.
  :param is_recovery: Recovery mode flag. If recovery mode is set to `True`, the specified referenced
      pipeline run and the new run will be grouped under the same ``groupId``.
  :param start_activity_name: In recovery mode, the rerun will start from this activity. If not specified,
      all activities will run.
  :param parameters: Parameters of the pipeline run. These parameters are referenced in a pipeline via
      ``@pipeline().parameters.parameterName`` and will be used only if the ``reference_pipeline_run_id`` is
      not specified.
  :param timeout: Time in seconds to wait for a pipeline to reach a terminal status for non-asynchronous
      waits. Used only if ``wait_for_termination`` is True.
  :param check_interval: Time in seconds to check on a pipeline run's status for non-asynchronous waits.
      Used only if ``wait_for_termination`` is True.
code: def on_kill(self) -> None:
      if self.run_id:
          self.hook.cancel_run_pipeline(run_id=self.run_id)
  
          # Check to ensure the pipeline run was cancelled as expected.
          if self.hook.wait_for_pipeline_run_status(
              run_id=self.run_id,
              expected_statuses=AzureSynapsePipelineRunStatus.CANCELLED,
              check_interval=self.check_interval,
              timeout=self.timeout,
          ):
              self.log.info(
                  "Pipeline run %s has been cancelled successfully.",
                  self.run_id,
              )
          else:
              raise AzureSynapsePipelineRunException(
                  f"Pipeline run {self.run_id} was not cancelled."
              )
  
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 5 for calling the AzureSynapseRunPipelineOperator obj's underlying member method code with example usage: obj.on_kill() without return types