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

from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
try:
  from gen.proto import logs_pb2 as logs__pb2
except ImportError:
  from nbox.lmao_v4.proto import logs_pb2 as logs__pb2
try:
  from gen.proto import project_pb2 as project__pb2
except ImportError:
  from nbox.lmao_v4.proto import project_pb2 as project__pb2
try:
  from gen.proto import rules_pb2 as rules__pb2
except ImportError:
  from nbox.lmao_v4.proto import rules_pb2 as rules__pb2
try:
  from gen.proto import tracker_pb2 as tracker__pb2
except ImportError:
  from nbox.lmao_v4.proto import tracker_pb2 as tracker__pb2


class LMAOStub(object):
    """This is the service definition for the LMAO server, this server will talk to the MongoDB in the backend.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.InitProject = channel.unary_unary(
                '/lmao_pb.LMAO/InitProject',
                request_serializer=project__pb2.InitProjectRequest.SerializeToString,
                response_deserializer=project__pb2.InitProjectResponse.FromString,
                )
        self.GetProject = channel.unary_unary(
                '/lmao_pb.LMAO/GetProject',
                request_serializer=project__pb2.Project.SerializeToString,
                response_deserializer=project__pb2.Project.FromString,
                )
        self.UpdateProject = channel.unary_unary(
                '/lmao_pb.LMAO/UpdateProject',
                request_serializer=project__pb2.Project.SerializeToString,
                response_deserializer=project__pb2.Project.FromString,
                )
        self.DeleteProject = channel.unary_unary(
                '/lmao_pb.LMAO/DeleteProject',
                request_serializer=project__pb2.Project.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.ListProjects = channel.unary_unary(
                '/lmao_pb.LMAO/ListProjects',
                request_serializer=project__pb2.ListProjectsRequest.SerializeToString,
                response_deserializer=project__pb2.ListProjectsResponse.FromString,
                )
        self.GetRuleBuilder = channel.unary_unary(
                '/lmao_pb.LMAO/GetRuleBuilder',
                request_serializer=rules__pb2.RuleBuilder.SerializeToString,
                response_deserializer=rules__pb2.RuleBuilder.FromString,
                )
        self.CreateRule = channel.unary_unary(
                '/lmao_pb.LMAO/CreateRule',
                request_serializer=rules__pb2.InitRuleRequest.SerializeToString,
                response_deserializer=rules__pb2.Rule.FromString,
                )
        self.GetRule = channel.unary_unary(
                '/lmao_pb.LMAO/GetRule',
                request_serializer=rules__pb2.Rule.SerializeToString,
                response_deserializer=rules__pb2.Rule.FromString,
                )
        self.UpdateRule = channel.unary_unary(
                '/lmao_pb.LMAO/UpdateRule',
                request_serializer=rules__pb2.Rule.SerializeToString,
                response_deserializer=rules__pb2.Rule.FromString,
                )
        self.DeleteRule = channel.unary_unary(
                '/lmao_pb.LMAO/DeleteRule',
                request_serializer=rules__pb2.Rule.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.ListRules = channel.unary_unary(
                '/lmao_pb.LMAO/ListRules',
                request_serializer=rules__pb2.RulesList.SerializeToString,
                response_deserializer=rules__pb2.RulesList.FromString,
                )
        self.InitTracker = channel.unary_unary(
                '/lmao_pb.LMAO/InitTracker',
                request_serializer=tracker__pb2.InitTrackerRequest.SerializeToString,
                response_deserializer=tracker__pb2.Tracker.FromString,
                )
        self.GetTracker = channel.unary_unary(
                '/lmao_pb.LMAO/GetTracker',
                request_serializer=tracker__pb2.Tracker.SerializeToString,
                response_deserializer=tracker__pb2.Tracker.FromString,
                )
        self.UpdateTracker = channel.unary_unary(
                '/lmao_pb.LMAO/UpdateTracker',
                request_serializer=tracker__pb2.Tracker.SerializeToString,
                response_deserializer=tracker__pb2.Tracker.FromString,
                )
        self.DeleteTracker = channel.unary_unary(
                '/lmao_pb.LMAO/DeleteTracker',
                request_serializer=tracker__pb2.Tracker.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.ListTrackers = channel.unary_unary(
                '/lmao_pb.LMAO/ListTrackers',
                request_serializer=tracker__pb2.ListTrackersRequest.SerializeToString,
                response_deserializer=tracker__pb2.ListTrackersResponse.FromString,
                )
        self.GetTrackerTable = channel.unary_unary(
                '/lmao_pb.LMAO/GetTrackerTable',
                request_serializer=logs__pb2.GetTrackerTableRequest.SerializeToString,
                response_deserializer=logs__pb2.TrackerTable.FromString,
                )
        self.PutTrackerLog = channel.unary_unary(
                '/lmao_pb.LMAO/PutTrackerLog',
                request_serializer=logs__pb2.TrackerLog.SerializeToString,
                response_deserializer=logs__pb2.TrackerLogId.FromString,
                )
        self.GetTrackerLogs = channel.unary_unary(
                '/lmao_pb.LMAO/GetTrackerLogs',
                request_serializer=logs__pb2.TrackerLogRequest.SerializeToString,
                response_deserializer=logs__pb2.TrackerLogResponse.FromString,
                )
        self.CreateDataset = channel.unary_unary(
                '/lmao_pb.LMAO/CreateDataset',
                request_serializer=logs__pb2.TrackerDatasetRequest.SerializeToString,
                response_deserializer=logs__pb2.TrackerDataset.FromString,
                )
        self.CreateDatasetStatus = channel.unary_unary(
                '/lmao_pb.LMAO/CreateDatasetStatus',
                request_serializer=logs__pb2.TrackerDataset.SerializeToString,
                response_deserializer=logs__pb2.TrackerDataset.FromString,
                )


class LMAOServicer(object):
    """This is the service definition for the LMAO server, this server will talk to the MongoDB in the backend.
    """

    def InitProject(self, request, context):
        """Project level information -> Full CRUDL on project 
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetProject(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateProject(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteProject(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListProjects(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRuleBuilder(self, request, context):
        """Rules based workflow -> Full CRUDL for rules 
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateRule(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRule(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateRule(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteRule(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListRules(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InitTracker(self, request, context):
        """Generic Tracking -> Full CRUDL on trackers 
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTracker(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateTracker(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteTracker(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListTrackers(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTrackerTable(self, request, context):
        """things for logs
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PutTrackerLog(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTrackerLogs(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateDataset(self, request, context):
        """
        This is the new service that we want to add 

        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateDatasetStatus(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_LMAOServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'InitProject': grpc.unary_unary_rpc_method_handler(
                    servicer.InitProject,
                    request_deserializer=project__pb2.InitProjectRequest.FromString,
                    response_serializer=project__pb2.InitProjectResponse.SerializeToString,
            ),
            'GetProject': grpc.unary_unary_rpc_method_handler(
                    servicer.GetProject,
                    request_deserializer=project__pb2.Project.FromString,
                    response_serializer=project__pb2.Project.SerializeToString,
            ),
            'UpdateProject': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateProject,
                    request_deserializer=project__pb2.Project.FromString,
                    response_serializer=project__pb2.Project.SerializeToString,
            ),
            'DeleteProject': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteProject,
                    request_deserializer=project__pb2.Project.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'ListProjects': grpc.unary_unary_rpc_method_handler(
                    servicer.ListProjects,
                    request_deserializer=project__pb2.ListProjectsRequest.FromString,
                    response_serializer=project__pb2.ListProjectsResponse.SerializeToString,
            ),
            'GetRuleBuilder': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRuleBuilder,
                    request_deserializer=rules__pb2.RuleBuilder.FromString,
                    response_serializer=rules__pb2.RuleBuilder.SerializeToString,
            ),
            'CreateRule': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateRule,
                    request_deserializer=rules__pb2.InitRuleRequest.FromString,
                    response_serializer=rules__pb2.Rule.SerializeToString,
            ),
            'GetRule': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRule,
                    request_deserializer=rules__pb2.Rule.FromString,
                    response_serializer=rules__pb2.Rule.SerializeToString,
            ),
            'UpdateRule': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateRule,
                    request_deserializer=rules__pb2.Rule.FromString,
                    response_serializer=rules__pb2.Rule.SerializeToString,
            ),
            'DeleteRule': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteRule,
                    request_deserializer=rules__pb2.Rule.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'ListRules': grpc.unary_unary_rpc_method_handler(
                    servicer.ListRules,
                    request_deserializer=rules__pb2.RulesList.FromString,
                    response_serializer=rules__pb2.RulesList.SerializeToString,
            ),
            'InitTracker': grpc.unary_unary_rpc_method_handler(
                    servicer.InitTracker,
                    request_deserializer=tracker__pb2.InitTrackerRequest.FromString,
                    response_serializer=tracker__pb2.Tracker.SerializeToString,
            ),
            'GetTracker': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTracker,
                    request_deserializer=tracker__pb2.Tracker.FromString,
                    response_serializer=tracker__pb2.Tracker.SerializeToString,
            ),
            'UpdateTracker': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateTracker,
                    request_deserializer=tracker__pb2.Tracker.FromString,
                    response_serializer=tracker__pb2.Tracker.SerializeToString,
            ),
            'DeleteTracker': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteTracker,
                    request_deserializer=tracker__pb2.Tracker.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'ListTrackers': grpc.unary_unary_rpc_method_handler(
                    servicer.ListTrackers,
                    request_deserializer=tracker__pb2.ListTrackersRequest.FromString,
                    response_serializer=tracker__pb2.ListTrackersResponse.SerializeToString,
            ),
            'GetTrackerTable': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTrackerTable,
                    request_deserializer=logs__pb2.GetTrackerTableRequest.FromString,
                    response_serializer=logs__pb2.TrackerTable.SerializeToString,
            ),
            'PutTrackerLog': grpc.unary_unary_rpc_method_handler(
                    servicer.PutTrackerLog,
                    request_deserializer=logs__pb2.TrackerLog.FromString,
                    response_serializer=logs__pb2.TrackerLogId.SerializeToString,
            ),
            'GetTrackerLogs': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTrackerLogs,
                    request_deserializer=logs__pb2.TrackerLogRequest.FromString,
                    response_serializer=logs__pb2.TrackerLogResponse.SerializeToString,
            ),
            'CreateDataset': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateDataset,
                    request_deserializer=logs__pb2.TrackerDatasetRequest.FromString,
                    response_serializer=logs__pb2.TrackerDataset.SerializeToString,
            ),
            'CreateDatasetStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateDatasetStatus,
                    request_deserializer=logs__pb2.TrackerDataset.FromString,
                    response_serializer=logs__pb2.TrackerDataset.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'lmao_pb.LMAO', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class LMAO(object):
    """This is the service definition for the LMAO server, this server will talk to the MongoDB in the backend.
    """

    @staticmethod
    def InitProject(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, '/lmao_pb.LMAO/InitProject',
            project__pb2.InitProjectRequest.SerializeToString,
            project__pb2.InitProjectResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetProject(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, '/lmao_pb.LMAO/GetProject',
            project__pb2.Project.SerializeToString,
            project__pb2.Project.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateProject(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, '/lmao_pb.LMAO/UpdateProject',
            project__pb2.Project.SerializeToString,
            project__pb2.Project.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteProject(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, '/lmao_pb.LMAO/DeleteProject',
            project__pb2.Project.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListProjects(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, '/lmao_pb.LMAO/ListProjects',
            project__pb2.ListProjectsRequest.SerializeToString,
            project__pb2.ListProjectsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetRuleBuilder(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, '/lmao_pb.LMAO/GetRuleBuilder',
            rules__pb2.RuleBuilder.SerializeToString,
            rules__pb2.RuleBuilder.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateRule(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, '/lmao_pb.LMAO/CreateRule',
            rules__pb2.InitRuleRequest.SerializeToString,
            rules__pb2.Rule.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetRule(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, '/lmao_pb.LMAO/GetRule',
            rules__pb2.Rule.SerializeToString,
            rules__pb2.Rule.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateRule(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, '/lmao_pb.LMAO/UpdateRule',
            rules__pb2.Rule.SerializeToString,
            rules__pb2.Rule.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteRule(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, '/lmao_pb.LMAO/DeleteRule',
            rules__pb2.Rule.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListRules(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, '/lmao_pb.LMAO/ListRules',
            rules__pb2.RulesList.SerializeToString,
            rules__pb2.RulesList.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def InitTracker(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, '/lmao_pb.LMAO/InitTracker',
            tracker__pb2.InitTrackerRequest.SerializeToString,
            tracker__pb2.Tracker.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTracker(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, '/lmao_pb.LMAO/GetTracker',
            tracker__pb2.Tracker.SerializeToString,
            tracker__pb2.Tracker.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateTracker(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, '/lmao_pb.LMAO/UpdateTracker',
            tracker__pb2.Tracker.SerializeToString,
            tracker__pb2.Tracker.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteTracker(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, '/lmao_pb.LMAO/DeleteTracker',
            tracker__pb2.Tracker.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListTrackers(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, '/lmao_pb.LMAO/ListTrackers',
            tracker__pb2.ListTrackersRequest.SerializeToString,
            tracker__pb2.ListTrackersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTrackerTable(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, '/lmao_pb.LMAO/GetTrackerTable',
            logs__pb2.GetTrackerTableRequest.SerializeToString,
            logs__pb2.TrackerTable.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PutTrackerLog(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, '/lmao_pb.LMAO/PutTrackerLog',
            logs__pb2.TrackerLog.SerializeToString,
            logs__pb2.TrackerLogId.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTrackerLogs(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, '/lmao_pb.LMAO/GetTrackerLogs',
            logs__pb2.TrackerLogRequest.SerializeToString,
            logs__pb2.TrackerLogResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateDataset(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, '/lmao_pb.LMAO/CreateDataset',
            logs__pb2.TrackerDatasetRequest.SerializeToString,
            logs__pb2.TrackerDataset.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateDatasetStatus(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, '/lmao_pb.LMAO/CreateDatasetStatus',
            logs__pb2.TrackerDataset.SerializeToString,
            logs__pb2.TrackerDataset.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
