def convert_to_html(self,
                        file,
                        filename=None,
                        file_content_type=None,
                        model=None,
                        **kwargs):
        """
        Convert document to HTML.

        Converts a document to HTML.

        :param file file: The document to convert.
        :param str filename: The filename for file.
        :param str file_content_type: The content type of file.
        :param str model: The analysis model to be used by the service. For the **Element
        classification** and **Compare two documents** methods, the default is
        `contracts`. For the **Extract tables** method, the default is `tables`. These
        defaults apply to the standalone methods as well as to the methods' use in
        batch-processing requests.
        :param dict headers: A `dict` containing the request headers
        :return: A `DetailedResponse` containing the result, headers and HTTP status code.
        :rtype: DetailedResponse
        """

        if file is None:
            raise ValueError('file must be provided')

        headers = {}
        if 'headers' in kwargs:
            headers.update(kwargs.get('headers'))
        sdk_headers = get_sdk_headers('compare-comply', 'V1', 'convert_to_html')
        headers.update(sdk_headers)

        params = {'version': self.version, 'model': model}

        form_data = {}
        if not filename and hasattr(file, 'name'):
            filename = basename(file.name)
        if not filename:
            raise ValueError('filename must be provided')
        form_data['file'] = (filename, file, file_content_type or
                             'application/octet-stream')

        url = '/v1/html_conversion'
        response = self.request(
            method='POST',
            url=url,
            headers=headers,
            params=params,
            files=form_data,
            accept_json=True)
        return response