"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _SaslMechanism:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SaslMechanismEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SaslMechanism.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SCRAMSHA256: _SaslMechanism.ValueType  # 0
    SCRAMSHA512: _SaslMechanism.ValueType  # 1
    PLAIN: _SaslMechanism.ValueType  # 2

class SaslMechanism(_SaslMechanism, metaclass=_SaslMechanismEnumTypeWrapper): ...

SCRAMSHA256: SaslMechanism.ValueType  # 0
SCRAMSHA512: SaslMechanism.ValueType  # 1
PLAIN: SaslMechanism.ValueType  # 2
global___SaslMechanism = SaslMechanism

class _SecurityProtocol:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SecurityProtocolEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SecurityProtocol.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SASL_SSL: _SecurityProtocol.ValueType  # 0

class SecurityProtocol(_SecurityProtocol, metaclass=_SecurityProtocolEnumTypeWrapper): ...

SASL_SSL: SecurityProtocol.ValueType  # 0
global___SecurityProtocol = SecurityProtocol

class _MessageFormat:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _MessageFormatEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MessageFormat.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID: _MessageFormat.ValueType  # 0
    """invalid is only for dummy first enum - not really in use"""
    JSON: _MessageFormat.ValueType  # 1
    AVRO: _MessageFormat.ValueType  # 2

class MessageFormat(_MessageFormat, metaclass=_MessageFormatEnumTypeWrapper): ...

INVALID: MessageFormat.ValueType  # 0
"""invalid is only for dummy first enum - not really in use"""
JSON: MessageFormat.ValueType  # 1
AVRO: MessageFormat.ValueType  # 2
global___MessageFormat = MessageFormat

