"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import arg_services.graph.v1.graph_pb2
import arg_services.nlp.v1.nlp_pb2
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import typing
import typing_extensions

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

class MappingAlgorithm(_MappingAlgorithm, metaclass=_MappingAlgorithmEnumTypeWrapper):
    pass
class _MappingAlgorithm:
    V = typing.NewType('V', builtins.int)
class _MappingAlgorithmEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MappingAlgorithm.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    MAPPING_ALGORITHM_UNSPECIFIED = MappingAlgorithm.V(0)
    MAPPING_ALGORITHM_ASTAR = MappingAlgorithm.V(1)
    MAPPING_ALGORITHM_ISOMORPHISM = MappingAlgorithm.V(2)

MAPPING_ALGORITHM_UNSPECIFIED = MappingAlgorithm.V(0)
MAPPING_ALGORITHM_ASTAR = MappingAlgorithm.V(1)
MAPPING_ALGORITHM_ISOMORPHISM = MappingAlgorithm.V(2)
global___MappingAlgorithm = MappingAlgorithm


class RetrieveRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class CasesEntry(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) -> arg_services.graph.v1.graph_pb2.Graph: ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Optional[arg_services.graph.v1.graph_pb2.Graph] = ...,
            ) -> 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: ...

    CASES_FIELD_NUMBER: builtins.int
    QUERY_GRAPH_FIELD_NUMBER: builtins.int
    QUERY_TEXT_FIELD_NUMBER: builtins.int
    NLP_CONFIG_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    MAC_PHASE_FIELD_NUMBER: builtins.int
    FAC_PHASE_FIELD_NUMBER: builtins.int
    MAPPING_ALGORITHM_FIELD_NUMBER: builtins.int
    USE_SCHEME_ONTOLOGY_FIELD_NUMBER: builtins.int
    ENFORCE_SCHEME_TYPES_FIELD_NUMBER: builtins.int
    @property
    def cases(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, arg_services.graph.v1.graph_pb2.Graph]: ...
    @property
    def query_graph(self) -> arg_services.graph.v1.graph_pb2.Graph: ...
    query_text: typing.Text = ...
    @property
    def nlp_config(self) -> arg_services.nlp.v1.nlp_pb2.NlpConfig: ...
    limit: builtins.int = ...
    mac_phase: builtins.bool = ...
    fac_phase: builtins.bool = ...
    mapping_algorithm: global___MappingAlgorithm.V = ...
    use_scheme_ontology: builtins.bool = ...
    enforce_scheme_types: builtins.bool = ...
    def __init__(self,
        *,
        cases : typing.Optional[typing.Mapping[typing.Text, arg_services.graph.v1.graph_pb2.Graph]] = ...,
        query_graph : typing.Optional[arg_services.graph.v1.graph_pb2.Graph] = ...,
        query_text : typing.Text = ...,
        nlp_config : typing.Optional[arg_services.nlp.v1.nlp_pb2.NlpConfig] = ...,
        limit : builtins.int = ...,
        mac_phase : builtins.bool = ...,
        fac_phase : builtins.bool = ...,
        mapping_algorithm : global___MappingAlgorithm.V = ...,
        use_scheme_ontology : builtins.bool = ...,
        enforce_scheme_types : builtins.bool = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"nlp_config",b"nlp_config",u"query",b"query",u"query_graph",b"query_graph",u"query_text",b"query_text"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"cases",b"cases",u"enforce_scheme_types",b"enforce_scheme_types",u"fac_phase",b"fac_phase",u"limit",b"limit",u"mac_phase",b"mac_phase",u"mapping_algorithm",b"mapping_algorithm",u"nlp_config",b"nlp_config",u"query",b"query",u"query_graph",b"query_graph",u"query_text",b"query_text",u"use_scheme_ontology",b"use_scheme_ontology"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"query",b"query"]) -> typing.Optional[typing_extensions.Literal["query_graph","query_text"]]: ...
global___RetrieveRequest = RetrieveRequest

class RetrieveResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RANKING_FIELD_NUMBER: builtins.int
    MAC_RANKING_FIELD_NUMBER: builtins.int
    FAC_RANKING_FIELD_NUMBER: builtins.int
    @property
    def ranking(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RetrievedCase]: ...
    @property
    def mac_ranking(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RetrievedCase]: ...
    @property
    def fac_ranking(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RetrievedMapping]: ...
    def __init__(self,
        *,
        ranking : typing.Optional[typing.Iterable[global___RetrievedCase]] = ...,
        mac_ranking : typing.Optional[typing.Iterable[global___RetrievedCase]] = ...,
        fac_ranking : typing.Optional[typing.Iterable[global___RetrievedMapping]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"fac_ranking",b"fac_ranking",u"mac_ranking",b"mac_ranking",u"ranking",b"ranking"]) -> None: ...
global___RetrieveResponse = RetrieveResponse

class RetrievedCase(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    SIMILARITY_FIELD_NUMBER: builtins.int
    id: typing.Text = ...
    similarity: builtins.float = ...
    def __init__(self,
        *,
        id : typing.Text = ...,
        similarity : builtins.float = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id",u"similarity",b"similarity"]) -> None: ...
global___RetrievedCase = RetrievedCase

class RetrievedMapping(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    CASE_FIELD_NUMBER: builtins.int
    NODE_MAPPINGS_FIELD_NUMBER: builtins.int
    @property
    def case(self) -> global___RetrievedCase: ...
    @property
    def node_mappings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Mapping]: ...
    def __init__(self,
        *,
        case : typing.Optional[global___RetrievedCase] = ...,
        node_mappings : typing.Optional[typing.Iterable[global___Mapping]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"case",b"case"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"case",b"case",u"node_mappings",b"node_mappings"]) -> None: ...
global___RetrievedMapping = RetrievedMapping

class Mapping(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    QUERY_ID_FIELD_NUMBER: builtins.int
    CASE_ID_FIELD_NUMBER: builtins.int
    SIMILARITY_FIELD_NUMBER: builtins.int
    query_id: typing.Text = ...
    case_id: typing.Text = ...
    similarity: builtins.float = ...
    def __init__(self,
        *,
        query_id : typing.Text = ...,
        case_id : typing.Text = ...,
        similarity : builtins.float = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"case_id",b"case_id",u"query_id",b"query_id",u"similarity",b"similarity"]) -> None: ...
global___Mapping = Mapping
