<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(self, volume_id, **kwargs):
 """ restore a volume from a backup """

        # These arguments are required
        self.required('create', kwargs, ['backup', 'size'])
        # Optional Arguments
        volume_id = volume_id or str(uuid.uuid4())
        kwargs['volume_type_name'] = kwargs['volume_type_name'] or 'vtype'
        kwargs['size'] = kwargs['size'] or 1
        # Make the request
        return self.http_put('/volumes/%s' % volume_id,
                             params=self.unused(kwargs))