class_docstr: Creates new connection to Salesforce and allows you to pull data out of SFDC and save it to a file.
  
  You can then use that file with other Airflow operators to move the data into another data source.
  
  :param conn_id: The name of the connection that has the parameters needed to connect to Salesforce.
      The connection should be of type `Salesforce`.
  :param session_id: The access token for a given HTTP request session.
  :param session: A custom HTTP request session. This enables the use of requests Session features not
      otherwise exposed by `simple_salesforce`.
  
  .. note::
      A connection to Salesforce can be created via several authentication options:
  
      * Password: Provide Username, Password, and Security Token
      * Direct Session: Provide a `session_id` and either Instance or Instance URL
      * OAuth 2.0 JWT: Provide a Consumer Key and either a Private Key or Private Key File Path
      * IP Filtering: Provide Username, Password, and an Organization ID
  
      If in sandbox, enter a Domain value of 'test'.
docstr: Make a query to Salesforce.
  
  :param query: The query to make to Salesforce.
  :param include_deleted: True if the query should include deleted records.
  :param query_params: Additional optional arguments
  :return: The query result.
docstr_tok: ["Make","a","query","to","Salesforce",".",":","param","query",":","The","query","to","make","to","Salesforce",".",":","param","include_deleted",":","True","if","the","query","should","include","deleted","records",".",":","param","query_params",":","Additional","optional","arguments",":","return",":","The","query","result","."]
code: def make_query(
      self,
      query: str,
      include_deleted: bool = False,
      query_params: dict | None = None,
  ) -> dict:
      """
      Make a query to Salesforce.
  
      :param query: The query to make to Salesforce.
      :param include_deleted: True if the query should include deleted records.
      :param query_params: Additional optional arguments
      :return: The query result.
      """
      conn = self.get_conn()
  
      self.log.info("Querying for all objects")
      query_params = query_params or {}
      query_results = conn.query_all(
          query, include_deleted=include_deleted, **query_params
      )
  
      self.log.info(
          "Received results: Total size: %s; Done: %s",
          query_results["totalSize"],
          query_results["done"],
      )
  
      return query_results
  
imports: from __future__ import annotations
  import logging
  import time
  from functools import cached_property
  from typing import TYPE_CHECKING, Any, Iterable
  from simple_salesforce import Salesforce, api
  from airflow.hooks.base import BaseHook
label_desc: Use image node_id 7 for calling the SalesforceHook obj's underlying member method code with example usage: obj.make_query(query, include_deleted, query_params) and returns: query_results