class StreamingSource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    KAFKASOURCE_FIELD_NUMBER: builtins.int
    KAFKASOURCEV1_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Source given name (by the user)"""
    description: builtins.str
    """Source description"""
    @property
    def kafkaSource(self) -> global___KafkaSource:
        """"old" Kafka source"""
    @property
    def kafkaSourceV1(self) -> global___KafkaSourceV1:
        """Kafka source V1"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        description: builtins.str = ...,
        kafkaSource: global___KafkaSource | None = ...,
        kafkaSourceV1: global___KafkaSourceV1 | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["kafkaSource", b"kafkaSource", "kafkaSourceV1", b"kafkaSourceV1", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "kafkaSource", b"kafkaSource", "kafkaSourceV1", b"kafkaSourceV1", "name", b"name", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["kafkaSource", "kafkaSourceV1"] | None: ...

global___StreamingSource = StreamingSource

class KafkaSource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BOOTSTRAP_SERVER_FIELD_NUMBER: builtins.int
    CONSUMER_TOPIC_FIELD_NUMBER: builtins.int
    USERNAME_SECRET_NAME_FIELD_NUMBER: builtins.int
    PASSWORD_SECRET_NAME_FIELD_NUMBER: builtins.int
    CONSUMER_CONFIGURATION_FIELD_NUMBER: builtins.int
    bootstrap_server: builtins.str
    """Kafka client server address"""
    consumer_topic: builtins.str
    """Kafka client consumer topic"""
    username_secret_name: builtins.str
    """Kafka username kubernetes secret name"""
    password_secret_name: builtins.str
    """Kafka password kubernetes secret name"""
    consumer_configuration: builtins.str
    """Json string of a python dictionary.
    If the key is one of username_secret_name or password_secret_name it is assumed to be the qwak secret key
    Else it will be used as a configuration as is - e.g.
    '{"group.id": "streaming_group_id_transactionstream", "cc_key1": "sasl.username", "cc_secret1": "sasl.password"}'
    group.id will be dealt with as a configuration, cc_key1 and cc_secret1 will be fetched as qwak secrets and will be
    injected into the configuration as <sasl.username, value(cc_key1)> <cc_secret1, value(cc_secret1)>
    """
    def __init__(
        self,
        *,
        bootstrap_server: builtins.str = ...,
        consumer_topic: builtins.str = ...,
        username_secret_name: builtins.str = ...,
        password_secret_name: builtins.str = ...,
        consumer_configuration: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["bootstrap_server", b"bootstrap_server", "consumer_configuration", b"consumer_configuration", "consumer_topic", b"consumer_topic", "password_secret_name", b"password_secret_name", "username_secret_name", b"username_secret_name"]) -> None: ...

global___KafkaSource = KafkaSource

class KafkaSourceV1(google.protobuf.message.Message):
    """ ============================ V1 ===================="""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class SecretConfigsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    class PassthroughConfigsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    BOOTSTRAP_SERVERS_FIELD_NUMBER: builtins.int
    ASSIGN_FIELD_NUMBER: builtins.int
    SUBSCRIBE_FIELD_NUMBER: builtins.int
    SUBSCRIBE_PATTERN_FIELD_NUMBER: builtins.int
    SECRET_CONFIGS_FIELD_NUMBER: builtins.int
    PASSTHROUGH_CONFIGS_FIELD_NUMBER: builtins.int
    DESERIALIZATION_FIELD_NUMBER: builtins.int
    AUTHENTICATION_METHOD_FIELD_NUMBER: builtins.int
    bootstrap_servers: builtins.str
    """Kafka bootstrap server addresses"""
    assign: builtins.str
    """specific TopicPartitions, corresponds to "assign" in the reader options"""
    subscribe: builtins.str
    """comma-separated list of topics, corresponds to "subscribe" in the reader options"""
    subscribe_pattern: builtins.str
    """regex matching the topics to subscribe, corresponds to "subscribePattern"
    in the reader options
    """
    @property
    def secret_configs(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Map of configurations to set, where the configuration value
        is retrieved from a Qwak secret.
         not all configs will be respected - this is a best-effort
        """
    @property
    def passthrough_configs(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Map of configurations to set that are passed through to the reader, w/o
        secret resolution - not all configs will be respected, this is a best effort.
        """
    @property
    def deserialization(self) -> global___Deserialization:
        """Deserialization specifications"""
    @property
    def authentication_method(self) -> global___Authentication:
        """Authentication method"""
    def __init__(
        self,
        *,
        bootstrap_servers: builtins.str = ...,
        assign: builtins.str = ...,
        subscribe: builtins.str = ...,
        subscribe_pattern: builtins.str = ...,
        secret_configs: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        passthrough_configs: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        deserialization: global___Deserialization | None = ...,
        authentication_method: global___Authentication | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["assign", b"assign", "authentication_method", b"authentication_method", "deserialization", b"deserialization", "subscribe", b"subscribe", "subscribe_pattern", b"subscribe_pattern", "topic_configuration", b"topic_configuration"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["assign", b"assign", "authentication_method", b"authentication_method", "bootstrap_servers", b"bootstrap_servers", "deserialization", b"deserialization", "passthrough_configs", b"passthrough_configs", "secret_configs", b"secret_configs", "subscribe", b"subscribe", "subscribe_pattern", b"subscribe_pattern", "topic_configuration", b"topic_configuration"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["topic_configuration", b"topic_configuration"]) -> typing_extensions.Literal["assign", "subscribe", "subscribe_pattern"] | None: ...

global___KafkaSourceV1 = KafkaSourceV1

class Authentication(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SASL_CONFIGURATION_FIELD_NUMBER: builtins.int
    PLAIN_CONFIGURATION_FIELD_NUMBER: builtins.int
    SSL_CONFIGURATION_FIELD_NUMBER: builtins.int
    @property
    def sasl_configuration(self) -> global___Sasl: ...
    @property
    def plain_configuration(self) -> global___Plain: ...
    @property
    def ssl_configuration(self) -> global___Ssl: ...
    def __init__(
        self,
        *,
        sasl_configuration: global___Sasl | None = ...,
        plain_configuration: global___Plain | None = ...,
        ssl_configuration: global___Ssl | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["plain_configuration", b"plain_configuration", "sasl_configuration", b"sasl_configuration", "ssl_configuration", b"ssl_configuration", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["plain_configuration", b"plain_configuration", "sasl_configuration", b"sasl_configuration", "ssl_configuration", b"ssl_configuration", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["sasl_configuration", "plain_configuration", "ssl_configuration"] | None: ...

global___Authentication = Authentication

class Ssl(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___Ssl = Ssl

class Plain(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___Plain = Plain

class Sasl(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USERNAME_SECRET_FIELD_NUMBER: builtins.int
    PASSWORD_SECRET_FIELD_NUMBER: builtins.int
    SASL_MECHANISM_FIELD_NUMBER: builtins.int
    SECURITY_PROTOCOL_FIELD_NUMBER: builtins.int
    username_secret: builtins.str
    """User name secret"""
    password_secret: builtins.str
    """Password secret"""
    sasl_mechanism: global___SaslMechanism.ValueType
    """mechanism enum"""
    security_protocol: global___SecurityProtocol.ValueType
    """Protocol enum"""
    def __init__(
        self,
        *,
        username_secret: builtins.str = ...,
        password_secret: builtins.str = ...,
        sasl_mechanism: global___SaslMechanism.ValueType = ...,
        security_protocol: global___SecurityProtocol.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["password_secret", b"password_secret", "sasl_mechanism", b"sasl_mechanism", "security_protocol", b"security_protocol", "username_secret", b"username_secret"]) -> None: ...

global___Sasl = Sasl

class Deserialization(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CUSTOM_DESERIALIZER_FIELD_NUMBER: builtins.int
    GENERIC_DESERIALIZER_FIELD_NUMBER: builtins.int
    @property
    def custom_deserializer(self) -> global___CustomDeserializer:
        """Custom function deserializer"""
    @property
    def generic_deserializer(self) -> global___GenericDeserializer: ...
    def __init__(
        self,
        *,
        custom_deserializer: global___CustomDeserializer | None = ...,
        generic_deserializer: global___GenericDeserializer | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["custom_deserializer", b"custom_deserializer", "generic_deserializer", b"generic_deserializer", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["custom_deserializer", b"custom_deserializer", "generic_deserializer", b"generic_deserializer", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["custom_deserializer", "generic_deserializer"] | None: ...

global___Deserialization = Deserialization

class CustomDeserializer(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FUNCTION_NAME_FIELD_NUMBER: builtins.int
    ARTIFACT_PATH_FIELD_NUMBER: builtins.int
    function_name: builtins.str
    """Deserializer function name"""
    artifact_path: builtins.str
    """Custom deserialization artifact path"""
    def __init__(
        self,
        *,
        function_name: builtins.str = ...,
        artifact_path: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["artifact_path", b"artifact_path", "function_name", b"function_name"]) -> None: ...

global___CustomDeserializer = CustomDeserializer

class GenericDeserializer(google.protobuf.message.Message):
    """Generic deserializer opens the "value" column of the input DF"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESERIALIZER_FORMAT_FIELD_NUMBER: builtins.int
    SCHEMA_FIELD_NUMBER: builtins.int
    deserializer_format: global___MessageFormat.ValueType
    """deserializer file type"""
    schema: builtins.str
    """schema as string"""
    def __init__(
        self,
        *,
        deserializer_format: global___MessageFormat.ValueType = ...,
        schema: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["deserializer_format", b"deserializer_format", "schema", b"schema"]) -> None: ...

global___GenericDeserializer = GenericDeserializer
