"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file

Copyright 2020-2023 Exactpro (Exactpro Systems Limited)

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 google.protobuf.wrappers_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 _Direction:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DirectionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Direction.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    FIRST: _Direction.ValueType  # 0
    """Incoming message for connectivity"""
    SECOND: _Direction.ValueType  # 1
    """Outgoing message for connectivity"""

class Direction(_Direction, metaclass=_DirectionEnumTypeWrapper): ...

FIRST: Direction.ValueType  # 0
"""Incoming message for connectivity"""
SECOND: Direction.ValueType  # 1
"""Outgoing message for connectivity"""
global___Direction = Direction

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

class NullValue(_NullValue, metaclass=_NullValueEnumTypeWrapper):
    """--// Message body structure //--//"""

NULL_VALUE: NullValue.ValueType  # 0
global___NullValue = NullValue

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

class _FailUnexpectedEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FailUnexpected.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NO: _FailUnexpected.ValueType  # 0
    """comparison won't fail in case of unexpected fields or messages"""
    FIELDS: _FailUnexpected.ValueType  # 1
    """comparison will fail in case of unexpected fields only"""
    FIELDS_AND_MESSAGES: _FailUnexpected.ValueType  # 2
    """comparison will fail in case of unexpected fields or messages"""

class FailUnexpected(_FailUnexpected, metaclass=_FailUnexpectedEnumTypeWrapper):
    """--// Settings //--//"""

NO: FailUnexpected.ValueType  # 0
"""comparison won't fail in case of unexpected fields or messages"""
FIELDS: FailUnexpected.ValueType  # 1
"""comparison will fail in case of unexpected fields only"""
FIELDS_AND_MESSAGES: FailUnexpected.ValueType  # 2
"""comparison will fail in case of unexpected fields or messages"""
global___FailUnexpected = FailUnexpected

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

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

class FilterOperation(_FilterOperation, metaclass=_FilterOperationEnumTypeWrapper):
    """--// Message filter //--//"""

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

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

class _EventStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_EventStatus.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SUCCESS: _EventStatus.ValueType  # 0
    FAILED: _EventStatus.ValueType  # 1

class EventStatus(_EventStatus, metaclass=_EventStatusEnumTypeWrapper):
    """--// Event //--//"""

SUCCESS: EventStatus.ValueType  # 0
FAILED: EventStatus.ValueType  # 1
global___EventStatus = EventStatus

