# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""

import grpc

from tracertm.v1 import tracertm_pb2 as tracertm_dot_v1_dot_tracertm__pb2

GRPC_GENERATED_VERSION = "1.76.0"
GRPC_VERSION = grpc.__version__
_version_not_supported = False

try:
    from grpc._utilities import first_version_is_lower

    _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
    _version_not_supported = True

if _version_not_supported:
    raise RuntimeError(
        f"The grpc package installed is at version {GRPC_VERSION},"
        " but the generated code in tracertm/v1/tracertm_pb2_grpc.py depends on"
        f" grpcio>={GRPC_GENERATED_VERSION}."
        f" Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}"
        f" or downgrade your generated code using grpcio-tools<={GRPC_VERSION}."
    )


class GraphServiceStub(object):
    """============================================================================
    GraphService - Provided by Go, Consumed by Python.
    ============================================================================

    GraphService provides graph analysis and traversal operations
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.AnalyzeImpact = channel.unary_unary(
            "/tracertm.v1.GraphService/AnalyzeImpact",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeImpactRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeImpactResponse.FromString,
            _registered_method=True,
        )
        self.FindCycles = channel.unary_unary(
            "/tracertm.v1.GraphService/FindCycles",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.FindCyclesRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.FindCyclesResponse.FromString,
            _registered_method=True,
        )
        self.CalculatePath = channel.unary_unary(
            "/tracertm.v1.GraphService/CalculatePath",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.CalculatePathRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.CalculatePathResponse.FromString,
            _registered_method=True,
        )
        self.StreamGraphUpdates = channel.unary_stream(
            "/tracertm.v1.GraphService/StreamGraphUpdates",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.StreamGraphUpdatesRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.StreamGraphUpdatesResponse.FromString,
            _registered_method=True,
        )


class GraphServiceServicer(object):
    """============================================================================
    GraphService - Provided by Go, Consumed by Python.
    ============================================================================

    GraphService provides graph analysis and traversal operations
    """

    def AnalyzeImpact(self, request, context):
        """AnalyzeImpact performs impact analysis for a given item."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def FindCycles(self, request, context):
        """FindCycles detects circular dependencies in the graph."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def CalculatePath(self, request, context):
        """CalculatePath finds the shortest path between two items."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def StreamGraphUpdates(self, request, context):
        """StreamGraphUpdates streams real-time graph changes."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")


def add_GraphServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
        "AnalyzeImpact": grpc.unary_unary_rpc_method_handler(
            servicer.AnalyzeImpact,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeImpactRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeImpactResponse.SerializeToString,
        ),
        "FindCycles": grpc.unary_unary_rpc_method_handler(
            servicer.FindCycles,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.FindCyclesRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.FindCyclesResponse.SerializeToString,
        ),
        "CalculatePath": grpc.unary_unary_rpc_method_handler(
            servicer.CalculatePath,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.CalculatePathRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.CalculatePathResponse.SerializeToString,
        ),
        "StreamGraphUpdates": grpc.unary_stream_rpc_method_handler(
            servicer.StreamGraphUpdates,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.StreamGraphUpdatesRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.StreamGraphUpdatesResponse.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler("tracertm.v1.GraphService", rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers("tracertm.v1.GraphService", rpc_method_handlers)


# This class is part of an EXPERIMENTAL API.


class GraphService(object):
    """============================================================================
    GraphService - Provided by Go, Consumed by Python.
    ============================================================================

    GraphService provides graph analysis and traversal operations
    """

    @staticmethod
    def AnalyzeImpact(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/tracertm.v1.GraphService/AnalyzeImpact",
            tracertm_dot_v1_dot_tracertm__pb2.AnalyzeImpactRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.AnalyzeImpactResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )

    @staticmethod
    def FindCycles(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/tracertm.v1.GraphService/FindCycles",
            tracertm_dot_v1_dot_tracertm__pb2.FindCyclesRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.FindCyclesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )

    @staticmethod
    def CalculatePath(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/tracertm.v1.GraphService/CalculatePath",
            tracertm_dot_v1_dot_tracertm__pb2.CalculatePathRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.CalculatePathResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )

    @staticmethod
    def StreamGraphUpdates(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_stream(
            request,
            target,
            "/tracertm.v1.GraphService/StreamGraphUpdates",
            tracertm_dot_v1_dot_tracertm__pb2.StreamGraphUpdatesRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.StreamGraphUpdatesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )


class AIServiceStub(object):
    """============================================================================
    AIService - Provided by Python, Consumed by Go.
    ============================================================================

    AIService provides AI-powered analysis and suggestions
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.AnalyzeRequirement = channel.unary_unary(
            "/tracertm.v1.AIService/AnalyzeRequirement",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeRequirementRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeRequirementResponse.FromString,
            _registered_method=True,
        )
        self.GenerateSuggestions = channel.unary_stream(
            "/tracertm.v1.AIService/GenerateSuggestions",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.GenerateSuggestionsRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.GenerateSuggestionsResponse.FromString,
            _registered_method=True,
        )
        self.DetectEquivalences = channel.unary_unary(
            "/tracertm.v1.AIService/DetectEquivalences",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.DetectEquivalencesRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.DetectEquivalencesResponse.FromString,
            _registered_method=True,
        )
        self.ExtractEntities = channel.unary_unary(
            "/tracertm.v1.AIService/ExtractEntities",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.ExtractEntitiesRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.ExtractEntitiesResponse.FromString,
            _registered_method=True,
        )


