async def METHOD_NAME(self, user_id: str) -> HMMInstalled:
    if await self._mongo.status.count_documents(
        {"_id": "hmm", "updates.ready": False}
    ):
        raise ResourceConflictError("Install already in progress")
    settings = await self.data.settings.get_all()
    await virtool.hmm.db.fetch_and_update_release(
        self._client, self._mongo, settings.hmm_slug
    )
    release = await get_one_field(self._mongo.status, "release", "hmm")
    if not release:
        raise ResourceError("Target release does not exist")
    task = await self.data.tasks.create(
        HMMInstallTask, context={"user_id": user_id, "release": release}
    )
    update = create_update_subdocument(release, False, user_id)
    await self._mongo.status.find_one_and_update(
        {"_id": "hmm"},
        {"$set": {"task": {"id": task.id}}, "$push": {"updates": update}},
    )
    installed = await apply_transforms(
        {**release, **update}, [AttachUserTransform(self._mongo)]
    )
    return HMMInstalled(**installed)