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

import middleware_pb2 as middleware__pb2


class MiddlewareStub(object):
    """This extends the Fred client for more convenient functions.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.CreateKeygroup = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/CreateKeygroup',
                request_serializer=middleware__pb2.CreateKeygroupRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.DeleteKeygroup = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/DeleteKeygroup',
                request_serializer=middleware__pb2.DeleteKeygroupRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.Read = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Read',
                request_serializer=middleware__pb2.ReadRequest.SerializeToString,
                response_deserializer=middleware__pb2.ReadResponse.FromString,
                )
        self.Scan = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Scan',
                request_serializer=middleware__pb2.ScanRequest.SerializeToString,
                response_deserializer=middleware__pb2.ScanResponse.FromString,
                )
        self.Update = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Update',
                request_serializer=middleware__pb2.UpdateRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.Delete = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Delete',
                request_serializer=middleware__pb2.DeleteRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.Append = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Append',
                request_serializer=middleware__pb2.AppendRequest.SerializeToString,
                response_deserializer=middleware__pb2.AppendResponse.FromString,
                )
        self.Notify = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Notify',
                request_serializer=middleware__pb2.NotifyRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.ChooseReplica = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/ChooseReplica',
                request_serializer=middleware__pb2.ChooseReplicaRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.AddReplica = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/AddReplica',
                request_serializer=middleware__pb2.AddReplicaRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.GetKeygroupInfo = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/GetKeygroupInfo',
                request_serializer=middleware__pb2.GetKeygroupInfoRequest.SerializeToString,
                response_deserializer=middleware__pb2.GetKeygroupInfoResponse.FromString,
                )
        self.RemoveReplica = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/RemoveReplica',
                request_serializer=middleware__pb2.RemoveReplicaRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.GetReplica = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/GetReplica',
                request_serializer=middleware__pb2.GetReplicaRequest.SerializeToString,
                response_deserializer=middleware__pb2.GetReplicaResponse.FromString,
                )
        self.GetAllReplica = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/GetAllReplica',
                request_serializer=middleware__pb2.GetAllReplicaRequest.SerializeToString,
                response_deserializer=middleware__pb2.GetAllReplicaResponse.FromString,
                )
        self.GetKeygroupTriggers = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/GetKeygroupTriggers',
                request_serializer=middleware__pb2.GetKeygroupTriggerRequest.SerializeToString,
                response_deserializer=middleware__pb2.GetKeygroupTriggerResponse.FromString,
                )
        self.AddTrigger = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/AddTrigger',
                request_serializer=middleware__pb2.AddTriggerRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.RemoveTrigger = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/RemoveTrigger',
                request_serializer=middleware__pb2.RemoveTriggerRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.AddUser = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/AddUser',
                request_serializer=middleware__pb2.UserRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.RemoveUser = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/RemoveUser',
                request_serializer=middleware__pb2.UserRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )


class MiddlewareServicer(object):
    """This extends the Fred client for more convenient functions.
    """

    def CreateKeygroup(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 DeleteKeygroup(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 Read(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 Scan(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 Update(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 Delete(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 Append(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 Notify(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 ChooseReplica(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 AddReplica(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 GetKeygroupInfo(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 RemoveReplica(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 GetReplica(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 GetAllReplica(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 GetKeygroupTriggers(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 AddTrigger(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 RemoveTrigger(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 AddUser(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 RemoveUser(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_MiddlewareServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'CreateKeygroup': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateKeygroup,
                    request_deserializer=middleware__pb2.CreateKeygroupRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'DeleteKeygroup': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteKeygroup,
                    request_deserializer=middleware__pb2.DeleteKeygroupRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'Read': grpc.unary_unary_rpc_method_handler(
                    servicer.Read,
                    request_deserializer=middleware__pb2.ReadRequest.FromString,
                    response_serializer=middleware__pb2.ReadResponse.SerializeToString,
            ),
            'Scan': grpc.unary_unary_rpc_method_handler(
                    servicer.Scan,
                    request_deserializer=middleware__pb2.ScanRequest.FromString,
                    response_serializer=middleware__pb2.ScanResponse.SerializeToString,
            ),
            'Update': grpc.unary_unary_rpc_method_handler(
                    servicer.Update,
                    request_deserializer=middleware__pb2.UpdateRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'Delete': grpc.unary_unary_rpc_method_handler(
                    servicer.Delete,
                    request_deserializer=middleware__pb2.DeleteRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'Append': grpc.unary_unary_rpc_method_handler(
                    servicer.Append,
                    request_deserializer=middleware__pb2.AppendRequest.FromString,
                    response_serializer=middleware__pb2.AppendResponse.SerializeToString,
            ),
            'Notify': grpc.unary_unary_rpc_method_handler(
                    servicer.Notify,
                    request_deserializer=middleware__pb2.NotifyRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'ChooseReplica': grpc.unary_unary_rpc_method_handler(
                    servicer.ChooseReplica,
                    request_deserializer=middleware__pb2.ChooseReplicaRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'AddReplica': grpc.unary_unary_rpc_method_handler(
                    servicer.AddReplica,
                    request_deserializer=middleware__pb2.AddReplicaRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'GetKeygroupInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetKeygroupInfo,
                    request_deserializer=middleware__pb2.GetKeygroupInfoRequest.FromString,
                    response_serializer=middleware__pb2.GetKeygroupInfoResponse.SerializeToString,
            ),
            'RemoveReplica': grpc.unary_unary_rpc_method_handler(
                    servicer.RemoveReplica,
                    request_deserializer=middleware__pb2.RemoveReplicaRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'GetReplica': grpc.unary_unary_rpc_method_handler(
                    servicer.GetReplica,
                    request_deserializer=middleware__pb2.GetReplicaRequest.FromString,
                    response_serializer=middleware__pb2.GetReplicaResponse.SerializeToString,
            ),
            'GetAllReplica': grpc.unary_unary_rpc_method_handler(
                    servicer.GetAllReplica,
                    request_deserializer=middleware__pb2.GetAllReplicaRequest.FromString,
                    response_serializer=middleware__pb2.GetAllReplicaResponse.SerializeToString,
            ),
            'GetKeygroupTriggers': grpc.unary_unary_rpc_method_handler(
                    servicer.GetKeygroupTriggers,
                    request_deserializer=middleware__pb2.GetKeygroupTriggerRequest.FromString,
                    response_serializer=middleware__pb2.GetKeygroupTriggerResponse.SerializeToString,
            ),
            'AddTrigger': grpc.unary_unary_rpc_method_handler(
                    servicer.AddTrigger,
                    request_deserializer=middleware__pb2.AddTriggerRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'RemoveTrigger': grpc.unary_unary_rpc_method_handler(
                    servicer.RemoveTrigger,
                    request_deserializer=middleware__pb2.RemoveTriggerRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'AddUser': grpc.unary_unary_rpc_method_handler(
                    servicer.AddUser,
                    request_deserializer=middleware__pb2.UserRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'RemoveUser': grpc.unary_unary_rpc_method_handler(
                    servicer.RemoveUser,
                    request_deserializer=middleware__pb2.UserRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'mcc.fred.middleware.Middleware', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Middleware(object):
    """This extends the Fred client for more convenient functions.
    """

    @staticmethod
    def CreateKeygroup(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, '/mcc.fred.middleware.Middleware/CreateKeygroup',
            middleware__pb2.CreateKeygroupRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteKeygroup(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, '/mcc.fred.middleware.Middleware/DeleteKeygroup',
            middleware__pb2.DeleteKeygroupRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Read(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, '/mcc.fred.middleware.Middleware/Read',
            middleware__pb2.ReadRequest.SerializeToString,
            middleware__pb2.ReadResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Scan(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, '/mcc.fred.middleware.Middleware/Scan',
            middleware__pb2.ScanRequest.SerializeToString,
            middleware__pb2.ScanResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Update(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, '/mcc.fred.middleware.Middleware/Update',
            middleware__pb2.UpdateRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Delete(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, '/mcc.fred.middleware.Middleware/Delete',
            middleware__pb2.DeleteRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Append(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, '/mcc.fred.middleware.Middleware/Append',
            middleware__pb2.AppendRequest.SerializeToString,
            middleware__pb2.AppendResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Notify(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, '/mcc.fred.middleware.Middleware/Notify',
            middleware__pb2.NotifyRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ChooseReplica(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, '/mcc.fred.middleware.Middleware/ChooseReplica',
            middleware__pb2.ChooseReplicaRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def AddReplica(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, '/mcc.fred.middleware.Middleware/AddReplica',
            middleware__pb2.AddReplicaRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetKeygroupInfo(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, '/mcc.fred.middleware.Middleware/GetKeygroupInfo',
            middleware__pb2.GetKeygroupInfoRequest.SerializeToString,
            middleware__pb2.GetKeygroupInfoResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RemoveReplica(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, '/mcc.fred.middleware.Middleware/RemoveReplica',
            middleware__pb2.RemoveReplicaRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetReplica(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, '/mcc.fred.middleware.Middleware/GetReplica',
            middleware__pb2.GetReplicaRequest.SerializeToString,
            middleware__pb2.GetReplicaResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetAllReplica(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, '/mcc.fred.middleware.Middleware/GetAllReplica',
            middleware__pb2.GetAllReplicaRequest.SerializeToString,
            middleware__pb2.GetAllReplicaResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetKeygroupTriggers(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, '/mcc.fred.middleware.Middleware/GetKeygroupTriggers',
            middleware__pb2.GetKeygroupTriggerRequest.SerializeToString,
            middleware__pb2.GetKeygroupTriggerResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def AddTrigger(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, '/mcc.fred.middleware.Middleware/AddTrigger',
            middleware__pb2.AddTriggerRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RemoveTrigger(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, '/mcc.fred.middleware.Middleware/RemoveTrigger',
            middleware__pb2.RemoveTriggerRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def AddUser(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, '/mcc.fred.middleware.Middleware/AddUser',
            middleware__pb2.UserRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RemoveUser(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, '/mcc.fred.middleware.Middleware/RemoveUser',
            middleware__pb2.UserRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

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

import middleware_pb2 as middleware__pb2


class MiddlewareStub(object):
    """This extends the Fred client for more convenient functions.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.CreateKeygroup = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/CreateKeygroup',
                request_serializer=middleware__pb2.CreateKeygroupRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.DeleteKeygroup = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/DeleteKeygroup',
                request_serializer=middleware__pb2.DeleteKeygroupRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.Read = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Read',
                request_serializer=middleware__pb2.ReadRequest.SerializeToString,
                response_deserializer=middleware__pb2.ReadResponse.FromString,
                )
        self.Scan = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Scan',
                request_serializer=middleware__pb2.ScanRequest.SerializeToString,
                response_deserializer=middleware__pb2.ScanResponse.FromString,
                )
        self.Update = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Update',
                request_serializer=middleware__pb2.UpdateRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.Delete = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Delete',
                request_serializer=middleware__pb2.DeleteRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.Append = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Append',
                request_serializer=middleware__pb2.AppendRequest.SerializeToString,
                response_deserializer=middleware__pb2.AppendResponse.FromString,
                )
        self.Notify = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/Notify',
                request_serializer=middleware__pb2.NotifyRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.ChooseReplica = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/ChooseReplica',
                request_serializer=middleware__pb2.ChooseReplicaRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.AddReplica = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/AddReplica',
                request_serializer=middleware__pb2.AddReplicaRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.GetKeygroupInfo = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/GetKeygroupInfo',
                request_serializer=middleware__pb2.GetKeygroupInfoRequest.SerializeToString,
                response_deserializer=middleware__pb2.GetKeygroupInfoResponse.FromString,
                )
        self.RemoveReplica = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/RemoveReplica',
                request_serializer=middleware__pb2.RemoveReplicaRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.GetReplica = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/GetReplica',
                request_serializer=middleware__pb2.GetReplicaRequest.SerializeToString,
                response_deserializer=middleware__pb2.GetReplicaResponse.FromString,
                )
        self.GetAllReplica = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/GetAllReplica',
                request_serializer=middleware__pb2.GetAllReplicaRequest.SerializeToString,
                response_deserializer=middleware__pb2.GetAllReplicaResponse.FromString,
                )
        self.GetKeygroupTriggers = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/GetKeygroupTriggers',
                request_serializer=middleware__pb2.GetKeygroupTriggerRequest.SerializeToString,
                response_deserializer=middleware__pb2.GetKeygroupTriggerResponse.FromString,
                )
        self.AddTrigger = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/AddTrigger',
                request_serializer=middleware__pb2.AddTriggerRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.RemoveTrigger = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/RemoveTrigger',
                request_serializer=middleware__pb2.RemoveTriggerRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.AddUser = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/AddUser',
                request_serializer=middleware__pb2.UserRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )
        self.RemoveUser = channel.unary_unary(
                '/mcc.fred.middleware.Middleware/RemoveUser',
                request_serializer=middleware__pb2.UserRequest.SerializeToString,
                response_deserializer=middleware__pb2.Empty.FromString,
                )


