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 job id by its name; if there are multiple jobs with the same name, raise AirflowException.
  
  :param job_name: The name of the job to look up.
  :return: The job_id as an int or None if no job was found.
docstr_tok: ["Find","job","id","by","its","name",";","if","there","are","multiple","jobs","with","the","same","name",",","raise","AirflowException",".",":","param","job_name",":","The","name","of","the","job","to","look","up",".",":","return",":","The","job_id","as","an","int","or","None","if","no","job","was","found","."]
code: def find_job_id_by_name(self, job_name: str) -> int | None:
      """
      Find job id by its name; if there are multiple jobs with the same name, raise AirflowException.
  
      :param job_name: The name of the job to look up.
      :return: The job_id as an int or None if no job was found.
      """
      matching_jobs = self.list_jobs(job_name=job_name)
  
      if len(matching_jobs) > 1:
          raise AirflowException(
              f"There are more than one job with name {job_name}. Please delete duplicated jobs first"
          )
  
      if not matching_jobs:
          return None
      else:
          return matching_jobs[0]["job_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 7 for calling the DatabricksHook obj's underlying member method code with example usage: obj.find_job_id_by_name(job_name) and returns: None, matching_jobs