async def METHOD_NAME(self, method, url, headers={}, json=None, data=None) -> ClientResponse:
    try:
        response = await self.session.METHOD_NAME(method, url, headers=headers, json=json, timeout=self.buildTimeout(), data=data)
        if response.status < 400:
            return response
        await self.raiseForKnownErrors(response)
        if response.status in PERMISSION_DENIED:
            response.release()
            raise GoogleCredentialsExpired()
        elif response.status in INTERNAL_ERROR:
            response.release()
            raise GoogleInternalError()
        elif response.status in RATE_LIMIT_EXCEEDED or response.status in TOO_MANY_REQUESTS:
            response.release()
            raise GoogleRateLimitError()
        elif response.status in REQUEST_TIMEOUT:
            response.release()
            raise GoogleTimeoutError()
        response.raise_for_status()
        return response
    except ClientConnectorError as e:
        logger.debug(
            "Ran into trouble reaching Google Drive's servers.  We'll use alternate DNS servers on the next attempt.")
        self.resolver.toggle()
        if "Cannot connect to host" in str(e) or "Connection reset by peer" in str(e):
            raise GoogleCantConnect()
        if e.os_error.errno == -2:
            # -2 means dns lookup failed.
            raise GoogleDnsFailure()
        elif str(e.os_error) == "Domain name not found":
            raise GoogleDnsFailure()
        elif e.os_error.errno in [99, 111, 10061, 104]:
            # 111 means connection refused
            # Can't connect
            raise GoogleCantConnect()
        elif "Could not contact DNS serve" in str(e.os_error):
            # Wish there was a better way to identify this exception
            raise GoogleDnsFailure()
        raise
    except ClientOSError as e:
        if e.errno == 1:
            raise GoogleUnexpectedError()
        raise
    except ServerTimeoutError:
        raise GoogleTimeoutError()
    except ServerDisconnectedError:
        raise GoogleUnexpectedError()
    except DNSException:
        logger.debug(
            "Ran into trouble resolving Google Drive's servers.  We'll use normal DNS servers on the next attempt.")
        self.resolver.toggle()
        raise GoogleDnsFailure()