<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def restore_key(self, backup, name=None, force=False, mount_point=DEFAULT_MOUNT_POINT):
 """Restore the backup as a named key. This will restore the key configurations and all the versions of the named key along with HMAC keys. The input to this endpoint should be the output of /backup endpoint. For safety, by default the backend will refuse to restore to an existing key. If you want to reuse a key name, it is recommended you delete the key before restoring. It is a good idea to attempt restoring to a different key name first to verify that the operation successfully completes. Supported methods: POST: /{mount_point}/restore(/name). Produces: 204 (empty body) :param backup: Backed up key data to be restored. This should be the output from the /backup endpoint. :type backup: str | unicode :param name: If set, this will be the name of the restored key. :type name: str | unicode :param force: If set, force the restore to proceed even if a key by this name already exists. :type force: bool :param mount_point: The "path" the method/backend was mounted on. :type mount_point: str | unicode :return: The response of the request. :rtype: requests.Response """

        params = {
            'backup': backup,
            'force': force,
        }
        api_path = '/v1/{mount_point}/restore'.format(mount_point=mount_point)
        if name is not None:
            api_path = self._adapter.urljoin(api_path, name)
        return self._adapter.post(
            url=api_path,
            json=params,
        )