### Description
Re: Google Cloud Provider -- PubSub

The PubSub [Topics Create API](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics/create#request-body) supports the SchemaSettings and messageRetentionDuration parameters. These should also be supported via the [PubSubCreateTopicOperator](https://github.com/apache/airflow/blob/9207e7d5e5c183d2e63c3030216b14709257668e/airflow/providers/google/cloud/operators/pubsub.py#L50). Thanks!

### Use case/motivation

_No response_

### Related issues

_No response_

### Are you willing to submit a PR?

- [x] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

If None is specified, requests will not be retried.
        :param timeout: (Optional) The amount of time, in seconds, to wait for the request
            to complete. Note that if retry is specified, the timeout applies to each
            individual attempt.
        :param metadata: (Optional) Additional metadata that is provided to the method.
        """
        subscriber = await self._get_subscriber_client()
        if ack_ids is not None and messages is None:
            pass  
        elif ack_ids is None and messages is not None:
            ack_ids = [message.ack_id for message in messages]  
        else:
            raise ValueError("One and only one of 'ack_ids' and 'messages' arguments have to be provided")
        subscription_path = f"projects/{project_id}/subscriptions/{subscription}"
        self.log.info("Acknowledging %d ack_ids from subscription (path) %s", len(ack_ids), subscription_path)
        try:
            await subscriber.acknowledge(
                request={"subscription": subscription_path, "ack_ids": ack_ids},
                retry=retry,
                timeout=timeout,
                metadata=metadata,
            )
        except (HttpError, GoogleAPICallError) as e:
            raise PubSubException(
                f"Error acknowledging {len(ack_ids)} messages pulled from subscription {subscription_path}",
                e,
            )
        self.log.info("Acknowledged ack_ids from subscription (path) %s", subscription_path)
    @GoogleBaseHook.fallback_to_default_project_id
    async def pull(