async def _base_request(self, url, content_type, response_type, data):
headers = {<EOL>'<STR_LIT>': content_type,<EOL>'<STR_LIT>': '<STR_LIT>',<EOL>}<EOL>params = {<EOL>'<STR_LIT>': response_type,<EOL>'<STR_LIT:key>': API_KEY,<EOL>}<EOL>res = await self._session.fetch(<EOL>'<STR_LIT>', url, headers=headers, params=params, data=data,<EOL>)<EOL>return res<EOL>
Send a generic authenticated POST request.

        Args:
            url (str): URL of request.
            content_type (str): Request content type.
            response_type (str): The desired response format. Valid options
                are: 'json' (JSON), 'protojson' (pblite), and 'proto' (binary
                Protocol Buffer). 'proto' requires manually setting an extra
                header 'X-Goog-Encode-Response-If-Executable: base64'.
            data (str): Request body data.

        Returns:
            FetchResponse: Response containing HTTP code, cookies, and body.

        Raises:
            NetworkError: If the request fails.