class AIServiceServicer(object):
    """============================================================================
    AIService - Provided by Python, Consumed by Go.
    ============================================================================

    AIService provides AI-powered analysis and suggestions
    """

    def AnalyzeRequirement(self, request, context):
        """AnalyzeRequirement performs NLP analysis on a requirement."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GenerateSuggestions(self, request, context):
        """GenerateSuggestions streams AI-generated suggestions."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def DetectEquivalences(self, request, context):
        """DetectEquivalences finds semantically equivalent items."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def ExtractEntities(self, request, context):
        """ExtractEntities extracts named entities from text."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")


def add_AIServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
        "AnalyzeRequirement": grpc.unary_unary_rpc_method_handler(
            servicer.AnalyzeRequirement,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeRequirementRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeRequirementResponse.SerializeToString,
        ),
        "GenerateSuggestions": grpc.unary_stream_rpc_method_handler(
            servicer.GenerateSuggestions,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.GenerateSuggestionsRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.GenerateSuggestionsResponse.SerializeToString,
        ),
        "DetectEquivalences": grpc.unary_unary_rpc_method_handler(
            servicer.DetectEquivalences,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.DetectEquivalencesRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.DetectEquivalencesResponse.SerializeToString,
        ),
        "ExtractEntities": grpc.unary_unary_rpc_method_handler(
            servicer.ExtractEntities,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.ExtractEntitiesRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.ExtractEntitiesResponse.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler("tracertm.v1.AIService", rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers("tracertm.v1.AIService", rpc_method_handlers)


# This class is part of an EXPERIMENTAL API.


class AIService(object):
    """============================================================================
    AIService - Provided by Python, Consumed by Go.
    ============================================================================

    AIService provides AI-powered analysis and suggestions
    """

    @staticmethod
    def AnalyzeRequirement(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/tracertm.v1.AIService/AnalyzeRequirement",
            tracertm_dot_v1_dot_tracertm__pb2.AnalyzeRequirementRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.AnalyzeRequirementResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )

    @staticmethod
    def GenerateSuggestions(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_stream(
            request,
            target,
            "/tracertm.v1.AIService/GenerateSuggestions",
            tracertm_dot_v1_dot_tracertm__pb2.GenerateSuggestionsRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.GenerateSuggestionsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )

    @staticmethod
    def DetectEquivalences(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/tracertm.v1.AIService/DetectEquivalences",
            tracertm_dot_v1_dot_tracertm__pb2.DetectEquivalencesRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.DetectEquivalencesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )

    @staticmethod
    def ExtractEntities(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/tracertm.v1.AIService/ExtractEntities",
            tracertm_dot_v1_dot_tracertm__pb2.ExtractEntitiesRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.ExtractEntitiesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )


class SpecAnalyticsServiceStub(object):
    """============================================================================
    SpecAnalyticsService - Provided by Python, Consumed by Go.
    ============================================================================

    SpecAnalyticsService provides requirement/spec analytics from the Python backend
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.AnalyzeSpec = channel.unary_unary(
            "/tracertm.v1.SpecAnalyticsService/AnalyzeSpec",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeSpecRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeSpecResponse.FromString,
            _registered_method=True,
        )
        self.BatchAnalyzeSpecs = channel.unary_unary(
            "/tracertm.v1.SpecAnalyticsService/BatchAnalyzeSpecs",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.BatchAnalyzeSpecsRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.BatchAnalyzeSpecsResponse.FromString,
            _registered_method=True,
        )
        self.ValidateISO29148 = channel.unary_unary(
            "/tracertm.v1.SpecAnalyticsService/ValidateISO29148",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.ValidateISO29148Request.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.ValidateISO29148Response.FromString,
            _registered_method=True,
        )
        self.GetEARSPatterns = channel.unary_unary(
            "/tracertm.v1.SpecAnalyticsService/GetEARSPatterns",
            request_serializer=tracertm_dot_v1_dot_tracertm__pb2.GetEARSPatternsRequest.SerializeToString,
            response_deserializer=tracertm_dot_v1_dot_tracertm__pb2.GetEARSPatternsResponse.FromString,
            _registered_method=True,
        )


class SpecAnalyticsServiceServicer(object):
    """============================================================================
    SpecAnalyticsService - Provided by Python, Consumed by Go.
    ============================================================================

    SpecAnalyticsService provides requirement/spec analytics from the Python backend
    """

    def AnalyzeSpec(self, request, context):
        """AnalyzeSpec performs a single spec analysis."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def BatchAnalyzeSpecs(self, request, context):
        """BatchAnalyzeSpecs analyzes multiple specs in one call."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def ValidateISO29148(self, request, context):
        """ValidateISO29148 checks ISO 29148 compliance."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetEARSPatterns(self, request, context):
        """GetEARSPatterns extracts EARS patterns."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")


def add_SpecAnalyticsServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
        "AnalyzeSpec": grpc.unary_unary_rpc_method_handler(
            servicer.AnalyzeSpec,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeSpecRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.AnalyzeSpecResponse.SerializeToString,
        ),
        "BatchAnalyzeSpecs": grpc.unary_unary_rpc_method_handler(
            servicer.BatchAnalyzeSpecs,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.BatchAnalyzeSpecsRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.BatchAnalyzeSpecsResponse.SerializeToString,
        ),
        "ValidateISO29148": grpc.unary_unary_rpc_method_handler(
            servicer.ValidateISO29148,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.ValidateISO29148Request.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.ValidateISO29148Response.SerializeToString,
        ),
        "GetEARSPatterns": grpc.unary_unary_rpc_method_handler(
            servicer.GetEARSPatterns,
            request_deserializer=tracertm_dot_v1_dot_tracertm__pb2.GetEARSPatternsRequest.FromString,
            response_serializer=tracertm_dot_v1_dot_tracertm__pb2.GetEARSPatternsResponse.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler("tracertm.v1.SpecAnalyticsService", rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers("tracertm.v1.SpecAnalyticsService", rpc_method_handlers)


# This class is part of an EXPERIMENTAL API.


class SpecAnalyticsService(object):
    """============================================================================
    SpecAnalyticsService - Provided by Python, Consumed by Go.
    ============================================================================

    SpecAnalyticsService provides requirement/spec analytics from the Python backend
    """

    @staticmethod
    def AnalyzeSpec(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/tracertm.v1.SpecAnalyticsService/AnalyzeSpec",
            tracertm_dot_v1_dot_tracertm__pb2.AnalyzeSpecRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.AnalyzeSpecResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )

    @staticmethod
    def BatchAnalyzeSpecs(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/tracertm.v1.SpecAnalyticsService/BatchAnalyzeSpecs",
            tracertm_dot_v1_dot_tracertm__pb2.BatchAnalyzeSpecsRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.BatchAnalyzeSpecsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )

    @staticmethod
    def ValidateISO29148(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/tracertm.v1.SpecAnalyticsService/ValidateISO29148",
            tracertm_dot_v1_dot_tracertm__pb2.ValidateISO29148Request.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.ValidateISO29148Response.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )

    @staticmethod
    def GetEARSPatterns(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/tracertm.v1.SpecAnalyticsService/GetEARSPatterns",
            tracertm_dot_v1_dot_tracertm__pb2.GetEARSPatternsRequest.SerializeToString,
            tracertm_dot_v1_dot_tracertm__pb2.GetEARSPatternsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True,
        )
