**Description**

Support passing multiple prefixes to `GoogleCloudStorageListOperator` and `GoogleCloudStorageDeleteOperator` operators.

**Use case / motivation**

I have this folder structure in GCS bucket.

```
+-- year={year}
|   +-- month={month}
|       +--day={day}
|           +-- topic={topic1}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic2}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic3}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic4}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic5}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic6}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic7}
|       +--day={day}
|           +-- topic={topic1}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic2}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic3}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic4}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic5}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic6}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic7}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           ....
```

What I need to achieve is delete one day of objects. For example, I need to delete objects in `year=2020/month=08/day=19`. I can do that easily using `gsutils`. In `gsutil` you can delete them via wild card `gsutil ear=2020/month=08/day=19/*` but using the REST APIs you can't even if you use a prefix. The reason is there is no one prefix to get all the objects inside a folder. I achieved that by using multiple prefixes and for each prefix, I will get the list of objects. Unfortunately, I can't pass more than one prefix to the operators.

**Prefixes used**
- `year=2020/month=08/day=19/topic={topic1}`
- `year=2020/month=08/day=19/topic={topic2}`
- `year=2020/month=08/day=19/topic={topic3}`
- `year=2020/month=08/day=19/topic={topic4}`
- `year=2020/month=08/day=19/topic={topic5}`
- `year=2020/month=08/day=19/topic={topic6}`
- `year=2020/month=08/day=19/topic={topic7}`

assert object_name == "OBJECT_NAME"
            assert bucket_name == "BUCKET_NAME"
            assert object_url is None
            self.assertion_on_body()
        self.test_method = test_method
    def test_should_url(self):
        self.test_method(None, object_url="gs://BUCKET_NAME/OBJECT_NAME")
        self.assertion_on_body.assert_called_once()
    def test_should_support_bucket_and_object(self):
        self.test_method(None, bucket_name="BUCKET_NAME", object_name="OBJECT_NAME")
        self.assertion_on_body.assert_called_once()
    def test_should_raise_exception_on_missing(self):
        with pytest.raises(
            TypeError,
            match=re.escape(
                "test_method() missing 2 required positional arguments: 'bucket_name' and 'object_name'"
            ),
        ):
            self.test_method(None)
        self.assertion_on_body.assert_not_called()
    def test_should_raise_exception_on_mutually_exclusive(self):
        with pytest.raises(AirflowException, match=re.escape("The mutually exclusive parameters.")):
            self.test_method(
                None,
                bucket_name="BUCKET_NAME",
                object_name="OBJECT_NAME",
                object_url="gs://BUCKET_NAME/OBJECT_NAME",
            )
        self.assertion_on_body.assert_not_called()
class TestGCSHook: