def update_intent(self,
                      workspace_id,
                      intent,
                      new_intent=None,
                      new_description=None,
                      new_examples=None,
                      **kwargs):
        """
        Update intent.

        Update an existing intent with new or modified data. You must provide component
        objects defining the content of the updated intent.
        This operation is limited to 2000 requests per 30 minutes. For more information,
        see **Rate limiting**.

        :param str workspace_id: Unique identifier of the workspace.
        :param str intent: The intent name.
        :param str new_intent: The name of the intent. This string must conform to the
        following restrictions:
        - It can contain only Unicode alphanumeric, underscore, hyphen, and dot
        characters.
        - It cannot begin with the reserved prefix `sys-`.
        - It must be no longer than 128 characters.
        :param str new_description: The description of the intent. This string cannot
        contain carriage return, newline, or tab characters, and it must be no longer than
        128 characters.
        :param list[Example] new_examples: An array of user input examples for the intent.
        :param dict headers: A `dict` containing the request headers
        :return: A `DetailedResponse` containing the result, headers and HTTP status code.
        :rtype: DetailedResponse
        """

        if workspace_id is None:
            raise ValueError('workspace_id must be provided')
        if intent is None:
            raise ValueError('intent must be provided')
        if new_examples is not None:
            new_examples = [
                self._convert_model(x, Example) for x in new_examples
            ]

        headers = {}
        if 'headers' in kwargs:
            headers.update(kwargs.get('headers'))
        sdk_headers = get_sdk_headers('conversation', 'V1', 'update_intent')
        headers.update(sdk_headers)

        params = {'version': self.version}

        data = {
            'intent': new_intent,
            'description': new_description,
            'examples': new_examples
        }

        url = '/v1/workspaces/{0}/intents/{1}'.format(
            *self._encode_path_vars(workspace_id, intent))
        response = self.request(
            method='POST',
            url=url,
            headers=headers,
            params=params,
            json=data,
            accept_json=True)
        return response
Update intent.

        Update an existing intent with new or modified data. You must provide component
        objects defining the content of the updated intent.
        This operation is limited to 2000 requests per 30 minutes. For more information,
        see **Rate limiting**.

        :param str workspace_id: Unique identifier of the workspace.
        :param str intent: The intent name.
        :param str new_intent: The name of the intent. This string must conform to the
        following restrictions:
        - It can contain only Unicode alphanumeric, underscore, hyphen, and dot
        characters.
        - It cannot begin with the reserved prefix `sys-`.
        - It must be no longer than 128 characters.
        :param str new_description: The description of the intent. This string cannot
        contain carriage return, newline, or tab characters, and it must be no longer than
        128 characters.
        :param list[Example] new_examples: An array of user input examples for the intent.
        :param dict headers: A `dict` containing the request headers
        :return: A `DetailedResponse` containing the result, headers and HTTP status code.
        :rtype: DetailedResponse