"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright 2025 Redpanda Data, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
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 _NullValue:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _NullValueEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NullValue.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NULL_VALUE: _NullValue.ValueType

class NullValue(_NullValue, metaclass=_NullValueEnumTypeWrapper):
    """`NullValue` is a representation of a null value."""
NULL_VALUE: NullValue.ValueType
global___NullValue = NullValue

@typing.final
class StructValue(google.protobuf.message.Message):
    """`StructValue` represents a struct value which can be used to represent a
    structured data value.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class FieldsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str

        @property
        def value(self) -> global___Value:
            ...

        def __init__(self, *, key: builtins.str=..., value: global___Value | None=...) -> None:
            ...

        def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool:
            ...

        def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None:
            ...
    FIELDS_FIELD_NUMBER: builtins.int

    @property
    def fields(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Value]:
        ...

    def __init__(self, *, fields: collections.abc.Mapping[builtins.str, global___Value] | None=...) -> None:
        ...

    def ClearField(self, field_name: typing.Literal['fields', b'fields']) -> None:
        ...
global___StructValue = StructValue

@typing.final
class ListValue(google.protobuf.message.Message):
    """`ListValue` represents a list value which can be used to represent a list of
    values.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    VALUES_FIELD_NUMBER: builtins.int

    @property
    def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Value]:
        ...

    def __init__(self, *, values: collections.abc.Iterable[global___Value] | None=...) -> None:
        ...

    def ClearField(self, field_name: typing.Literal['values', b'values']) -> None:
        ...
global___ListValue = ListValue

@typing.final
class Value(google.protobuf.message.Message):
    """`Value` represents a dynamically typed value which can be used to represent
    a value within a Redpanda Connect pipeline.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    NULL_VALUE_FIELD_NUMBER: builtins.int
    STRING_VALUE_FIELD_NUMBER: builtins.int
    INTEGER_VALUE_FIELD_NUMBER: builtins.int
    DOUBLE_VALUE_FIELD_NUMBER: builtins.int
    BOOL_VALUE_FIELD_NUMBER: builtins.int
    TIMESTAMP_VALUE_FIELD_NUMBER: builtins.int
    BYTES_VALUE_FIELD_NUMBER: builtins.int
    STRUCT_VALUE_FIELD_NUMBER: builtins.int
    LIST_VALUE_FIELD_NUMBER: builtins.int
    null_value: global___NullValue.ValueType
    string_value: builtins.str
    integer_value: builtins.int
    double_value: builtins.float
    bool_value: builtins.bool
    bytes_value: builtins.bytes

    @property
    def timestamp_value(self) -> google.protobuf.timestamp_pb2.Timestamp:
        ...

    @property
    def struct_value(self) -> global___StructValue:
        ...

    @property
    def list_value(self) -> global___ListValue:
        ...

    def __init__(self, *, null_value: global___NullValue.ValueType=..., string_value: builtins.str=..., integer_value: builtins.int=..., double_value: builtins.float=..., bool_value: builtins.bool=..., timestamp_value: google.protobuf.timestamp_pb2.Timestamp | None=..., bytes_value: builtins.bytes=..., struct_value: global___StructValue | None=..., list_value: global___ListValue | None=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['bool_value', b'bool_value', 'bytes_value', b'bytes_value', 'double_value', b'double_value', 'integer_value', b'integer_value', 'kind', b'kind', 'list_value', b'list_value', 'null_value', b'null_value', 'string_value', b'string_value', 'struct_value', b'struct_value', 'timestamp_value', b'timestamp_value']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['bool_value', b'bool_value', 'bytes_value', b'bytes_value', 'double_value', b'double_value', 'integer_value', b'integer_value', 'kind', b'kind', 'list_value', b'list_value', 'null_value', b'null_value', 'string_value', b'string_value', 'struct_value', b'struct_value', 'timestamp_value', b'timestamp_value']) -> None:
        ...

    def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['null_value', 'string_value', 'integer_value', 'double_value', 'bool_value', 'timestamp_value', 'bytes_value', 'struct_value', 'list_value'] | None:
        ...
global___Value = Value

@typing.final
class Error(google.protobuf.message.Message):
    """An error in the context of a data pipeline."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class NotConnected(google.protobuf.message.Message):
        """NotConnected is returned by inputs and outputs when their Read or
        Write methods are called and the connection that they maintain is lost.
        This error prompts the upstream component to call Connect until the
        connection is re-established.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    @typing.final
    class EndOfInput(google.protobuf.message.Message):
        """EndOfInput is returned by inputs that have exhausted their source of
        data to the point where subsequent Read calls will be ineffective. This
        error prompts the upstream component to gracefully terminate the
        pipeline.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        def __init__(self) -> None:
            ...
    MESSAGE_FIELD_NUMBER: builtins.int
    BACKOFF_FIELD_NUMBER: builtins.int
    NOT_CONNECTED_FIELD_NUMBER: builtins.int
    END_OF_INPUT_FIELD_NUMBER: builtins.int
    message: builtins.str
    'The error message. If non empty, then the error is valid and\n    if empty the error is ignored as if a success (due to proto3 empty\n    semantics).\n    '

    @property
    def backoff(self) -> google.protobuf.duration_pb2.Duration:
        """BackOff is an error that plugins can optionally wrap another error with
        which instructs upstream components to wait for a specified period of
        time before retrying the errored call.

        Only supported by Connect methods in the Input and Output services.
        """

    @property
    def not_connected(self) -> global___Error.NotConnected:
        ...

    @property
    def end_of_input(self) -> global___Error.EndOfInput:
        ...

    def __init__(self, *, message: builtins.str=..., backoff: google.protobuf.duration_pb2.Duration | None=..., not_connected: global___Error.NotConnected | None=..., end_of_input: global___Error.EndOfInput | None=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['backoff', b'backoff', 'detail', b'detail', 'end_of_input', b'end_of_input', 'not_connected', b'not_connected']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['backoff', b'backoff', 'detail', b'detail', 'end_of_input', b'end_of_input', 'message', b'message', 'not_connected', b'not_connected']) -> None:
        ...

    def WhichOneof(self, oneof_group: typing.Literal['detail', b'detail']) -> typing.Literal['backoff', 'not_connected', 'end_of_input'] | None:
        ...
global___Error = Error

@typing.final
class Message(google.protobuf.message.Message):
    """Message represents a piece of data or an event that flows through the
    runtime.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    BYTES_FIELD_NUMBER: builtins.int
    STRUCTURED_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    bytes: builtins.bytes

    @property
    def structured(self) -> global___Value:
        ...

    @property
    def metadata(self) -> global___StructValue:
        ...

    @property
    def error(self) -> global___Error:
        ...

    def __init__(self, *, bytes: builtins.bytes=..., structured: global___Value | None=..., metadata: global___StructValue | None=..., error: global___Error | None=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['bytes', b'bytes', 'error', b'error', 'metadata', b'metadata', 'payload', b'payload', 'structured', b'structured']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['bytes', b'bytes', 'error', b'error', 'metadata', b'metadata', 'payload', b'payload', 'structured', b'structured']) -> None:
        ...

    def WhichOneof(self, oneof_group: typing.Literal['payload', b'payload']) -> typing.Literal['bytes', 'structured'] | None:
        ...
global___Message = Message

@typing.final
class MessageBatch(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGES_FIELD_NUMBER: builtins.int

    @property
    def messages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Message]:
        ...

    def __init__(self, *, messages: collections.abc.Iterable[global___Message] | None=...) -> None:
        ...

    def ClearField(self, field_name: typing.Literal['messages', b'messages']) -> None:
        ...
global___MessageBatch = MessageBatch