### 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)

publisher = self.get_conn()
        topic_path = f"projects/{project_id}/topics/{topic}"
        self.log.info("Deleting topic (path) %s", topic_path)
        try:
            publisher.delete_topic(
                request={"topic": topic_path}, retry=retry, timeout=timeout, metadata=metadata or ()
            )
        except NotFound:
            self.log.warning("Topic does not exist: %s", topic_path)
            if fail_if_not_exists:
                raise PubSubException(f"Topic does not exist: {topic_path}")
        except GoogleAPICallError as e:
            raise PubSubException(f"Error deleting topic {topic}", e)
        self.log.info("Deleted topic (path) %s", topic_path)
    @GoogleBaseHook.fallback_to_default_project_id
    def create_subscription(
        self,
        topic: str,
        project_id: str = PROVIDE_PROJECT_ID,
        subscription: str | None = None,
        subscription_project_id: str | None = None,
        ack_deadline_secs: int = 10,
        fail_if_exists: bool = False,
        push_config: dict | PushConfig | None = None,
        retain_acked_messages: bool | None = None,
        message_retention_duration: dict | Duration | None = None,
        labels: dict[str, str] | None = None,
        enable_message_ordering: bool = False,
        expiration_policy: dict | ExpirationPolicy | None = None,
        filter_: str | None = None,