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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _ComparisonEntryType:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType
class _ComparisonEntryTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ComparisonEntryType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    FIELD: _ComparisonEntryType.ValueType  # 0
    COLLECTION: _ComparisonEntryType.ValueType  # 1
class ComparisonEntryType(_ComparisonEntryType, metaclass=_ComparisonEntryTypeEnumTypeWrapper):
    pass

FIELD: ComparisonEntryType.ValueType  # 0
COLLECTION: ComparisonEntryType.ValueType  # 1
global___ComparisonEntryType = ComparisonEntryType


class _ComparisonEntryStatus:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType
class _ComparisonEntryStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ComparisonEntryStatus.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NA: _ComparisonEntryStatus.ValueType  # 0
    PASSED: _ComparisonEntryStatus.ValueType  # 1
    FAILED: _ComparisonEntryStatus.ValueType  # 2
class ComparisonEntryStatus(_ComparisonEntryStatus, metaclass=_ComparisonEntryStatusEnumTypeWrapper):
    pass

NA: ComparisonEntryStatus.ValueType  # 0
PASSED: ComparisonEntryStatus.ValueType  # 1
FAILED: ComparisonEntryStatus.ValueType  # 2
global___ComparisonEntryStatus = ComparisonEntryStatus


class ComparisonSettings(google.protobuf.message.Message):
    """--// Settings //--//"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    IGNORE_FIELDS_FIELD_NUMBER: builtins.int
    @property
    def ignore_fields(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
        """
        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.
        """
        pass
    def __init__(self,
        *,
        ignore_fields: typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["ignore_fields",b"ignore_fields"]) -> None: ...
global___ComparisonSettings = ComparisonSettings

class CompareFilterVsMessagesRequest(google.protobuf.message.Message):
    """--// Compare filter versus messages //--//

    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    FILTER_FIELD_NUMBER: builtins.int
    MESSAGES_FIELD_NUMBER: builtins.int
    SETTINGS_FIELD_NUMBER: builtins.int
    @property
    def filter(self) -> th2_grpc_common.common_pb2.MessageFilter: ...
    @property
    def messages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[th2_grpc_common.common_pb2.Message]: ...
    @property
    def settings(self) -> global___ComparisonSettings: ...
    def __init__(self,
        *,
        filter: typing.Optional[th2_grpc_common.common_pb2.MessageFilter] = ...,
        messages: typing.Optional[typing.Iterable[th2_grpc_common.common_pb2.Message]] = ...,
        settings: typing.Optional[global___ComparisonSettings] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["filter",b"filter","settings",b"settings"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["filter",b"filter","messages",b"messages","settings",b"settings"]) -> None: ...
global___CompareFilterVsMessagesRequest = CompareFilterVsMessagesRequest

class CompareFilterVsMessagesResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    COMPARISON_RESULTS_FIELD_NUMBER: builtins.int
    @property
    def comparison_results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CompareFilterVsMessageResult]: ...
    def __init__(self,
        *,
        comparison_results: typing.Optional[typing.Iterable[global___CompareFilterVsMessageResult]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison_results",b"comparison_results"]) -> None: ...
global___CompareFilterVsMessagesResponse = CompareFilterVsMessagesResponse

class CompareFilterVsMessageResult(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGE_ID_FIELD_NUMBER: builtins.int
    COMPARISON_RESULT_FIELD_NUMBER: builtins.int
    @property
    def message_id(self) -> th2_grpc_common.common_pb2.MessageID: ...
    @property
    def comparison_result(self) -> global___ComparisonEntry: ...
    def __init__(self,
        *,
        message_id: typing.Optional[th2_grpc_common.common_pb2.MessageID] = ...,
        comparison_result: typing.Optional[global___ComparisonEntry] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["comparison_result",b"comparison_result","message_id",b"message_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison_result",b"comparison_result","message_id",b"message_id"]) -> None: ...
global___CompareFilterVsMessageResult = CompareFilterVsMessageResult

class CompareMessageVsMessageRequest(google.protobuf.message.Message):
    """--// Compare message versus message //--//

    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    COMPARISON_TASKS_FIELD_NUMBER: builtins.int
    @property
    def comparison_tasks(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CompareMessageVsMessageTask]: ...
    def __init__(self,
        *,
        comparison_tasks: typing.Optional[typing.Iterable[global___CompareMessageVsMessageTask]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison_tasks",b"comparison_tasks"]) -> None: ...
global___CompareMessageVsMessageRequest = CompareMessageVsMessageRequest

class CompareMessageVsMessageResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    COMPARISON_RESULTS_FIELD_NUMBER: builtins.int
    @property
    def comparison_results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CompareMessageVsMessageResult]: ...
    def __init__(self,
        *,
        comparison_results: typing.Optional[typing.Iterable[global___CompareMessageVsMessageResult]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison_results",b"comparison_results"]) -> None: ...
global___CompareMessageVsMessageResponse = CompareMessageVsMessageResponse

class CompareMessageVsMessageTask(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    FIRST_FIELD_NUMBER: builtins.int
    SECOND_FIELD_NUMBER: builtins.int
    SETTINGS_FIELD_NUMBER: builtins.int
    @property
    def first(self) -> th2_grpc_common.common_pb2.Message: ...
    @property
    def second(self) -> th2_grpc_common.common_pb2.Message: ...
    @property
    def settings(self) -> global___ComparisonSettings: ...
    def __init__(self,
        *,
        first: typing.Optional[th2_grpc_common.common_pb2.Message] = ...,
        second: typing.Optional[th2_grpc_common.common_pb2.Message] = ...,
        settings: typing.Optional[global___ComparisonSettings] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["first",b"first","second",b"second","settings",b"settings"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["first",b"first","second",b"second","settings",b"settings"]) -> None: ...
global___CompareMessageVsMessageTask = CompareMessageVsMessageTask

class CompareMessageVsMessageResult(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    FIRST_MESSAGE_ID_FIELD_NUMBER: builtins.int
    SECOND_MESSAGE_ID_FIELD_NUMBER: builtins.int
    COMPARISON_RESULT_FIELD_NUMBER: builtins.int
    @property
    def first_message_id(self) -> th2_grpc_common.common_pb2.MessageID: ...
    @property
    def second_message_id(self) -> th2_grpc_common.common_pb2.MessageID: ...
    @property
    def comparison_result(self) -> global___ComparisonEntry: ...
    def __init__(self,
        *,
        first_message_id: typing.Optional[th2_grpc_common.common_pb2.MessageID] = ...,
        second_message_id: typing.Optional[th2_grpc_common.common_pb2.MessageID] = ...,
        comparison_result: typing.Optional[global___ComparisonEntry] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["comparison_result",b"comparison_result","first_message_id",b"first_message_id","second_message_id",b"second_message_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison_result",b"comparison_result","first_message_id",b"first_message_id","second_message_id",b"second_message_id"]) -> None: ...
global___CompareMessageVsMessageResult = CompareMessageVsMessageResult

class ComparisonEntry(google.protobuf.message.Message):
    """--// Common entry //--//

    """
    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___ComparisonEntry: ...
        def __init__(self,
            *,
            key: typing.Text = ...,
            value: typing.Optional[global___ComparisonEntry] = ...,
            ) -> 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: ...

    TYPE_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    FIRST_FIELD_NUMBER: builtins.int
    SECOND_FIELD_NUMBER: builtins.int
    OPERATION_FIELD_NUMBER: builtins.int
    IS_KEY_FIELD_NUMBER: builtins.int
    FIELDS_FIELD_NUMBER: builtins.int
    type: global___ComparisonEntryType.ValueType
    """The type field has default value for a root element and it should be skipped during analyse. It has real value for other fields."""

    status: global___ComparisonEntryStatus.ValueType
    """
    The status field has default value for a element with collection type and it should be skipped during analyse.
    It has real value for other fields. Fields with nested elements have aggregated value.
    """

    first: typing.Text
    """The first field has default value for a root element and it should be skipped during analyse. It has value of the first message of filter in other cases."""

    second: typing.Text
    """The second field has default value for a root element and it should be skipped during analyse. It has value of the second message in other cases."""

    operation: th2_grpc_common.common_pb2.FilterOperation.ValueType
    """
    The operation field has default value for a root element and it should be skipped during analyse.
    This value is taken from filter in case filter vs message comparison or it is EQUAL in case message vs message comparison.
    """

    is_key: builtins.bool
    """
    The is_key field has default value for a root element and it should be skipped during analyse.
    It is taken from filter in case filter versus message comparison otherwise it is false.
    """

    @property
    def fields(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ComparisonEntry]:
        """The fields contains mapping name to ComparisonEntry for nested fields."""
        pass
    def __init__(self,
        *,
        type: global___ComparisonEntryType.ValueType = ...,
        status: global___ComparisonEntryStatus.ValueType = ...,
        first: typing.Text = ...,
        second: typing.Text = ...,
        operation: th2_grpc_common.common_pb2.FilterOperation.ValueType = ...,
        is_key: builtins.bool = ...,
        fields: typing.Optional[typing.Mapping[typing.Text, global___ComparisonEntry]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["fields",b"fields","first",b"first","is_key",b"is_key","operation",b"operation","second",b"second","status",b"status","type",b"type"]) -> None: ...
global___ComparisonEntry = ComparisonEntry
