class_docstr: A client to interact with Snowflake using SQL API and submit multiple SQL statements in a single request.
  
  In combination with aiohttp, make post request to submit SQL statements for execution,
  poll to check the status of the execution of a statement. Fetch query results asynchronously.
  
  This hook requires the snowflake_conn_id connection. This hooks mainly uses account, schema, database,
   warehouse, private_key_file or private_key_content field must be setup in the connection. Other inputs
    can be defined in the connection or hook instantiation.
  
  :param snowflake_conn_id: Reference to
      :ref:`Snowflake connection id<howto/connection:snowflake>`
  :param account: snowflake account name
  :param authenticator: authenticator for Snowflake.
      'snowflake' (default) to use the internal Snowflake authenticator
      'externalbrowser' to authenticate using your web browser and
      Okta, ADFS or any other SAML 2.0-compliant identify provider
      (IdP) that has been defined for your account
      'https://<your_okta_account_name>.okta.com' to authenticate
      through native Okta.
  :param warehouse: name of snowflake warehouse
  :param database: name of snowflake database
  :param region: name of snowflake region
  :param role: name of snowflake role
  :param schema: name of snowflake schema
  :param session_parameters: You can set session-level parameters at
      the time you connect to Snowflake
  :param token_life_time: lifetime of the JWT Token in timedelta
  :param token_renewal_delta: Renewal time of the JWT Token in timedelta
  :param deferrable: Run operator in the deferrable mode.
code: def _process_response(self, status_code, resp):
      self.log.info(
          "Snowflake SQL GET statements status API response: %s", resp
      )
      if status_code == 202:
          return {
              "status": "running",
              "message": "Query statements are still running",
          }
      elif status_code == 422:
          return {"status": "error", "message": resp["message"]}
      elif status_code == 200:
          statement_handles = []
          if "statementHandles" in resp and resp["statementHandles"]:
              statement_handles = resp["statementHandles"]
          elif "statementHandle" in resp and resp["statementHandle"]:
              statement_handles.append(resp["statementHandle"])
          return {
              "status": "success",
              "message": resp["message"],
              "statement_handles": statement_handles,
          }
      else:
          return {"status": "error", "message": resp["message"]}
  
imports: from __future__ import annotations
  import uuid
  from datetime import timedelta
  from pathlib import Path
  from typing import Any
  import aiohttp
  import requests
  from cryptography.hazmat.backends import default_backend
  from cryptography.hazmat.primitives import serialization
  from airflow.exceptions import AirflowException
  from airflow.providers.snowflake.hooks.snowflake import SnowflakeHook
  from airflow.providers.snowflake.utils.sql_api_generate_jwt import JWTGenerator
label_desc: Use image node_id 7 for calling the SnowflakeSqlApiHook obj's underlying member method code with example usage: obj._process_response(status_code, resp) and returns: dict, dict, dict, dict