def edit(self, **kwargs):
response = self._requester.request(<EOL>'<STR_LIT>',<EOL>'<STR_LIT>'.format(self.parent_type, self.parent_id, self.id),<EOL>_kwargs=combine_kwargs(**kwargs)<EOL>)<EOL>response_json = response.json()<EOL>if '<STR_LIT:name>' in response_json:<EOL><INDENT>super(ExternalTool, self).set_attributes(response_json)<EOL><DEDENT>return ExternalTool(self._requester, response_json)<EOL>
Update the specified external tool.

:calls: `PUT /api/v1/courses/:course_id/external_tools/:external_tool_id
    <https://canvas.instructure.com/doc/api/external_tools.html#method.external_tools.update>`_
    or `PUT /api/v1/accounts/:account_id/external_tools/:external_tool_id
    <https://canvas.instructure.com/doc/api/external_tools.html#method.external_tools.update>`_

:rtype: :class:`canvasapi.external_tool.ExternalTool`