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
between each tries
    :type poke_interval: float
    :param timeout: Time, in seconds before the task times out and fails.
    :type timeout: float
    :param mode: How the sensor operates.
        Options are: ``{ poke | reschedule }``, default is ``poke``.
        When set to ``poke`` the sensor is taking up a worker slot for its
        whole execution time and sleeps between pokes. Use this mode if the
        expected runtime of the sensor is short or if a short poke interval
        is required. Note that the sensor will hold onto a worker slot and
        a pool slot for the duration of the sensor's runtime in this mode.
        When set to ``reschedule`` the sensor task frees the worker slot when
        the criteria is not yet met and it's rescheduled at a later time. Use
        this mode if the time before the criteria is met is expected to be
        quite long. The poke interval should be more than one minute to
        prevent too much load on the scheduler.
    :type mode: str
    :param exponential_backoff: allow progressive longer waits between
        pokes by using exponential backoff algorithm
    :type exponential_backoff: bool
    """
    ui_color = '#e6f1f2'  
    valid_modes = ['poke', 'reschedule']  
    
    
    
    
    
    
    execution_fields = (