def METHOD_NAME(
    self,
    refresh: bool = True,
    capture_output: bool = True,
    attempts: int = env_defaults.TF_APPLY_ATTEMPTS,
    interval: int = consts.TF_APPLY_ATTEMPTS_INTERVAL,
) -> None:
    if os.getenv("DEBUG_TERRAFORM") is not None:
        capture_output = False
    return_value, output, err = self.tf.METHOD_NAME(
        no_color=IsFlagged, refresh=refresh, input=False, skip_plan=True, capture_output=capture_output
    )
    if return_value == 0:
        return
    message = f"Terraform apply failed with return value {return_value}, output {output} , error {err}"
    if attempts == 1:
        log.error(message)
        raise Exception(message)
    log.warning(message)
    log.info(f"Attempting to re-apply terraform target (left attempts: {attempts})...")
    time.sleep(interval)
    return self.METHOD_NAME(refresh, capture_output, attempts - 1, interval * 2)