def restore_repository_from_recycle_bin(self, repository_details, project, repository_id):
        """RestoreRepositoryFromRecycleBin.
        [Preview API] Recover a soft-deleted Git repository. Recently deleted repositories go into a soft-delete state for a period of time before they are hard deleted and become unrecoverable.
        :param :class:`<GitRecycleBinRepositoryDetails> <azure.devops.v5_1.git.models.GitRecycleBinRepositoryDetails>` repository_details:
        :param str project: Project ID or project name
        :param str repository_id: The ID of the repository.
        :rtype: :class:`<GitRepository> <azure.devops.v5_1.git.models.GitRepository>`
        """
        route_values = {}
        if project is not None:
            route_values['project'] = self._serialize.url('project', project, 'str')
        if repository_id is not None:
            route_values['repositoryId'] = self._serialize.url('repository_id', repository_id, 'str')
        content = self._serialize.body(repository_details, 'GitRecycleBinRepositoryDetails')
        response = self._send(http_method='PATCH',
                              location_id='a663da97-81db-4eb3-8b83-287670f63073',
                              version='5.1-preview.1',
                              route_values=route_values,
                              content=content)
        return self._deserialize('GitRepository', response)
RestoreRepositoryFromRecycleBin.
        [Preview API] Recover a soft-deleted Git repository. Recently deleted repositories go into a soft-delete state for a period of time before they are hard deleted and become unrecoverable.
        :param :class:`<GitRecycleBinRepositoryDetails> <azure.devops.v5_1.git.models.GitRecycleBinRepositoryDetails>` repository_details:
        :param str project: Project ID or project name
        :param str repository_id: The ID of the repository.
        :rtype: :class:`<GitRepository> <azure.devops.v5_1.git.models.GitRepository>`