def undelete_blob(self, container_name, blob_name, timeout=None):
_validate_not_none('<STR_LIT>', container_name)<EOL>_validate_not_none('<STR_LIT>', blob_name)<EOL>request = HTTPRequest()<EOL>request.method = '<STR_LIT>'<EOL>request.host_locations = self._get_host_locations()<EOL>request.path = _get_path(container_name, blob_name)<EOL>request.query = {<EOL>'<STR_LIT>': '<STR_LIT>',<EOL>'<STR_LIT>': _int_to_str(timeout)<EOL>}<EOL>self._perform_request(request)<EOL>
The undelete Blob operation restores the contents and metadata of soft deleted blob or snapshot.
Attempting to undelete a blob or snapshot that is not soft deleted will succeed without any changes.

:param str container_name:
    Name of existing container.
:param str blob_name:
    Name of existing blob.
:param int timeout:
    The timeout parameter is expressed in seconds.