class MiddlewareServicer(object):
    """This extends the Fred client for more convenient functions.
    """

    def CreateKeygroup(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 DeleteKeygroup(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 Read(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 Scan(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 Update(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 Delete(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 Append(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 Notify(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 ChooseReplica(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 AddReplica(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 GetKeygroupInfo(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 RemoveReplica(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 GetReplica(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 GetAllReplica(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 GetKeygroupTriggers(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 AddTrigger(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 RemoveTrigger(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 AddUser(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 RemoveUser(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_MiddlewareServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'CreateKeygroup': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateKeygroup,
                    request_deserializer=middleware__pb2.CreateKeygroupRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'DeleteKeygroup': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteKeygroup,
                    request_deserializer=middleware__pb2.DeleteKeygroupRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'Read': grpc.unary_unary_rpc_method_handler(
                    servicer.Read,
                    request_deserializer=middleware__pb2.ReadRequest.FromString,
                    response_serializer=middleware__pb2.ReadResponse.SerializeToString,
            ),
            'Scan': grpc.unary_unary_rpc_method_handler(
                    servicer.Scan,
                    request_deserializer=middleware__pb2.ScanRequest.FromString,
                    response_serializer=middleware__pb2.ScanResponse.SerializeToString,
            ),
            'Update': grpc.unary_unary_rpc_method_handler(
                    servicer.Update,
                    request_deserializer=middleware__pb2.UpdateRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'Delete': grpc.unary_unary_rpc_method_handler(
                    servicer.Delete,
                    request_deserializer=middleware__pb2.DeleteRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'Append': grpc.unary_unary_rpc_method_handler(
                    servicer.Append,
                    request_deserializer=middleware__pb2.AppendRequest.FromString,
                    response_serializer=middleware__pb2.AppendResponse.SerializeToString,
            ),
            'Notify': grpc.unary_unary_rpc_method_handler(
                    servicer.Notify,
                    request_deserializer=middleware__pb2.NotifyRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'ChooseReplica': grpc.unary_unary_rpc_method_handler(
                    servicer.ChooseReplica,
                    request_deserializer=middleware__pb2.ChooseReplicaRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'AddReplica': grpc.unary_unary_rpc_method_handler(
                    servicer.AddReplica,
                    request_deserializer=middleware__pb2.AddReplicaRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'GetKeygroupInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetKeygroupInfo,
                    request_deserializer=middleware__pb2.GetKeygroupInfoRequest.FromString,
                    response_serializer=middleware__pb2.GetKeygroupInfoResponse.SerializeToString,
            ),
            'RemoveReplica': grpc.unary_unary_rpc_method_handler(
                    servicer.RemoveReplica,
                    request_deserializer=middleware__pb2.RemoveReplicaRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'GetReplica': grpc.unary_unary_rpc_method_handler(
                    servicer.GetReplica,
                    request_deserializer=middleware__pb2.GetReplicaRequest.FromString,
                    response_serializer=middleware__pb2.GetReplicaResponse.SerializeToString,
            ),
            'GetAllReplica': grpc.unary_unary_rpc_method_handler(
                    servicer.GetAllReplica,
                    request_deserializer=middleware__pb2.GetAllReplicaRequest.FromString,
                    response_serializer=middleware__pb2.GetAllReplicaResponse.SerializeToString,
            ),
            'GetKeygroupTriggers': grpc.unary_unary_rpc_method_handler(
                    servicer.GetKeygroupTriggers,
                    request_deserializer=middleware__pb2.GetKeygroupTriggerRequest.FromString,
                    response_serializer=middleware__pb2.GetKeygroupTriggerResponse.SerializeToString,
            ),
            'AddTrigger': grpc.unary_unary_rpc_method_handler(
                    servicer.AddTrigger,
                    request_deserializer=middleware__pb2.AddTriggerRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'RemoveTrigger': grpc.unary_unary_rpc_method_handler(
                    servicer.RemoveTrigger,
                    request_deserializer=middleware__pb2.RemoveTriggerRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'AddUser': grpc.unary_unary_rpc_method_handler(
                    servicer.AddUser,
                    request_deserializer=middleware__pb2.UserRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
            'RemoveUser': grpc.unary_unary_rpc_method_handler(
                    servicer.RemoveUser,
                    request_deserializer=middleware__pb2.UserRequest.FromString,
                    response_serializer=middleware__pb2.Empty.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'mcc.fred.middleware.Middleware', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Middleware(object):
    """This extends the Fred client for more convenient functions.
    """

    @staticmethod
    def CreateKeygroup(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, '/mcc.fred.middleware.Middleware/CreateKeygroup',
            middleware__pb2.CreateKeygroupRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteKeygroup(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, '/mcc.fred.middleware.Middleware/DeleteKeygroup',
            middleware__pb2.DeleteKeygroupRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Read(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, '/mcc.fred.middleware.Middleware/Read',
            middleware__pb2.ReadRequest.SerializeToString,
            middleware__pb2.ReadResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Scan(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, '/mcc.fred.middleware.Middleware/Scan',
            middleware__pb2.ScanRequest.SerializeToString,
            middleware__pb2.ScanResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Update(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, '/mcc.fred.middleware.Middleware/Update',
            middleware__pb2.UpdateRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Delete(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, '/mcc.fred.middleware.Middleware/Delete',
            middleware__pb2.DeleteRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Append(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, '/mcc.fred.middleware.Middleware/Append',
            middleware__pb2.AppendRequest.SerializeToString,
            middleware__pb2.AppendResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Notify(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, '/mcc.fred.middleware.Middleware/Notify',
            middleware__pb2.NotifyRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ChooseReplica(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, '/mcc.fred.middleware.Middleware/ChooseReplica',
            middleware__pb2.ChooseReplicaRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def AddReplica(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, '/mcc.fred.middleware.Middleware/AddReplica',
            middleware__pb2.AddReplicaRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetKeygroupInfo(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, '/mcc.fred.middleware.Middleware/GetKeygroupInfo',
            middleware__pb2.GetKeygroupInfoRequest.SerializeToString,
            middleware__pb2.GetKeygroupInfoResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RemoveReplica(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, '/mcc.fred.middleware.Middleware/RemoveReplica',
            middleware__pb2.RemoveReplicaRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetReplica(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, '/mcc.fred.middleware.Middleware/GetReplica',
            middleware__pb2.GetReplicaRequest.SerializeToString,
            middleware__pb2.GetReplicaResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetAllReplica(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, '/mcc.fred.middleware.Middleware/GetAllReplica',
            middleware__pb2.GetAllReplicaRequest.SerializeToString,
            middleware__pb2.GetAllReplicaResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetKeygroupTriggers(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, '/mcc.fred.middleware.Middleware/GetKeygroupTriggers',
            middleware__pb2.GetKeygroupTriggerRequest.SerializeToString,
            middleware__pb2.GetKeygroupTriggerResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def AddTrigger(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, '/mcc.fred.middleware.Middleware/AddTrigger',
            middleware__pb2.AddTriggerRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RemoveTrigger(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, '/mcc.fred.middleware.Middleware/RemoveTrigger',
            middleware__pb2.RemoveTriggerRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def AddUser(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, '/mcc.fred.middleware.Middleware/AddUser',
            middleware__pb2.UserRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RemoveUser(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, '/mcc.fred.middleware.Middleware/RemoveUser',
            middleware__pb2.UserRequest.SerializeToString,
            middleware__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! Client and server classes corresponding to protobuf-defined services. This extends the Fred client for more convenient functions. Constructor.          Args:             channel: A grpc.Channel. This extends the Fred client for more convenient functions. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. # This class is part of an EXPERIMENTAL API. This extends the Fred client for more convenient functions.