def METHOD_NAME(self) -> None:
    """Helper method to block and check on Schedule until complete."""
    # Used these numbers so failures surface fast
    wait = 5  # start at five seconds
    log_wait = 5
    max_wait = 60 * 5  # 5 minute wait
    multiplier = 2  # scale wait by 2 every iteration
    previous_time = time.time()
    while self.state not in _SCHEDULE_COMPLETE_STATES:
        current_time = time.time()
        if current_time - previous_time >= log_wait:
            _LOGGER.info(
                "%s %s current state:\n%s"
                % (
                    self.__class__.__name__,
                    self._gca_resource.name,
                    self._gca_resource.state,
                )
            )
            log_wait = min(log_wait * multiplier, max_wait)
            previous_time = current_time
        time.sleep(wait)
    # Error is only populated when the schedule state is STATE_UNSPECIFIED.
    if self._gca_resource.state in _SCHEDULE_ERROR_STATES:
        raise RuntimeError("Schedule failed with:\n%s" % self._gca_resource.error)
    else:
        _LOGGER.log_action_completed_against_resource("run", "completed", self)