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

Copyright 2020-2024 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.
"""

from collections import abc as _abc
from google.protobuf import descriptor as _descriptor
from google.protobuf import duration_pb2 as _duration_pb2
from google.protobuf import message as _message
from google.protobuf import wrappers_pb2 as _wrappers_pb2
from google.protobuf.internal import containers as _containers
from th2_grpc_common import common_pb2 as _common_pb2
import builtins as _builtins
import sys
import typing as _typing

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

DESCRIPTOR: _descriptor.FileDescriptor

@_typing.final
class CheckpointRequest(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: _builtins.int
    PARENT_EVENT_ID_FIELD_NUMBER: _builtins.int
    description: _builtins.str
    @_builtins.property
    def parent_event_id(self) -> _common_pb2.EventID: ...
    def __init__(
        self,
        *,
        description: _builtins.str = ...,
        parent_event_id: _common_pb2.EventID | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["parent_event_id", b"parent_event_id"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "parent_event_id", b"parent_event_id"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CheckpointRequest: _TypeAlias = CheckpointRequest  # noqa: Y015

@_typing.final
class CheckpointResponse(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    CHECKPOINT_FIELD_NUMBER: _builtins.int
    STATUS_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def checkpoint(self) -> _common_pb2.Checkpoint: ...
    @_builtins.property
    def status(self) -> _common_pb2.RequestStatus: ...
    def __init__(
        self,
        *,
        checkpoint: _common_pb2.Checkpoint | None = ...,
        status: _common_pb2.RequestStatus | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["checkpoint", b"checkpoint", "status", b"status"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["checkpoint", b"checkpoint", "status", b"status"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CheckpointResponse: _TypeAlias = CheckpointResponse  # noqa: Y015

@_typing.final
class ChainID(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    ID_FIELD_NUMBER: _builtins.int
    id: _builtins.str
    def __init__(
        self,
        *,
        id: _builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ChainID: _TypeAlias = ChainID  # noqa: Y015

@_typing.final
class CheckRuleRequest(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    CONNECTIVITY_ID_FIELD_NUMBER: _builtins.int
    ROOT_FILTER_FIELD_NUMBER: _builtins.int
    CHECKPOINT_FIELD_NUMBER: _builtins.int
    MESSAGE_TIMEOUT_FIELD_NUMBER: _builtins.int
    TIMEOUT_FIELD_NUMBER: _builtins.int
    STORE_RESULT_FIELD_NUMBER: _builtins.int
    PARENT_EVENT_ID_FIELD_NUMBER: _builtins.int
    DESCRIPTION_FIELD_NUMBER: _builtins.int
    DIRECTION_FIELD_NUMBER: _builtins.int
    CHAIN_ID_FIELD_NUMBER: _builtins.int
    BOOK_NAME_FIELD_NUMBER: _builtins.int
    message_timeout: _builtins.int
    """Timeout to wait for messages after checkpoint. The message's timestamp will be used to compute the timeout"""
    timeout: _builtins.int
    """Timeout for rule execution. Uses the real time to limit the execution of the rule"""
    store_result: _builtins.bool
    """Store the result of the rule for later request by the client"""
    description: _builtins.str
    direction: _common_pb2.Direction.ValueType
    book_name: _builtins.str
    """If it's not set the check will be started from the specified checkpoint otherwise checkpoint will be ignored"""
    @_builtins.property
    def connectivity_id(self) -> _common_pb2.ConnectionID: ...
    @_builtins.property
    def root_filter(self) -> _common_pb2.RootMessageFilter: ...
    @_builtins.property
    def checkpoint(self) -> _common_pb2.Checkpoint:
        """Registered Checkpoint. If the chain_id is also set in the request the checkpoint will be ignored"""

    @_builtins.property
    def parent_event_id(self) -> _common_pb2.EventID: ...
    @_builtins.property
    def chain_id(self) -> Global___ChainID:
        """The chain id to continue checking."""

    def __init__(
        self,
        *,
        connectivity_id: _common_pb2.ConnectionID | None = ...,
        root_filter: _common_pb2.RootMessageFilter | None = ...,
        checkpoint: _common_pb2.Checkpoint | None = ...,
        message_timeout: _builtins.int = ...,
        timeout: _builtins.int = ...,
        store_result: _builtins.bool = ...,
        parent_event_id: _common_pb2.EventID | None = ...,
        description: _builtins.str = ...,
        direction: _common_pb2.Direction.ValueType = ...,
        chain_id: Global___ChainID | None = ...,
        book_name: _builtins.str = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "checkpoint", b"checkpoint", "connectivity_id", b"connectivity_id", "parent_event_id", b"parent_event_id", "root_filter", b"root_filter"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["book_name", b"book_name", "chain_id", b"chain_id", "checkpoint", b"checkpoint", "connectivity_id", b"connectivity_id", "description", b"description", "direction", b"direction", "message_timeout", b"message_timeout", "parent_event_id", b"parent_event_id", "root_filter", b"root_filter", "store_result", b"store_result", "timeout", b"timeout"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CheckRuleRequest: _TypeAlias = CheckRuleRequest  # noqa: Y015

@_typing.final
class CheckRuleResponse(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    STATUS_FIELD_NUMBER: _builtins.int
    CHAIN_ID_FIELD_NUMBER: _builtins.int
    RULE_ID_FIELD_NUMBER: _builtins.int
    rule_id: _builtins.int
    """Can be used for requesting response via 'waitForResult' method"""
    @_builtins.property
    def status(self) -> _common_pb2.RequestStatus: ...
    @_builtins.property
    def chain_id(self) -> Global___ChainID:
        """You can use it to unite the next rule to the chain with currently submitted one"""

    def __init__(
        self,
        *,
        status: _common_pb2.RequestStatus | None = ...,
        chain_id: Global___ChainID | None = ...,
        rule_id: _builtins.int = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "status", b"status"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "rule_id", b"rule_id", "status", b"status"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CheckRuleResponse: _TypeAlias = CheckRuleResponse  # noqa: Y015

@_typing.final
class CheckSequenceRuleRequest(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    PRE_FILTER_FIELD_NUMBER: _builtins.int
    ROOT_MESSAGE_FILTERS_FIELD_NUMBER: _builtins.int
    CHECKPOINT_FIELD_NUMBER: _builtins.int
    MESSAGE_TIMEOUT_FIELD_NUMBER: _builtins.int
    TIMEOUT_FIELD_NUMBER: _builtins.int
    STORE_RESULT_FIELD_NUMBER: _builtins.int
    CONNECTIVITY_ID_FIELD_NUMBER: _builtins.int
    PARENT_EVENT_ID_FIELD_NUMBER: _builtins.int
    CHECK_ORDER_FIELD_NUMBER: _builtins.int
    DESCRIPTION_FIELD_NUMBER: _builtins.int
    DIRECTION_FIELD_NUMBER: _builtins.int
    CHAIN_ID_FIELD_NUMBER: _builtins.int
    SILENCE_CHECK_FIELD_NUMBER: _builtins.int
    BOOK_NAME_FIELD_NUMBER: _builtins.int
    message_timeout: _builtins.int
    """Timeout to wait for messages after checkpoint. The message's timestamp will be used to compute the timeout"""
    timeout: _builtins.int
    """Timeout for rule execution. Uses the real time to limit the execution of the rule"""
    store_result: _builtins.bool
    """Store the result of the rule for later request by the client"""
    check_order: _builtins.bool
    description: _builtins.str
    direction: _common_pb2.Direction.ValueType
    book_name: _builtins.str
    @_builtins.property
    def pre_filter(self) -> Global___PreFilter: ...
    @_builtins.property
    def root_message_filters(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.RootMessageFilter]:
        """
        Either this field or message_filters must be set. If both are set the error response will be received from check1
        """

    @_builtins.property
    def checkpoint(self) -> _common_pb2.Checkpoint:
        """Registered Checkpoint. If the chain_id is also set in the request the checkpoint will be ignored"""

    @_builtins.property
    def connectivity_id(self) -> _common_pb2.ConnectionID: ...
    @_builtins.property
    def parent_event_id(self) -> _common_pb2.EventID: ...
    @_builtins.property
    def chain_id(self) -> Global___ChainID:
        """The chain id to continue checking."""

    @_builtins.property
    def silence_check(self) -> _wrappers_pb2.BoolValue:
        """If it's not set the check will be started from the specified checkpoint otherwise checkpoint will be ignored"""

    def __init__(
        self,
        *,
        pre_filter: Global___PreFilter | None = ...,
        root_message_filters: _abc.Iterable[_common_pb2.RootMessageFilter] | None = ...,
        checkpoint: _common_pb2.Checkpoint | None = ...,
        message_timeout: _builtins.int = ...,
        timeout: _builtins.int = ...,
        store_result: _builtins.bool = ...,
        connectivity_id: _common_pb2.ConnectionID | None = ...,
        parent_event_id: _common_pb2.EventID | None = ...,
        check_order: _builtins.bool = ...,
        description: _builtins.str = ...,
        direction: _common_pb2.Direction.ValueType = ...,
        chain_id: Global___ChainID | None = ...,
        silence_check: _wrappers_pb2.BoolValue | None = ...,
        book_name: _builtins.str = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "checkpoint", b"checkpoint", "connectivity_id", b"connectivity_id", "parent_event_id", b"parent_event_id", "pre_filter", b"pre_filter", "silence_check", b"silence_check"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["book_name", b"book_name", "chain_id", b"chain_id", "check_order", b"check_order", "checkpoint", b"checkpoint", "connectivity_id", b"connectivity_id", "description", b"description", "direction", b"direction", "message_timeout", b"message_timeout", "parent_event_id", b"parent_event_id", "pre_filter", b"pre_filter", "root_message_filters", b"root_message_filters", "silence_check", b"silence_check", "store_result", b"store_result", "timeout", b"timeout"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CheckSequenceRuleRequest: _TypeAlias = CheckSequenceRuleRequest  # noqa: Y015

@_typing.final
class CheckSequenceRuleResponse(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    STATUS_FIELD_NUMBER: _builtins.int
    CHAIN_ID_FIELD_NUMBER: _builtins.int
    RULE_ID_FIELD_NUMBER: _builtins.int
    rule_id: _builtins.int
    """Can be used for requesting response via 'waitForResult' method"""
    @_builtins.property
    def status(self) -> _common_pb2.RequestStatus: ...
    @_builtins.property
    def chain_id(self) -> Global___ChainID:
        """You can use it to unite the next rule to the chain with currently submitted one"""

    def __init__(
        self,
        *,
        status: _common_pb2.RequestStatus | None = ...,
        chain_id: Global___ChainID | None = ...,
        rule_id: _builtins.int = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "status", b"status"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "rule_id", b"rule_id", "status", b"status"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CheckSequenceRuleResponse: _TypeAlias = CheckSequenceRuleResponse  # noqa: Y015

@_typing.final
class PreFilter(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    @_typing.final
    class FieldsEntry(_message.Message):
        DESCRIPTOR: _descriptor.Descriptor

        KEY_FIELD_NUMBER: _builtins.int
        VALUE_FIELD_NUMBER: _builtins.int
        key: _builtins.str
        @_builtins.property
        def value(self) -> _common_pb2.ValueFilter: ...
        def __init__(
            self,
            *,
            key: _builtins.str = ...,
            value: _common_pb2.ValueFilter | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

    FIELDS_FIELD_NUMBER: _builtins.int
    METADATA_FILTER_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def fields(self) -> _containers.MessageMap[_builtins.str, _common_pb2.ValueFilter]: ...
    @_builtins.property
    def metadata_filter(self) -> _common_pb2.MetadataFilter: ...
    def __init__(
        self,
        *,
        fields: _abc.Mapping[_builtins.str, _common_pb2.ValueFilter] | None = ...,
        metadata_filter: _common_pb2.MetadataFilter | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["metadata_filter", b"metadata_filter"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["fields", b"fields", "metadata_filter", b"metadata_filter"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PreFilter: _TypeAlias = PreFilter  # noqa: Y015

@_typing.final
class NoMessageCheckRequest(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    PRE_FILTER_FIELD_NUMBER: _builtins.int
    MESSAGE_TIMEOUT_FIELD_NUMBER: _builtins.int
    TIMEOUT_FIELD_NUMBER: _builtins.int
    STORE_RESULT_FIELD_NUMBER: _builtins.int
    CHECKPOINT_FIELD_NUMBER: _builtins.int
    CHAIN_ID_FIELD_NUMBER: _builtins.int
    CONNECTIVITY_ID_FIELD_NUMBER: _builtins.int
    PARENT_EVENT_ID_FIELD_NUMBER: _builtins.int
    DESCRIPTION_FIELD_NUMBER: _builtins.int
    DIRECTION_FIELD_NUMBER: _builtins.int
    BOOK_NAME_FIELD_NUMBER: _builtins.int
    message_timeout: _builtins.int
    """Timeout to wait for messages after checkpoint. The message's timestamp will be used to compute the timeout"""
    timeout: _builtins.int
    """Timeout for rule execution. Uses the real time to limit the execution of the rule"""
    store_result: _builtins.bool
    """Store the result of the rule for later request by the client"""
    description: _builtins.str
    direction: _common_pb2.Direction.ValueType
    book_name: _builtins.str
    @_builtins.property
    def pre_filter(self) -> Global___PreFilter: ...
    @_builtins.property
    def checkpoint(self) -> _common_pb2.Checkpoint:
        """Registered Checkpoint. If the chain_id is also set in the request the checkpoint will be ignored"""

    @_builtins.property
    def chain_id(self) -> Global___ChainID:
        """You can use it to unite the next rule to the chain with currently submitted one"""

    @_builtins.property
    def connectivity_id(self) -> _common_pb2.ConnectionID: ...
    @_builtins.property
    def parent_event_id(self) -> _common_pb2.EventID: ...
    def __init__(
        self,
        *,
        pre_filter: Global___PreFilter | None = ...,
        message_timeout: _builtins.int = ...,
        timeout: _builtins.int = ...,
        store_result: _builtins.bool = ...,
        checkpoint: _common_pb2.Checkpoint | None = ...,
        chain_id: Global___ChainID | None = ...,
        connectivity_id: _common_pb2.ConnectionID | None = ...,
        parent_event_id: _common_pb2.EventID | None = ...,
        description: _builtins.str = ...,
        direction: _common_pb2.Direction.ValueType = ...,
        book_name: _builtins.str = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "checkpoint", b"checkpoint", "connectivity_id", b"connectivity_id", "parent_event_id", b"parent_event_id", "pre_filter", b"pre_filter"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["book_name", b"book_name", "chain_id", b"chain_id", "checkpoint", b"checkpoint", "connectivity_id", b"connectivity_id", "description", b"description", "direction", b"direction", "message_timeout", b"message_timeout", "parent_event_id", b"parent_event_id", "pre_filter", b"pre_filter", "store_result", b"store_result", "timeout", b"timeout"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___NoMessageCheckRequest: _TypeAlias = NoMessageCheckRequest  # noqa: Y015

@_typing.final
class NoMessageCheckResponse(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    STATUS_FIELD_NUMBER: _builtins.int
    CHAIN_ID_FIELD_NUMBER: _builtins.int
    RULE_ID_FIELD_NUMBER: _builtins.int
    rule_id: _builtins.int
    """Can be used for requesting response via 'waitForResult' method"""
    @_builtins.property
    def status(self) -> _common_pb2.RequestStatus: ...
    @_builtins.property
    def chain_id(self) -> Global___ChainID:
        """You can use it to unite the next rule to the chain with currently submitted one"""

    def __init__(
        self,
        *,
        status: _common_pb2.RequestStatus | None = ...,
        chain_id: Global___ChainID | None = ...,
        rule_id: _builtins.int = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "status", b"status"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "rule_id", b"rule_id", "status", b"status"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___NoMessageCheckResponse: _TypeAlias = NoMessageCheckResponse  # noqa: Y015

@_typing.final
class WaitForResultRequest(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    RULE_ID_FIELD_NUMBER: _builtins.int
    TIMEOUT_FIELD_NUMBER: _builtins.int
    rule_id: _builtins.int
    @_builtins.property
    def timeout(self) -> _duration_pb2.Duration:
        """Timeout for waiting for result"""

    def __init__(
        self,
        *,
        rule_id: _builtins.int = ...,
        timeout: _duration_pb2.Duration | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["timeout", b"timeout"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["rule_id", b"rule_id", "timeout", b"timeout"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___WaitForResultRequest: _TypeAlias = WaitForResultRequest  # noqa: Y015

@_typing.final
class WaitForResultResponse(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    STATUS_FIELD_NUMBER: _builtins.int
    RULE_RESULT_FIELD_NUMBER: _builtins.int
    rule_result: _common_pb2.EventStatus.ValueType
    @_builtins.property
    def status(self) -> _common_pb2.RequestStatus: ...
    def __init__(
        self,
        *,
        status: _common_pb2.RequestStatus | None = ...,
        rule_result: _common_pb2.EventStatus.ValueType = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["status", b"status"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["rule_result", b"rule_result", "status", b"status"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___WaitForResultResponse: _TypeAlias = WaitForResultResponse  # noqa: Y015

@_typing.final
class MultiRulesRequest(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    DEFAULT_PARENT_EVENT_ID_FIELD_NUMBER: _builtins.int
    DEFAULT_CHAIN_FIELD_NUMBER: _builtins.int
    RULES_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def default_parent_event_id(self) -> _common_pb2.EventID: ...
    @_builtins.property
    def default_chain(self) -> Global___ChainID: ...
    @_builtins.property
    def rules(self) -> _containers.RepeatedCompositeFieldContainer[Global___Rule]: ...
    def __init__(
        self,
        *,
        default_parent_event_id: _common_pb2.EventID | None = ...,
        default_chain: Global___ChainID | None = ...,
        rules: _abc.Iterable[Global___Rule] | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["default_chain", b"default_chain", "default_parent_event_id", b"default_parent_event_id"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["default_chain", b"default_chain", "default_parent_event_id", b"default_parent_event_id", "rules", b"rules"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___MultiRulesRequest: _TypeAlias = MultiRulesRequest  # noqa: Y015

@_typing.final
class MultiRulesResponse(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    RESPONSES_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def responses(self) -> _containers.RepeatedCompositeFieldContainer[Global___RuleResponse]: ...
    def __init__(
        self,
        *,
        responses: _abc.Iterable[Global___RuleResponse] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["responses", b"responses"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___MultiRulesResponse: _TypeAlias = MultiRulesResponse  # noqa: Y015

@_typing.final
class Rule(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    CHECKRULEREQUEST_FIELD_NUMBER: _builtins.int
    SEQUENCERULE_FIELD_NUMBER: _builtins.int
    NOMESSAGERULE_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def checkRuleRequest(self) -> Global___CheckRuleRequest: ...
    @_builtins.property
    def sequenceRule(self) -> Global___CheckSequenceRuleRequest: ...
    @_builtins.property
    def noMessageRule(self) -> Global___NoMessageCheckRequest: ...
    def __init__(
        self,
        *,
        checkRuleRequest: Global___CheckRuleRequest | None = ...,
        sequenceRule: Global___CheckSequenceRuleRequest | None = ...,
        noMessageRule: Global___NoMessageCheckRequest | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["checkRuleRequest", b"checkRuleRequest", "noMessageRule", b"noMessageRule", "one_rule", b"one_rule", "sequenceRule", b"sequenceRule"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["checkRuleRequest", b"checkRuleRequest", "noMessageRule", b"noMessageRule", "one_rule", b"one_rule", "sequenceRule", b"sequenceRule"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType_one_rule: _TypeAlias = _typing.Literal["checkRuleRequest", "sequenceRule", "noMessageRule"]  # noqa: Y015
    _WhichOneofArgType_one_rule: _TypeAlias = _typing.Literal["one_rule", b"one_rule"]  # noqa: Y015
    def WhichOneof(self, oneof_group: _WhichOneofArgType_one_rule) -> _WhichOneofReturnType_one_rule | None: ...

Global___Rule: _TypeAlias = Rule  # noqa: Y015

@_typing.final
class RuleResponse(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    STATUS_FIELD_NUMBER: _builtins.int
    CHAIN_ID_FIELD_NUMBER: _builtins.int
    RULE_ID_FIELD_NUMBER: _builtins.int
    rule_id: _builtins.int
    """Can be used for requesting response via 'waitForResult' method"""
    @_builtins.property
    def status(self) -> _common_pb2.RequestStatus: ...
    @_builtins.property
    def chain_id(self) -> Global___ChainID:
        """You can use it to unite the next rule to the chain with currently submitted one"""

    def __init__(
        self,
        *,
        status: _common_pb2.RequestStatus | None = ...,
        chain_id: Global___ChainID | None = ...,
        rule_id: _builtins.int = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "status", b"status"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["chain_id", b"chain_id", "rule_id", b"rule_id", "status", b"status"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___RuleResponse: _TypeAlias = RuleResponse  # noqa: Y015
