async def METHOD_NAME(self):
    """POST query performs an action on a specific extension
    Body arguments:
        {
            "cmd": Action to perform - ["install", "uninstall", "enable", "disable"]
            "extension_name": Extension name
            "extension_version": [optional] Extension version (used only for install action)
        }
    """
    data = self.get_json_body()
    cmd = data["cmd"]
    name = data["extension_name"]
    version = data.get("extension_version")
    if cmd not in ("install", "uninstall", "enable", "disable") or not name:
        raise web.HTTPError(
            422,
            f"Could not process instruction {cmd!r} with extension name {name!r}",
        )
    ret_value = None
    try:
        if cmd == "install":
            ret_value = await self.manager.install(name, version)
        elif cmd == "uninstall":
            ret_value = await self.manager.uninstall(name)
        elif cmd == "enable":
            ret_value = await self.manager.enable(name)
        elif cmd == "disable":
            ret_value = await self.manager.disable(name)
    except Exception as e:
        raise web.HTTPError(500, str(e)) from e
    if ret_value.status == "error":
        self.set_status(500)
    else:
        self.set_status(201)
    self.finish(json.dumps(dataclasses.asdict(ret_value)))