def METHOD_NAME(self) -> "FakeExternalResource":
    _fake_resource_call_history.append((self, "_do_update()"))
    if self.raise_on_update:
        raise ValueError("Intentional fail")
    if self.status.state == ResourceState.ACTIVATING:
        if self.slow_activate:
            return self
        return replace(
            self,
            status=replace(
                self.status,
                state=ResourceState.ACTIVE,
                message="Resource is ready!",
            ),
        )
    elif self.status.state == ResourceState.DEACTIVATING:
        if self.slow_deactivate:
            return self
        return replace(
            self,
            status=replace(
                self.status,
                state=ResourceState.DEACTIVATED,
                message="Resource is cleaned!",
            ),
        )
    return replace(
        self,
        status=replace(
            self.status,
            state=self.status.state,
            message="Nothing has changed...",
        ),
    )