code: def call_instatus_api(
      self,
      endpoint: str,
      method: str = "GET",
      params: dict = None,
      json_data: dict = {},
  ) -> pd.DataFrame:
      if not params:
          params = {}
  
      headers = {"Authorization": f"Bearer {self._api_key}"}
      url = f"{self._base_url}{endpoint}"
  
      if method.upper() in ("GET", "POST", "PUT", "DELETE"):
          headers["Content-Type"] = "application/json"
  
          response = requests.request(
              method,
              url,
              headers=headers,
              params=params,
              json=json_data,
          )
  
          if response.status_code == 200:
              data = response.json()
              return (
                  pd.DataFrame(data)
                  if isinstance(data, list)
                  else pd.DataFrame([data])
              )
          else:
              raise Exception(
                  f"Error connecting to Instatus API: {response.status_code} - {response.text}"
              )
  
      return pd.DataFrame()
  
file_path: mindsdb/mindsdb/integrations/handlers/instatus_handler/instatus_handler.py
imports: from mindsdb.integrations.handlers.instatus_handler.instatus_tables import StatusPages, Components
  from mindsdb.integrations.libs.api_handler import APIHandler
  from mindsdb.integrations.libs.response import HandlerStatusResponse
  from mindsdb.utilities import log
  from mindsdb_sql import parse_sql
  import requests
  import pandas
  from collections import OrderedDict
  from mindsdb.integrations.libs.const import HANDLER_CONNECTION_ARG_TYPE
label_desc: Use image node_id 5 for calling the InstatusHandler obj's underlying member method code with example usage: obj.call_instatus_api(endpoint, method, params, json_data) and returns: pd, unknown