docs: async def _query(server, method, parameters, timeout=DEFAULT_TIMEOUT, verify_ssl=True,
                   loop: asyncio.AbstractEventLoop=None):
      """Formats and performs the asynchronous query against the API
  
      :param server: The server to query.
      :param method: The method name.
      :param parameters: A dict of parameters to send
      :param timeout: The timeout to make the call, in seconds. By default, this is 300 seconds (or 5 minutes).
      :param verify_ssl: Whether or not to verify SSL connections
      :return: The JSON-decoded result from the server
      :raise MyGeotabException: Raises when an exception occurs on the MyGeotab server
      :raise TimeoutException: Raises when the request does not respond after some time.
      :raise aiohttp.ClientResponseError: Raises when there is an HTTP status code that indicates failure.
      """
      api_endpoint = api.get_api_url(server)
      params = dict(id=-1, method=method, params=parameters)
      headers = get_headers()
      ssl_context = None
      verify = verify_ssl
      if verify_ssl:
          ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
      conn = aiohttp.TCPConnector(verify_ssl=verify, ssl_context=ssl_context, loop=loop)
      try:
          async with aiohttp.ClientSession(connector=conn, loop=loop) as session:
              response = await session.post(api_endpoint,
                                            data=json.dumps(params,
                                                            default=object_serializer),
                                            headers=headers,
                                            timeout=timeout,
                                            allow_redirects=True)
              response.raise_for_status()
              content_type = response.headers.get('Content-Type')
              body = await response.text()
      except TimeoutError:
          raise TimeoutException(server)
      if content_type and 'application/json' not in content_type.lower():
          return body
      return api._process(json.loads(body, object_hook=object_deserializer))