# Auto generated by 'inv collect-airflow'
from airfly._vendor.airflow.providers.google.cloud.operators.cloud_base import (
    GoogleCloudBaseOperator,
)


class PubSubCreateTopicOperator(GoogleCloudBaseOperator):
    topic: "str"
    project_id: "str"
    fail_if_exists: "bool"
    gcp_conn_id: "str"
    labels: "dict[str, str] | None"
    message_storage_policy: "dict | MessageStoragePolicy"
    kms_key_name: "str | None"
    schema_settings: "dict | SchemaSettings"
    message_retention_duration: "str | None"
    retry: "Retry | _MethodDefault"
    timeout: "float | None"
    metadata: "Sequence[tuple[str, str]]"
    impersonation_chain: "str | Sequence[str] | None"


class PubSubCreateSubscriptionOperator(GoogleCloudBaseOperator):
    topic: "str"
    project_id: "str"
    subscription: "str | None"
    subscription_project_id: "str | None"
    ack_deadline_secs: "int"
    fail_if_exists: "bool"
    gcp_conn_id: "str"
    push_config: "dict | PushConfig | None"
    retain_acked_messages: "bool | None"
    message_retention_duration: "dict | Duration | None"
    labels: "dict[str, str] | None"
    enable_message_ordering: "bool"
    expiration_policy: "dict | ExpirationPolicy | None"
    filter_: "str | None"
    dead_letter_policy: "dict | DeadLetterPolicy | None"
    retry_policy: "dict | RetryPolicy | None"
    retry: "Retry | _MethodDefault"
    timeout: "float | None"
    metadata: "Sequence[tuple[str, str]]"
    impersonation_chain: "str | Sequence[str] | None"


class PubSubDeleteTopicOperator(GoogleCloudBaseOperator):
    topic: "str"
    project_id: "str"
    fail_if_not_exists: "bool"
    gcp_conn_id: "str"
    retry: "Retry | _MethodDefault"
    timeout: "float | None"
    metadata: "Sequence[tuple[str, str]]"
    impersonation_chain: "str | Sequence[str] | None"


class PubSubDeleteSubscriptionOperator(GoogleCloudBaseOperator):
    subscription: "str"
    project_id: "str"
    fail_if_not_exists: "bool"
    gcp_conn_id: "str"
    retry: "Retry | _MethodDefault"
    timeout: "float | None"
    metadata: "Sequence[tuple[str, str]]"
    impersonation_chain: "str | Sequence[str] | None"


class PubSubPublishMessageOperator(GoogleCloudBaseOperator):
    topic: "str"
    messages: "list"
    project_id: "str"
    gcp_conn_id: "str"
    enable_message_ordering: "bool"
    impersonation_chain: "str | Sequence[str] | None"


class PubSubPullOperator(GoogleCloudBaseOperator):
    project_id: "str"
    subscription: "str"
    max_messages: "int"
    ack_messages: "bool"
    messages_callback: "Callable[[list[ReceivedMessage], Context], Any] | None"
    gcp_conn_id: "str"
    impersonation_chain: "str | Sequence[str] | None"
