"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
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 google.protobuf.wrappers_pb2
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class Direction(metaclass=_Direction):
    V = typing.NewType('V', builtins.int)

global___Direction = Direction

FIRST = Direction.V(0)
SECOND = Direction.V(1)

class _Direction(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Direction.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    FIRST = Direction.V(0)
    SECOND = Direction.V(1)

class NullValue(metaclass=_NullValue):
    V = typing.NewType('V', builtins.int)

global___NullValue = NullValue

NULL_VALUE = NullValue.V(0)

class _NullValue(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[NullValue.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    NULL_VALUE = NullValue.V(0)

class FailUnexpected(metaclass=_FailUnexpected):
    V = typing.NewType('V', builtins.int)

global___FailUnexpected = FailUnexpected

NO = FailUnexpected.V(0)
FIELDS = FailUnexpected.V(1)
FIELDS_AND_MESSAGES = FailUnexpected.V(2)

class _FailUnexpected(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FailUnexpected.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    NO = FailUnexpected.V(0)
    FIELDS = FailUnexpected.V(1)
    FIELDS_AND_MESSAGES = FailUnexpected.V(2)

class FilterOperation(metaclass=_FilterOperation):
    V = typing.NewType('V', builtins.int)

global___FilterOperation = FilterOperation

EQUAL = FilterOperation.V(0)
NOT_EQUAL = FilterOperation.V(1)
EMPTY = FilterOperation.V(2)
NOT_EMPTY = FilterOperation.V(3)
IN = FilterOperation.V(4)
NOT_IN = FilterOperation.V(5)
LIKE = FilterOperation.V(6)
NOT_LIKE = FilterOperation.V(7)
MORE = FilterOperation.V(8)
NOT_MORE = FilterOperation.V(9)
LESS = FilterOperation.V(10)
NOT_LESS = FilterOperation.V(11)
WILDCARD = FilterOperation.V(12)
NOT_WILDCARD = FilterOperation.V(13)
EQ_TIME_PRECISION = FilterOperation.V(14)
EQ_DECIMAL_PRECISION = FilterOperation.V(15)

class _FilterOperation(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FilterOperation.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    EQUAL = FilterOperation.V(0)
    NOT_EQUAL = FilterOperation.V(1)
    EMPTY = FilterOperation.V(2)
    NOT_EMPTY = FilterOperation.V(3)
    IN = FilterOperation.V(4)
    NOT_IN = FilterOperation.V(5)
    LIKE = FilterOperation.V(6)
    NOT_LIKE = FilterOperation.V(7)
    MORE = FilterOperation.V(8)
    NOT_MORE = FilterOperation.V(9)
    LESS = FilterOperation.V(10)
    NOT_LESS = FilterOperation.V(11)
    WILDCARD = FilterOperation.V(12)
    NOT_WILDCARD = FilterOperation.V(13)
    EQ_TIME_PRECISION = FilterOperation.V(14)
    EQ_DECIMAL_PRECISION = FilterOperation.V(15)

class EventStatus(metaclass=_EventStatus):
    V = typing.NewType('V', builtins.int)

global___EventStatus = EventStatus

SUCCESS = EventStatus.V(0)
FAILED = EventStatus.V(1)

class _EventStatus(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[EventStatus.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    SUCCESS = EventStatus.V(0)
    FAILED = EventStatus.V(1)

class ConnectionID(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SESSION_ALIAS_FIELD_NUMBER: builtins.int
    SESSION_GROUP_FIELD_NUMBER: builtins.int
    session_alias: typing.Text = ...
    session_group: typing.Text = ...

    def __init__(self,
        *,
        session_alias : typing.Text = ...,
        session_group : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"session_alias",b"session_alias",u"session_group",b"session_group"]) -> None: ...
global___ConnectionID = ConnectionID

class MessageID(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    CONNECTION_ID_FIELD_NUMBER: builtins.int
    DIRECTION_FIELD_NUMBER: builtins.int
    SEQUENCE_FIELD_NUMBER: builtins.int
    SUBSEQUENCE_FIELD_NUMBER: builtins.int
    BOOK_NAME_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    direction: global___Direction.V = ...
    sequence: builtins.int = ...

    @property
    def subsequence(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    book_name: typing.Text = ...

    @property
    def connection_id(self) -> global___ConnectionID: ...

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

    def __init__(self,
        *,
        connection_id : typing.Optional[global___ConnectionID] = ...,
        direction : global___Direction.V = ...,
        sequence : builtins.int = ...,
        subsequence : typing.Optional[typing.Iterable[builtins.int]] = ...,
        book_name : typing.Text = ...,
        timestamp : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"connection_id",b"connection_id",u"timestamp",b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"book_name",b"book_name",u"connection_id",b"connection_id",u"direction",b"direction",u"sequence",b"sequence",u"subsequence",b"subsequence",u"timestamp",b"timestamp"]) -> None: ...
global___MessageID = MessageID

class MessageMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class PropertiesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...

        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    ID_FIELD_NUMBER: builtins.int
    MESSAGE_TYPE_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    PROTOCOL_FIELD_NUMBER: builtins.int
    message_type: typing.Text = ...
    protocol: typing.Text = ...

    @property
    def id(self) -> global___MessageID: ...

    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...

    def __init__(self,
        *,
        id : typing.Optional[global___MessageID] = ...,
        message_type : typing.Text = ...,
        properties : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        protocol : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"id",b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id",u"message_type",b"message_type",u"properties",b"properties",u"protocol",b"protocol"]) -> None: ...
global___MessageMetadata = MessageMetadata

class RawMessageMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class PropertiesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...

        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    ID_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    PROTOCOL_FIELD_NUMBER: builtins.int
    protocol: typing.Text = ...

    @property
    def id(self) -> global___MessageID: ...

    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...

    def __init__(self,
        *,
        id : typing.Optional[global___MessageID] = ...,
        properties : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        protocol : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"id",b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id",u"properties",b"properties",u"protocol",b"protocol"]) -> None: ...
global___RawMessageMetadata = RawMessageMetadata

class Value(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    NULL_VALUE_FIELD_NUMBER: builtins.int
    SIMPLE_VALUE_FIELD_NUMBER: builtins.int
    MESSAGE_VALUE_FIELD_NUMBER: builtins.int
    LIST_VALUE_FIELD_NUMBER: builtins.int
    null_value: global___NullValue.V = ...
    simple_value: typing.Text = ...

    @property
    def message_value(self) -> global___Message: ...

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

    def __init__(self,
        *,
        null_value : global___NullValue.V = ...,
        simple_value : typing.Text = ...,
        message_value : typing.Optional[global___Message] = ...,
        list_value : typing.Optional[global___ListValue] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"kind",b"kind",u"list_value",b"list_value",u"message_value",b"message_value",u"null_value",b"null_value",u"simple_value",b"simple_value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"kind",b"kind",u"list_value",b"list_value",u"message_value",b"message_value",u"null_value",b"null_value",u"simple_value",b"simple_value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"kind",b"kind"]) -> typing_extensions.Literal["null_value","simple_value","message_value","list_value"]: ...
global___Value = Value

class ListValue(google.protobuf.message.Message):
    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 : typing.Optional[typing.Iterable[global___Value]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"values",b"values"]) -> None: ...
global___ListValue = ListValue

class Message(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class FieldsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...

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

        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Optional[global___Value] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"value",b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    PARENT_EVENT_ID_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    FIELDS_FIELD_NUMBER: builtins.int

    @property
    def parent_event_id(self) -> global___EventID: ...

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

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

    def __init__(self,
        *,
        parent_event_id : typing.Optional[global___EventID] = ...,
        metadata : typing.Optional[global___MessageMetadata] = ...,
        fields : typing.Optional[typing.Mapping[typing.Text, global___Value]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"metadata",b"metadata",u"parent_event_id",b"parent_event_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"fields",b"fields",u"metadata",b"metadata",u"parent_event_id",b"parent_event_id"]) -> None: ...
global___Message = Message

class RawMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PARENT_EVENT_ID_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    BODY_FIELD_NUMBER: builtins.int
    body: builtins.bytes = ...

    @property
    def parent_event_id(self) -> global___EventID: ...

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

    def __init__(self,
        *,
        parent_event_id : typing.Optional[global___EventID] = ...,
        metadata : typing.Optional[global___RawMessageMetadata] = ...,
        body : builtins.bytes = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"metadata",b"metadata",u"parent_event_id",b"parent_event_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"body",b"body",u"metadata",b"metadata",u"parent_event_id",b"parent_event_id"]) -> None: ...
global___RawMessage = RawMessage

class AnyMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    MESSAGE_FIELD_NUMBER: builtins.int
    RAW_MESSAGE_FIELD_NUMBER: builtins.int

    @property
    def message(self) -> global___Message: ...

    @property
    def raw_message(self) -> global___RawMessage: ...

    def __init__(self,
        *,
        message : typing.Optional[global___Message] = ...,
        raw_message : typing.Optional[global___RawMessage] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"kind",b"kind",u"message",b"message",u"raw_message",b"raw_message"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"kind",b"kind",u"message",b"message",u"raw_message",b"raw_message"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"kind",b"kind"]) -> typing_extensions.Literal["message","raw_message"]: ...
global___AnyMessage = AnyMessage

class MessageGroup(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    MESSAGES_FIELD_NUMBER: builtins.int

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

    def __init__(self,
        *,
        messages : typing.Optional[typing.Iterable[global___AnyMessage]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"messages",b"messages"]) -> None: ...
global___MessageGroup = MessageGroup

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 : typing.Optional[typing.Iterable[global___Message]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"messages",b"messages"]) -> None: ...
global___MessageBatch = MessageBatch

class RawMessageBatch(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    MESSAGES_FIELD_NUMBER: builtins.int

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

    def __init__(self,
        *,
        messages : typing.Optional[typing.Iterable[global___RawMessage]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"messages",b"messages"]) -> None: ...
global___RawMessageBatch = RawMessageBatch

class MessageGroupBatch(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    GROUPS_FIELD_NUMBER: builtins.int

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

    def __init__(self,
        *,
        groups : typing.Optional[typing.Iterable[global___MessageGroup]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"groups",b"groups"]) -> None: ...
global___MessageGroupBatch = MessageGroupBatch

class RequestStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Status(metaclass=_Status):
        V = typing.NewType('V', builtins.int)

    SUCCESS = RequestStatus.Status.V(0)
    ERROR = RequestStatus.Status.V(1)

    class _Status(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Status.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        SUCCESS = RequestStatus.Status.V(0)
        ERROR = RequestStatus.Status.V(1)

    STATUS_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    status: global___RequestStatus.Status.V = ...
    message: typing.Text = ...

    def __init__(self,
        *,
        status : global___RequestStatus.Status.V = ...,
        message : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"message",b"message",u"status",b"status"]) -> None: ...
global___RequestStatus = RequestStatus

class ComparisonSettings(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    FAIL_UNEXPECTED_FIELD_NUMBER: builtins.int
    fail_unexpected: global___FailUnexpected.V = ...

    def __init__(self,
        *,
        fail_unexpected : global___FailUnexpected.V = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"fail_unexpected",b"fail_unexpected"]) -> None: ...
global___ComparisonSettings = ComparisonSettings

class RootComparisonSettings(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    IGNORE_FIELDS_FIELD_NUMBER: builtins.int
    CHECK_REPEATING_GROUP_ORDER_FIELD_NUMBER: builtins.int
    TIME_PRECISION_FIELD_NUMBER: builtins.int
    DECIMAL_PRECISION_FIELD_NUMBER: builtins.int

    @property
    def ignore_fields(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
    check_repeating_group_order: builtins.bool = ...
    decimal_precision: typing.Text = ...

    @property
    def time_precision(self) -> google.protobuf.duration_pb2.Duration: ...

    def __init__(self,
        *,
        ignore_fields : typing.Optional[typing.Iterable[typing.Text]] = ...,
        check_repeating_group_order : builtins.bool = ...,
        time_precision : typing.Optional[google.protobuf.duration_pb2.Duration] = ...,
        decimal_precision : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"time_precision",b"time_precision"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"check_repeating_group_order",b"check_repeating_group_order",u"decimal_precision",b"decimal_precision",u"ignore_fields",b"ignore_fields",u"time_precision",b"time_precision"]) -> None: ...
global___RootComparisonSettings = RootComparisonSettings

class ValueFilter(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    OPERATION_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    SIMPLE_FILTER_FIELD_NUMBER: builtins.int
    MESSAGE_FILTER_FIELD_NUMBER: builtins.int
    LIST_FILTER_FIELD_NUMBER: builtins.int
    SIMPLE_LIST_FIELD_NUMBER: builtins.int
    NULL_VALUE_FIELD_NUMBER: builtins.int
    operation: global___FilterOperation.V = ...
    key: builtins.bool = ...
    simple_filter: typing.Text = ...
    null_value: global___NullValue.V = ...

    @property
    def message_filter(self) -> global___MessageFilter: ...

    @property
    def list_filter(self) -> global___ListValueFilter: ...

    @property
    def simple_list(self) -> global___SimpleList: ...

    def __init__(self,
        *,
        operation : global___FilterOperation.V = ...,
        key : builtins.bool = ...,
        simple_filter : typing.Text = ...,
        message_filter : typing.Optional[global___MessageFilter] = ...,
        list_filter : typing.Optional[global___ListValueFilter] = ...,
        simple_list : typing.Optional[global___SimpleList] = ...,
        null_value : global___NullValue.V = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"kind",b"kind",u"list_filter",b"list_filter",u"message_filter",b"message_filter",u"null_value",b"null_value",u"simple_filter",b"simple_filter",u"simple_list",b"simple_list"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"kind",b"kind",u"list_filter",b"list_filter",u"message_filter",b"message_filter",u"null_value",b"null_value",u"operation",b"operation",u"simple_filter",b"simple_filter",u"simple_list",b"simple_list"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"kind",b"kind"]) -> typing_extensions.Literal["simple_filter","message_filter","list_filter","simple_list","null_value"]: ...
global___ValueFilter = ValueFilter

class ListValueFilter(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    VALUES_FIELD_NUMBER: builtins.int

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

    def __init__(self,
        *,
        values : typing.Optional[typing.Iterable[global___ValueFilter]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"values",b"values"]) -> None: ...
global___ListValueFilter = ListValueFilter

class SimpleList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SIMPLE_VALUES_FIELD_NUMBER: builtins.int

    @property
    def simple_values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...

    def __init__(self,
        *,
        simple_values : typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"simple_values",b"simple_values"]) -> None: ...
global___SimpleList = SimpleList

class MessageFilter(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class FieldsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...

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

        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Optional[global___ValueFilter] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"value",b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    FIELDS_FIELD_NUMBER: builtins.int
    COMPARISON_SETTINGS_FIELD_NUMBER: builtins.int

    @property
    def fields(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ValueFilter]: ...

    @property
    def comparison_settings(self) -> global___ComparisonSettings: ...

    def __init__(self,
        *,
        fields : typing.Optional[typing.Mapping[typing.Text, global___ValueFilter]] = ...,
        comparison_settings : typing.Optional[global___ComparisonSettings] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"comparison_settings",b"comparison_settings"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"comparison_settings",b"comparison_settings",u"fields",b"fields"]) -> None: ...
global___MessageFilter = MessageFilter

class MetadataFilter(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class SimpleFilter(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        OPERATION_FIELD_NUMBER: builtins.int
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        SIMPLE_LIST_FIELD_NUMBER: builtins.int
        operation: global___FilterOperation.V = ...
        key: builtins.bool = ...
        value: typing.Text = ...

        @property
        def simple_list(self) -> global___SimpleList: ...

        def __init__(self,
            *,
            operation : global___FilterOperation.V = ...,
            key : builtins.bool = ...,
            value : typing.Text = ...,
            simple_list : typing.Optional[global___SimpleList] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"filter_value",b"filter_value",u"simple_list",b"simple_list",u"value",b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"filter_value",b"filter_value",u"key",b"key",u"operation",b"operation",u"simple_list",b"simple_list",u"value",b"value"]) -> None: ...
        def WhichOneof(self, oneof_group: typing_extensions.Literal[u"filter_value",b"filter_value"]) -> typing_extensions.Literal["value","simple_list"]: ...

    class PropertyFiltersEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...

        @property
        def value(self) -> global___MetadataFilter.SimpleFilter: ...

        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Optional[global___MetadataFilter.SimpleFilter] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"value",b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    PROPERTY_FILTERS_FIELD_NUMBER: builtins.int

    @property
    def property_filters(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___MetadataFilter.SimpleFilter]: ...

    def __init__(self,
        *,
        property_filters : typing.Optional[typing.Mapping[typing.Text, global___MetadataFilter.SimpleFilter]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"property_filters",b"property_filters"]) -> None: ...
global___MetadataFilter = MetadataFilter

class RootMessageFilter(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    MESSAGETYPE_FIELD_NUMBER: builtins.int
    MESSAGE_FILTER_FIELD_NUMBER: builtins.int
    METADATA_FILTER_FIELD_NUMBER: builtins.int
    COMPARISON_SETTINGS_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    messageType: typing.Text = ...

    @property
    def message_filter(self) -> global___MessageFilter: ...

    @property
    def metadata_filter(self) -> global___MetadataFilter: ...

    @property
    def comparison_settings(self) -> global___RootComparisonSettings: ...

    @property
    def description(self) -> google.protobuf.wrappers_pb2.StringValue: ...

    def __init__(self,
        *,
        messageType : typing.Text = ...,
        message_filter : typing.Optional[global___MessageFilter] = ...,
        metadata_filter : typing.Optional[global___MetadataFilter] = ...,
        comparison_settings : typing.Optional[global___RootComparisonSettings] = ...,
        description : typing.Optional[google.protobuf.wrappers_pb2.StringValue] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"comparison_settings",b"comparison_settings",u"description",b"description",u"message_filter",b"message_filter",u"metadata_filter",b"metadata_filter"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"comparison_settings",b"comparison_settings",u"description",b"description",u"messageType",b"messageType",u"message_filter",b"message_filter",u"metadata_filter",b"metadata_filter"]) -> None: ...
global___RootMessageFilter = RootMessageFilter

class Checkpoint(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class BookNameToSessionAliasToDirectionCheckpointEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...

        @property
        def value(self) -> global___Checkpoint.SessionAliasToDirectionCheckpoint: ...

        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Optional[global___Checkpoint.SessionAliasToDirectionCheckpoint] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"value",b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    class SessionAliasToDirectionCheckpoint(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class SessionAliasToDirectionCheckpointEntry(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            KEY_FIELD_NUMBER: builtins.int
            VALUE_FIELD_NUMBER: builtins.int
            key: typing.Text = ...

            @property
            def value(self) -> global___Checkpoint.DirectionCheckpoint: ...

            def __init__(self,
                *,
                key : typing.Text = ...,
                value : typing.Optional[global___Checkpoint.DirectionCheckpoint] = ...,
                ) -> None: ...
            def HasField(self, field_name: typing_extensions.Literal[u"value",b"value"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

        SESSION_ALIAS_TO_DIRECTION_CHECKPOINT_FIELD_NUMBER: builtins.int

        @property
        def session_alias_to_direction_checkpoint(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Checkpoint.DirectionCheckpoint]: ...

        def __init__(self,
            *,
            session_alias_to_direction_checkpoint : typing.Optional[typing.Mapping[typing.Text, global___Checkpoint.DirectionCheckpoint]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"session_alias_to_direction_checkpoint",b"session_alias_to_direction_checkpoint"]) -> None: ...

    class DirectionCheckpoint(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class DirectionToCheckpointDataEntry(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            KEY_FIELD_NUMBER: builtins.int
            VALUE_FIELD_NUMBER: builtins.int
            key: builtins.int = ...

            @property
            def value(self) -> global___Checkpoint.CheckpointData: ...

            def __init__(self,
                *,
                key : builtins.int = ...,
                value : typing.Optional[global___Checkpoint.CheckpointData] = ...,
                ) -> None: ...
            def HasField(self, field_name: typing_extensions.Literal[u"value",b"value"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

        DIRECTION_TO_CHECKPOINT_DATA_FIELD_NUMBER: builtins.int

        @property
        def direction_to_checkpoint_data(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, global___Checkpoint.CheckpointData]: ...

        def __init__(self,
            *,
            direction_to_checkpoint_data : typing.Optional[typing.Mapping[builtins.int, global___Checkpoint.CheckpointData]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"direction_to_checkpoint_data",b"direction_to_checkpoint_data"]) -> None: ...

    class CheckpointData(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        SEQUENCE_FIELD_NUMBER: builtins.int
        TIMESTAMP_FIELD_NUMBER: builtins.int
        sequence: builtins.int = ...

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

        def __init__(self,
            *,
            sequence : builtins.int = ...,
            timestamp : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"timestamp",b"timestamp"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"sequence",b"sequence",u"timestamp",b"timestamp"]) -> None: ...

    ID_FIELD_NUMBER: builtins.int
    BOOK_NAME_TO_SESSION_ALIAS_TO_DIRECTION_CHECKPOINT_FIELD_NUMBER: builtins.int
    id: typing.Text = ...

    @property
    def book_name_to_session_alias_to_direction_checkpoint(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Checkpoint.SessionAliasToDirectionCheckpoint]: ...

    def __init__(self,
        *,
        id : typing.Text = ...,
        book_name_to_session_alias_to_direction_checkpoint : typing.Optional[typing.Mapping[typing.Text, global___Checkpoint.SessionAliasToDirectionCheckpoint]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"book_name_to_session_alias_to_direction_checkpoint",b"book_name_to_session_alias_to_direction_checkpoint",u"id",b"id"]) -> None: ...
global___Checkpoint = Checkpoint

class EventID(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    BOOK_NAME_FIELD_NUMBER: builtins.int
    SCOPE_FIELD_NUMBER: builtins.int
    START_TIMESTAMP_FIELD_NUMBER: builtins.int
    id: typing.Text = ...
    book_name: typing.Text = ...
    scope: typing.Text = ...

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

    def __init__(self,
        *,
        id : typing.Text = ...,
        book_name : typing.Text = ...,
        scope : typing.Text = ...,
        start_timestamp : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"start_timestamp",b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"book_name",b"book_name",u"id",b"id",u"scope",b"scope",u"start_timestamp",b"start_timestamp"]) -> None: ...
global___EventID = EventID

class Event(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    PARENT_ID_FIELD_NUMBER: builtins.int
    END_TIMESTAMP_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    BODY_FIELD_NUMBER: builtins.int
    ATTACHED_MESSAGE_IDS_FIELD_NUMBER: builtins.int
    status: global___EventStatus.V = ...
    name: typing.Text = ...
    type: typing.Text = ...
    body: builtins.bytes = ...

    @property
    def id(self) -> global___EventID: ...

    @property
    def parent_id(self) -> global___EventID: ...

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

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

    def __init__(self,
        *,
        id : typing.Optional[global___EventID] = ...,
        parent_id : typing.Optional[global___EventID] = ...,
        end_timestamp : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        status : global___EventStatus.V = ...,
        name : typing.Text = ...,
        type : typing.Text = ...,
        body : builtins.bytes = ...,
        attached_message_ids : typing.Optional[typing.Iterable[global___MessageID]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"end_timestamp",b"end_timestamp",u"id",b"id",u"parent_id",b"parent_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"attached_message_ids",b"attached_message_ids",u"body",b"body",u"end_timestamp",b"end_timestamp",u"id",b"id",u"name",b"name",u"parent_id",b"parent_id",u"status",b"status",u"type",b"type"]) -> None: ...
global___Event = Event

class EventBatch(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PARENT_EVENT_ID_FIELD_NUMBER: builtins.int
    EVENTS_FIELD_NUMBER: builtins.int

    @property
    def parent_event_id(self) -> global___EventID: ...

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

    def __init__(self,
        *,
        parent_event_id : typing.Optional[global___EventID] = ...,
        events : typing.Optional[typing.Iterable[global___Event]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"parent_event_id",b"parent_event_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"events",b"events",u"parent_event_id",b"parent_event_id"]) -> None: ...
global___EventBatch = EventBatch