@typing_extensions.final
class ConnectionID(google.protobuf.message.Message):
    """--// Metadata structures //--//"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSION_ALIAS_FIELD_NUMBER: builtins.int
    SESSION_GROUP_FIELD_NUMBER: builtins.int
    session_alias: builtins.str
    """Session identifier depends on protocol, target / sender"""
    session_group: builtins.str
    """Session group"""
    def __init__(
        self,
        *,
        session_alias: builtins.str = ...,
        session_group: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["session_alias", b"session_alias", "session_group", b"session_group"]) -> None: ...

global___ConnectionID = ConnectionID

@typing_extensions.final
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
    @property
    def connection_id(self) -> global___ConnectionID: ...
    direction: global___Direction.ValueType
    """Transport direction."""
    sequence: builtins.int
    """Unique sequence number in session"""
    @property
    def subsequence(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """List of nested sequences in addition to the main one"""
    book_name: builtins.str
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Message creation timestamp"""
    def __init__(
        self,
        *,
        connection_id: global___ConnectionID | None = ...,
        direction: global___Direction.ValueType = ...,
        sequence: builtins.int = ...,
        subsequence: collections.abc.Iterable[builtins.int] | None = ...,
        book_name: builtins.str = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["connection_id", b"connection_id", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["book_name", b"book_name", "connection_id", b"connection_id", "direction", b"direction", "sequence", b"sequence", "subsequence", b"subsequence", "timestamp", b"timestamp"]) -> None: ...

global___MessageID = MessageID

@typing_extensions.final
class EventBatchMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EXTERNAL_QUEUE_FIELD_NUMBER: builtins.int
    external_queue: builtins.str
    """External user queue can be used for routing by internal box logic."""
    def __init__(
        self,
        *,
        external_queue: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["external_queue", b"external_queue"]) -> None: ...

global___EventBatchMetadata = EventBatchMetadata

@typing_extensions.final
class MessageGroupBatchMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EXTERNAL_QUEUE_FIELD_NUMBER: builtins.int
    external_queue: builtins.str
    """External user queue can be used for routing by internal box logic."""
    def __init__(
        self,
        *,
        external_queue: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["external_queue", b"external_queue"]) -> None: ...

global___MessageGroupBatchMetadata = MessageGroupBatchMetadata

@typing_extensions.final
class MessageMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class PropertiesEntry(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: ...

    ID_FIELD_NUMBER: builtins.int
    MESSAGE_TYPE_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    PROTOCOL_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> global___MessageID:
        """Message id should be unique in session"""
    message_type: builtins.str
    """Message type by dictionary"""
    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Additional properties for the message"""
    protocol: builtins.str
    """Protocol to be used when encoding the message"""
    def __init__(
        self,
        *,
        id: global___MessageID | None = ...,
        message_type: builtins.str = ...,
        properties: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        protocol: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["id", b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["id", b"id", "message_type", b"message_type", "properties", b"properties", "protocol", b"protocol"]) -> None: ...

global___MessageMetadata = MessageMetadata

@typing_extensions.final
class RawMessageMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class PropertiesEntry(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: ...

    ID_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    PROTOCOL_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> global___MessageID:
        """Message id should be unique in session"""
    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Additional properties for the raw message"""
    protocol: builtins.str
    """Protocol to be used when decoding the message"""
    def __init__(
        self,
        *,
        id: global___MessageID | None = ...,
        properties: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        protocol: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["id", b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["id", b"id", "properties", b"properties", "protocol", b"protocol"]) -> None: ...

global___RawMessageMetadata = RawMessageMetadata

@typing_extensions.final
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.ValueType
    simple_value: builtins.str
    @property
    def message_value(self) -> global___Message: ...
    @property
    def list_value(self) -> global___ListValue: ...
    def __init__(
        self,
        *,
        null_value: global___NullValue.ValueType = ...,
        simple_value: builtins.str = ...,
        message_value: global___Message | None = ...,
        list_value: global___ListValue | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["kind", b"kind", "list_value", b"list_value", "message_value", b"message_value", "null_value", b"null_value", "simple_value", b"simple_value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["kind", b"kind", "list_value", b"list_value", "message_value", b"message_value", "null_value", b"null_value", "simple_value", b"simple_value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["kind", b"kind"]) -> typing_extensions.Literal["null_value", "simple_value", "message_value", "list_value"] | None: ...

global___Value = Value

@typing_extensions.final
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: collections.abc.Iterable[global___Value] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ...

global___ListValue = ListValue

@typing_extensions.final
class Message(google.protobuf.message.Message):
    """--// Message / Raw structures //--//"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.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_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "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:
        """It maybe used to store event related to message life cycle"""
    @property
    def metadata(self) -> global___MessageMetadata: ...
    @property
    def fields(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Value]: ...
    def __init__(
        self,
        *,
        parent_event_id: global___EventID | None = ...,
        metadata: global___MessageMetadata | None = ...,
        fields: collections.abc.Mapping[builtins.str, global___Value] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "parent_event_id", b"parent_event_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["fields", b"fields", "metadata", b"metadata", "parent_event_id", b"parent_event_id"]) -> None: ...

global___Message = Message

@typing_extensions.final
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
    @property
    def parent_event_id(self) -> global___EventID:
        """It maybe used to store event related to message life cycle"""
    @property
    def metadata(self) -> global___RawMessageMetadata: ...
    body: builtins.bytes
    def __init__(
        self,
        *,
        parent_event_id: global___EventID | None = ...,
        metadata: global___RawMessageMetadata | None = ...,
        body: builtins.bytes = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "parent_event_id", b"parent_event_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["body", b"body", "metadata", b"metadata", "parent_event_id", b"parent_event_id"]) -> None: ...

global___RawMessage = RawMessage

@typing_extensions.final
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: global___Message | None = ...,
        raw_message: global___RawMessage | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["kind", b"kind", "message", b"message", "raw_message", b"raw_message"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["kind", b"kind", "message", b"message", "raw_message", b"raw_message"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["kind", b"kind"]) -> typing_extensions.Literal["message", "raw_message"] | None: ...

global___AnyMessage = AnyMessage

@typing_extensions.final
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: collections.abc.Iterable[global___AnyMessage] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["messages", b"messages"]) -> None: ...

global___MessageGroup = MessageGroup

@typing_extensions.final
class MessageBatch(google.protobuf.message.Message):
    """--// Message batch //--//"""

    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_extensions.Literal["messages", b"messages"]) -> None: ...

global___MessageBatch = MessageBatch

@typing_extensions.final
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: collections.abc.Iterable[global___RawMessage] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["messages", b"messages"]) -> None: ...

global___RawMessageBatch = RawMessageBatch

@typing_extensions.final
class MessageGroupBatch(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    METADATA_FIELD_NUMBER: builtins.int
    GROUPS_FIELD_NUMBER: builtins.int
    @property
    def metadata(self) -> global___MessageGroupBatchMetadata: ...
    @property
    def groups(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageGroup]: ...
    def __init__(
        self,
        *,
        metadata: global___MessageGroupBatchMetadata | None = ...,
        groups: collections.abc.Iterable[global___MessageGroup] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["groups", b"groups", "metadata", b"metadata"]) -> None: ...

global___MessageGroupBatch = MessageGroupBatch

@typing_extensions.final
class RequestStatus(google.protobuf.message.Message):
    """--// RPC call response //--//"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    class _StatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[RequestStatus._Status.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        SUCCESS: RequestStatus._Status.ValueType  # 0
        ERROR: RequestStatus._Status.ValueType  # 1

    class Status(_Status, metaclass=_StatusEnumTypeWrapper): ...
    SUCCESS: RequestStatus.Status.ValueType  # 0
    ERROR: RequestStatus.Status.ValueType  # 1

    STATUS_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    status: global___RequestStatus.Status.ValueType
    message: builtins.str
    def __init__(
        self,
        *,
        status: global___RequestStatus.Status.ValueType = ...,
        message: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["message", b"message", "status", b"status"]) -> None: ...

global___RequestStatus = RequestStatus

@typing_extensions.final
class ComparisonSettings(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FAIL_UNEXPECTED_FIELD_NUMBER: builtins.int
    fail_unexpected: global___FailUnexpected.ValueType
    def __init__(
        self,
        *,
        fail_unexpected: global___FailUnexpected.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["fail_unexpected", b"fail_unexpected"]) -> None: ...

global___ComparisonSettings = ComparisonSettings

@typing_extensions.final
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
    CHECK_SIMPLE_COLLECTIONS_ORDER_FIELD_NUMBER: builtins.int
    @property
    def ignore_fields(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """
        These fields will not be considered during comparison. It concerns fields with simple or collection types.
        Comparison result will have the NA status for them.
        """
    check_repeating_group_order: builtins.bool
    """
    Enables order verification in repeating groups according to defined filters.
    """
    @property
    def time_precision(self) -> google.protobuf.duration_pb2.Duration:
        """
        Time precision format for comparing timestamps
        """
    decimal_precision: builtins.str
    """
    Decimal precision format for comparing numbers. E.g. 0.0001, 0.125, 125E-3 could be supported
    """
    @property
    def check_simple_collections_order(self) -> google.protobuf.wrappers_pb2.BoolValue:
        """
        Enables ordering verification for collections with simple types.
        """
    def __init__(
        self,
        *,
        ignore_fields: collections.abc.Iterable[builtins.str] | None = ...,
        check_repeating_group_order: builtins.bool = ...,
        time_precision: google.protobuf.duration_pb2.Duration | None = ...,
        decimal_precision: builtins.str = ...,
        check_simple_collections_order: google.protobuf.wrappers_pb2.BoolValue | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["check_simple_collections_order", b"check_simple_collections_order", "time_precision", b"time_precision"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["check_repeating_group_order", b"check_repeating_group_order", "check_simple_collections_order", b"check_simple_collections_order", "decimal_precision", b"decimal_precision", "ignore_fields", b"ignore_fields", "time_precision", b"time_precision"]) -> None: ...

global___RootComparisonSettings = RootComparisonSettings

@typing_extensions.final
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.ValueType
    key: builtins.bool
    simple_filter: builtins.str
    @property
    def message_filter(self) -> global___MessageFilter: ...
    @property
    def list_filter(self) -> global___ListValueFilter: ...
    @property
    def simple_list(self) -> global___SimpleList: ...
    null_value: global___NullValue.ValueType
    def __init__(
        self,
        *,
        operation: global___FilterOperation.ValueType = ...,
        key: builtins.bool = ...,
        simple_filter: builtins.str = ...,
        message_filter: global___MessageFilter | None = ...,
        list_filter: global___ListValueFilter | None = ...,
        simple_list: global___SimpleList | None = ...,
        null_value: global___NullValue.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["kind", b"kind", "list_filter", b"list_filter", "message_filter", b"message_filter", "null_value", b"null_value", "simple_filter", b"simple_filter", "simple_list", b"simple_list"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "kind", b"kind", "list_filter", b"list_filter", "message_filter", b"message_filter", "null_value", b"null_value", "operation", b"operation", "simple_filter", b"simple_filter", "simple_list", b"simple_list"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["kind", b"kind"]) -> typing_extensions.Literal["simple_filter", "message_filter", "list_filter", "simple_list", "null_value"] | None: ...

global___ValueFilter = ValueFilter

@typing_extensions.final
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: collections.abc.Iterable[global___ValueFilter] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ...

global___ListValueFilter = ListValueFilter

@typing_extensions.final
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[builtins.str]: ...
    def __init__(
        self,
        *,
        simple_values: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["simple_values", b"simple_values"]) -> None: ...

global___SimpleList = SimpleList

@typing_extensions.final
class MessageFilter(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.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___ValueFilter: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___ValueFilter | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    FIELDS_FIELD_NUMBER: builtins.int
    COMPARISON_SETTINGS_FIELD_NUMBER: builtins.int
    @property
    def fields(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ValueFilter]: ...
    @property
    def comparison_settings(self) -> global___ComparisonSettings: ...
    def __init__(
        self,
        *,
        fields: collections.abc.Mapping[builtins.str, global___ValueFilter] | None = ...,
        comparison_settings: global___ComparisonSettings | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["comparison_settings", b"comparison_settings"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison_settings", b"comparison_settings", "fields", b"fields"]) -> None: ...

global___MessageFilter = MessageFilter

@typing_extensions.final
class MetadataFilter(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    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.ValueType
        key: builtins.bool
        value: builtins.str
        @property
        def simple_list(self) -> global___SimpleList: ...
        def __init__(
            self,
            *,
            operation: global___FilterOperation.ValueType = ...,
            key: builtins.bool = ...,
            value: builtins.str = ...,
            simple_list: global___SimpleList | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["filter_value", b"filter_value", "simple_list", b"simple_list", "value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["filter_value", b"filter_value", "key", b"key", "operation", b"operation", "simple_list", b"simple_list", "value", b"value"]) -> None: ...
        def WhichOneof(self, oneof_group: typing_extensions.Literal["filter_value", b"filter_value"]) -> typing_extensions.Literal["value", "simple_list"] | None: ...

    @typing_extensions.final
    class PropertyFiltersEntry(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___MetadataFilter.SimpleFilter: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___MetadataFilter.SimpleFilter | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    PROPERTY_FILTERS_FIELD_NUMBER: builtins.int
    @property
    def property_filters(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___MetadataFilter.SimpleFilter]: ...
    def __init__(
        self,
        *,
        property_filters: collections.abc.Mapping[builtins.str, global___MetadataFilter.SimpleFilter] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["property_filters", b"property_filters"]) -> None: ...

global___MetadataFilter = MetadataFilter

@typing_extensions.final
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: builtins.str
    """
    The message type to match
    """
    @property
    def message_filter(self) -> global___MessageFilter:
        """
        The filter to match message's content
        """
    @property
    def metadata_filter(self) -> global___MetadataFilter:
        """
        The filter to match message's metadata content
        """
    @property
    def comparison_settings(self) -> global___RootComparisonSettings:
        """
        Settings that will be used for comparing both filters (MessageFilter and MetadataFilter)
        """
    @property
    def description(self) -> google.protobuf.wrappers_pb2.StringValue:
        """
        Description that may contain some information about the RootMessageFilter
        """
    def __init__(
        self,
        *,
        messageType: builtins.str = ...,
        message_filter: global___MessageFilter | None = ...,
        metadata_filter: global___MetadataFilter | None = ...,
        comparison_settings: global___RootComparisonSettings | None = ...,
        description: google.protobuf.wrappers_pb2.StringValue | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["comparison_settings", b"comparison_settings", "description", b"description", "message_filter", b"message_filter", "metadata_filter", b"metadata_filter"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison_settings", b"comparison_settings", "description", b"description", "messageType", b"messageType", "message_filter", b"message_filter", "metadata_filter", b"metadata_filter"]) -> None: ...

global___RootMessageFilter = RootMessageFilter

@typing_extensions.final
class Checkpoint(google.protobuf.message.Message):
    """--// Checkpoint //--//"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class BookNameToSessionAliasToDirectionCheckpointEntry(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___Checkpoint.SessionAliasToDirectionCheckpoint: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___Checkpoint.SessionAliasToDirectionCheckpoint | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class SessionAliasToDirectionCheckpoint(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        @typing_extensions.final
        class SessionAliasToDirectionCheckpointEntry(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___Checkpoint.DirectionCheckpoint: ...
            def __init__(
                self,
                *,
                key: builtins.str = ...,
                value: global___Checkpoint.DirectionCheckpoint | None = ...,
            ) -> None: ...
            def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "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[builtins.str, global___Checkpoint.DirectionCheckpoint]: ...
        def __init__(
            self,
            *,
            session_alias_to_direction_checkpoint: collections.abc.Mapping[builtins.str, global___Checkpoint.DirectionCheckpoint] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["session_alias_to_direction_checkpoint", b"session_alias_to_direction_checkpoint"]) -> None: ...

    @typing_extensions.final
    class DirectionCheckpoint(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        @typing_extensions.final
        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: global___Checkpoint.CheckpointData | None = ...,
            ) -> None: ...
            def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "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: collections.abc.Mapping[builtins.int, global___Checkpoint.CheckpointData] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["direction_to_checkpoint_data", b"direction_to_checkpoint_data"]) -> None: ...

    @typing_extensions.final
    class CheckpointData(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        SEQUENCE_FIELD_NUMBER: builtins.int
        TIMESTAMP_FIELD_NUMBER: builtins.int
        sequence: builtins.int
        """Message sequence number in session"""
        @property
        def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
            """Message creation timestamp"""
        def __init__(
            self,
            *,
            sequence: builtins.int = ...,
            timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["timestamp", b"timestamp"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["sequence", b"sequence", "timestamp", b"timestamp"]) -> None: ...

    ID_FIELD_NUMBER: builtins.int
    BOOK_NAME_TO_SESSION_ALIAS_TO_DIRECTION_CHECKPOINT_FIELD_NUMBER: builtins.int
    id: builtins.str
    @property
    def book_name_to_session_alias_to_direction_checkpoint(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Checkpoint.SessionAliasToDirectionCheckpoint]: ...
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        book_name_to_session_alias_to_direction_checkpoint: collections.abc.Mapping[builtins.str, global___Checkpoint.SessionAliasToDirectionCheckpoint] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["book_name_to_session_alias_to_direction_checkpoint", b"book_name_to_session_alias_to_direction_checkpoint", "id", b"id"]) -> None: ...

global___Checkpoint = Checkpoint

@typing_extensions.final
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: builtins.str
    """Unique event id in TH2 deploy"""
    book_name: builtins.str
    scope: builtins.str
    @property
    def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        book_name: builtins.str = ...,
        scope: builtins.str = ...,
        start_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["start_timestamp", b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["book_name", b"book_name", "id", b"id", "scope", b"scope", "start_timestamp", b"start_timestamp"]) -> None: ...

global___EventID = EventID

@typing_extensions.final
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
    @property
    def id(self) -> global___EventID: ...
    @property
    def parent_id(self) -> global___EventID:
        """Event id of parent event. It is null for root event"""
    @property
    def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    status: global___EventStatus.ValueType
    """Aggregated status of current and children events which sync written."""
    name: builtins.str
    type: builtins.str
    body: builtins.bytes
    @property
    def attached_message_ids(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageID]: ...
    def __init__(
        self,
        *,
        id: global___EventID | None = ...,
        parent_id: global___EventID | None = ...,
        end_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        status: global___EventStatus.ValueType = ...,
        name: builtins.str = ...,
        type: builtins.str = ...,
        body: builtins.bytes = ...,
        attached_message_ids: collections.abc.Iterable[global___MessageID] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["end_timestamp", b"end_timestamp", "id", b"id", "parent_id", b"parent_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["attached_message_ids", b"attached_message_ids", "body", b"body", "end_timestamp", b"end_timestamp", "id", b"id", "name", b"name", "parent_id", b"parent_id", "status", b"status", "type", b"type"]) -> None: ...

global___Event = Event

@typing_extensions.final
class EventBatch(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    METADATA_FIELD_NUMBER: builtins.int
    PARENT_EVENT_ID_FIELD_NUMBER: builtins.int
    EVENTS_FIELD_NUMBER: builtins.int
    @property
    def metadata(self) -> global___EventBatchMetadata: ...
    @property
    def parent_event_id(self) -> global___EventID: ...
    @property
    def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event]:
        """Events optional related to between themselves. No events outside this batch should refer to the events in this batch."""
    def __init__(
        self,
        *,
        metadata: global___EventBatchMetadata | None = ...,
        parent_event_id: global___EventID | None = ...,
        events: collections.abc.Iterable[global___Event] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "parent_event_id", b"parent_event_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["events", b"events", "metadata", b"metadata", "parent_event_id", b"parent_event_id"]) -> None: ...

global___EventBatch = EventBatch
