class_docstr: Interact with Neo4j.
  
  Performs a connection to Neo4j and runs the query.
  
  :param neo4j_conn_id: Reference to :ref:`Neo4j connection id <howto/connection:neo4j>`.
class_docstr_tok: ["Interact","with","Neo4j",".","Performs","a","connection","to","Neo4j","and","runs","the","query",".",":","param","neo4j_conn_id",":","Reference","to",":","ref",":","`","Neo4j","connection","id","<","howto\/connection",":","neo4j",">","`","."]
docstr: Build the uri based on extras.
  
  - Default - uses bolt scheme(bolt://)
  - neo4j_scheme - neo4j://
  - certs_self_signed - neo4j+ssc://
  - certs_trusted_ca - neo4j+s://
  
  :param conn: connection object.
  :return: uri
docstr_tok: ["Build","the","uri","based","on","extras",".","-","Default","-","uses","bolt","scheme","(","bolt",":","\/\/",")","-","neo4j_scheme","-","neo4j",":","\/\/","-","certs_self_signed","-","neo4j+ssc",":","\/\/","-","certs_trusted_ca","-","neo4j+s",":","\/\/",":","param","conn",":","connection","object",".",":","return",":","uri"]
code: def get_uri(self, conn: Connection) -> str:
      """
      Build the uri based on extras.
  
      - Default - uses bolt scheme(bolt://)
      - neo4j_scheme - neo4j://
      - certs_self_signed - neo4j+ssc://
      - certs_trusted_ca - neo4j+s://
  
      :param conn: connection object.
      :return: uri
      """
      use_neo4j_scheme = conn.extra_dejson.get("neo4j_scheme", False)
      scheme = "neo4j" if use_neo4j_scheme else "bolt"
  
      # Self signed certificates
      ssc = conn.extra_dejson.get("certs_self_signed", False)
  
      # Only certificates signed by CA.
      trusted_ca = conn.extra_dejson.get("certs_trusted_ca", False)
      encryption_scheme = ""
  
      if ssc:
          encryption_scheme = "+ssc"
      elif trusted_ca:
          encryption_scheme = "+s"
  
      return f"{scheme}{encryption_scheme}://{conn.host}:{7687 if conn.port is None else conn.port}"
  
file_path: airflow/airflow/providers/neo4j/hooks/neo4j.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Any
  from urllib.parse import urlsplit
  from neo4j import Driver, GraphDatabase
  from airflow.hooks.base import BaseHook
label_desc: Use image node_id 4 for calling the Neo4jHook obj's underlying member method code with example usage: obj.get_uri(conn) and returns: scheme, encryption_scheme, str, conn, str, unknown