The GCSToLocalFilesystemOperator in Google Provider <=3.0.0  had wrong import for apply_defaults. It used

```
from airflow.sensors.base_sensor_operator import apply_defaults
```

instead of 

```
from airflow.utils.decorators import apply_defaults
```

When we removed `apply_defaults` in #15667, the base_sensor_operator import was removed as well which made the GCSToLocalFilestystemOperator stops working in 2.1.0

The import in base_sensor_operator will be restored in 2.1.1  and Google Provider 4.0.0 will work without problems after it is released. Workaround for 2.1.0 Airflow is to copy the code of the operator to DAG and use it temporarily until new versions are released. 
airflow/sensors/base.py
if not isinstance(self.poke_interval, (int, float)) or self.poke_interval < 0:
            raise AirflowException("The poke_interval must be a non-negative number")
        if not isinstance(self.timeout, (int, float)) or self.timeout < 0:
            raise AirflowException("The timeout must be a non-negative number")
        if self.mode not in self.valid_modes:
            raise AirflowException(
                "The mode must be one of {valid_modes},"
                "'{d}.{t}'; received '{m}'.".format(
                    valid_modes=self.valid_modes,
                    d=self.dag.dag_id if self.dag else "",
                    t=self.task_id,
                    m=self.mode,
                )
            )
    def poke(self, context: Dict) -> bool: