def update_insight(self, project_key, insight_id, **kwargs):
        """Update an insight.

        **Note that only elements included in the request will be updated. All
        omitted elements will remain untouched.
        :param project_key: Projrct identifier, in the form of
        projectOwner/projectid
        :type project_key: str
        :param insight_id: Insight unique identifier.
        :type insight_id: str
        :param title: Insight title
        :type title: str
        :param description: Insight description.
        :type description: str, optional
        :param image_url: If image-based, the URL of the image
        :type image_url: str
        :param embed_url: If embed-based, the embeddable URL
        :type embed_url: str
        :param source_link: Permalink to source code or platform this insight
        was generated with. Allows others to replicate the steps originally
        used to produce the insight.
        :type source_link: str, optional
        :param data_source_links: One or more permalinks to the data sources
        used to generate this insight. Allows others to access the data
        originally used to produce the insight.
        :type data_source_links: array
        :returns: message object
        :rtype: object
        :raises RestApiException: If a server error occurs

        Examples
        --------
        >>> import datadotworld as dw
        >>> api_client = dw.api_client()
        >>> api_client.update_insight(
        ...    'username/test-project', 'insightid'
        ...    title='demo atadotworld'})  # doctest: +SKIP
        """
        request = self.__build_insight_obj(
            lambda: _swagger.InsightPatchRequest(), kwargs)
        project_owner, project_id = parse_dataset_key(project_key)
        try:
            self._insights_api.update_insight(project_owner,
                                              project_id,
                                              insight_id, body=request)
        except _swagger.rest.ApiException as e:
            raise RestApiError(cause=e)
Update an insight.

        **Note that only elements included in the request will be updated. All
        omitted elements will remain untouched.
        :param project_key: Projrct identifier, in the form of
        projectOwner/projectid
        :type project_key: str
        :param insight_id: Insight unique identifier.
        :type insight_id: str
        :param title: Insight title
        :type title: str
        :param description: Insight description.
        :type description: str, optional
        :param image_url: If image-based, the URL of the image
        :type image_url: str
        :param embed_url: If embed-based, the embeddable URL
        :type embed_url: str
        :param source_link: Permalink to source code or platform this insight
        was generated with. Allows others to replicate the steps originally
        used to produce the insight.
        :type source_link: str, optional
        :param data_source_links: One or more permalinks to the data sources
        used to generate this insight. Allows others to access the data
        originally used to produce the insight.
        :type data_source_links: array
        :returns: message object
        :rtype: object
        :raises RestApiException: If a server error occurs

        Examples
        --------
        >>> import datadotworld as dw
        >>> api_client = dw.api_client()
        >>> api_client.update_insight(
        ...    'username/test-project', 'insightid'
        ...    title='demo atadotworld'})  # doctest: +SKIP