class_docstr: Interact with Databricks.
  
  :param databricks_conn_id: Reference to the :ref:`Databricks connection <howto/connection:databricks>`.
  :param timeout_seconds: The amount of time in seconds the requests library
      will wait before timing-out.
  :param retry_limit: The number of times to retry the connection in case of
      service outages.
  :param retry_delay: The number of seconds to wait between retries (it
      might be a floating point number).
  :param retry_args: An optional dictionary with arguments passed to ``tenacity.Retrying`` class.
class_docstr_tok: ["Interact","with","Databricks",".",":","param","databricks_conn_id",":","Reference","to","the",":","ref",":","`","Databricks","connection","<","howto\/connection",":","databricks",">","`",".",":","param","timeout_seconds",":","The","amount","of","time","in","seconds","the","requests","library","will","wait","before","timing-out",".",":","param","retry_limit",":","The","number","of","times","to","retry","the","connection","in","case","of","service","outages",".",":","param","retry_delay",":","The","number","of","seconds","to","wait","between","retries","(","it","might","be","a","floating","point","number",")",".",":","param","retry_args",":","An","optional","dictionary","with","arguments","passed","to","``","tenacity.Retrying","``","class","."]
docstr: Find pipeline id by its name; if multiple pipelines with the same name, raise AirflowException.
  
  :param pipeline_name: The name of the pipeline to look up.
  :return: The pipeline_id as a GUID string or None if no pipeline was found.
docstr_tok: ["Find","pipeline","id","by","its","name",";","if","multiple","pipelines","with","the","same","name",",","raise","AirflowException",".",":","param","pipeline_name",":","The","name","of","the","pipeline","to","look","up",".",":","return",":","The","pipeline_id","as","a","GUID","string","or","None","if","no","pipeline","was","found","."]
code: def find_pipeline_id_by_name(self, pipeline_name: str) -> str | None:
      """
      Find pipeline id by its name; if multiple pipelines with the same name, raise AirflowException.
  
      :param pipeline_name: The name of the pipeline to look up.
      :return: The pipeline_id as a GUID string or None if no pipeline was found.
      """
      matching_pipelines = self.list_pipelines(
          pipeline_name=pipeline_name
      )
  
      if len(matching_pipelines) > 1:
          raise AirflowException(
              f"There are more than one pipelines with name {pipeline_name}. "
              "Please delete duplicated pipelines first"
          )
  
      if not pipeline_name or len(matching_pipelines) == 0:
          return None
      else:
          return matching_pipelines[0]["pipeline_id"]
  
imports: from __future__ import annotations
  import json
  from typing import Any
  from requests import exceptions
  from airflow.exceptions import AirflowException
  from airflow.providers.databricks.hooks.databricks_base import BaseDatabricksHook
label_desc: Use image node_id 9 for calling the DatabricksHook obj's underlying member method code with example usage: obj.find_pipeline_id_by_name(pipeline_name) and returns: None, matching_pipelines