# 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
from . import groups_pb2 as groups__pb2
from . import miscellaneous_pb2 as miscellaneous__pb2


class GroupsStub(object):
    """Missing associated documentation comment in .proto file."""

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

        Args:
            channel: A grpc.Channel.
        """
        self.LoadMembers = channel.unary_unary(
                '/dialog.Groups/LoadMembers',
                request_serializer=groups__pb2.RequestLoadMembers.SerializeToString,
                response_deserializer=groups__pb2.ResponseLoadMembers.FromString,
                )
        self.CreateGroup = channel.unary_unary(
                '/dialog.Groups/CreateGroup',
                request_serializer=groups__pb2.RequestCreateGroup.SerializeToString,
                response_deserializer=groups__pb2.ResponseCreateGroup.FromString,
                )
        self.EditGroupTitle = channel.unary_unary(
                '/dialog.Groups/EditGroupTitle',
                request_serializer=groups__pb2.RequestEditGroupTitle.SerializeToString,
                response_deserializer=miscellaneous__pb2.ResponseSeqDateMid.FromString,
                )
        self.SetGroupShortname = channel.unary_unary(
                '/dialog.Groups/SetGroupShortname',
                request_serializer=groups__pb2.RequestSetGroupShortname.SerializeToString,
                response_deserializer=miscellaneous__pb2.ResponseSeq.FromString,
                )
        self.EditGroupAvatar = channel.unary_unary(
                '/dialog.Groups/EditGroupAvatar',
                request_serializer=groups__pb2.RequestEditGroupAvatar.SerializeToString,
                response_deserializer=groups__pb2.ResponseEditGroupAvatar.FromString,
                )
        self.RemoveGroupAvatar = channel.unary_unary(
                '/dialog.Groups/RemoveGroupAvatar',
                request_serializer=groups__pb2.RequestRemoveGroupAvatar.SerializeToString,
                response_deserializer=miscellaneous__pb2.ResponseSeqDateMid.FromString,
                )
        self.EditGroupAbout = channel.unary_unary(
                '/dialog.Groups/EditGroupAbout',
                request_serializer=groups__pb2.RequestEditGroupAbout.SerializeToString,
                response_deserializer=miscellaneous__pb2.ResponseSeqDate.FromString,
                )
        self.EditGroupBasePermissions = channel.unary_unary(
                '/dialog.Groups/EditGroupBasePermissions',
                request_serializer=groups__pb2.RequestEditGroupBasePermissions.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.InviteUser = channel.unary_unary(
                '/dialog.Groups/InviteUser',
                request_serializer=groups__pb2.RequestInviteUser.SerializeToString,
                response_deserializer=miscellaneous__pb2.ResponseSeqDateMid.FromString,
                )
        self.LeaveGroup = channel.unary_unary(
                '/dialog.Groups/LeaveGroup',
                request_serializer=groups__pb2.RequestLeaveGroup.SerializeToString,
                response_deserializer=miscellaneous__pb2.ResponseSeqDateMid.FromString,
                )
        self.KickUser = channel.unary_unary(
                '/dialog.Groups/KickUser',
                request_serializer=groups__pb2.RequestKickUser.SerializeToString,
                response_deserializer=miscellaneous__pb2.ResponseSeqDateMid.FromString,
                )
        self.MakeUserAdmin = channel.unary_unary(
                '/dialog.Groups/MakeUserAdmin',
                request_serializer=groups__pb2.RequestMakeUserAdmin.SerializeToString,
                response_deserializer=miscellaneous__pb2.ResponseSeqDate.FromString,
                )
        self.GetGroupMemberPermissions = channel.unary_unary(
                '/dialog.Groups/GetGroupMemberPermissions',
                request_serializer=groups__pb2.RequestGetGroupMemberPermissions.SerializeToString,
                response_deserializer=groups__pb2.ResponseGetGroupMemberPermissions.FromString,
                )
        self.EditMemberPermissions = channel.unary_unary(
                '/dialog.Groups/EditMemberPermissions',
                request_serializer=groups__pb2.RequestEditMemberPermissions.SerializeToString,
                response_deserializer=groups__pb2.ResponseMember.FromString,
                )
        self.TransferOwnership = channel.unary_unary(
                '/dialog.Groups/TransferOwnership',
                request_serializer=groups__pb2.RequestTransferOwnership.SerializeToString,
                response_deserializer=miscellaneous__pb2.ResponseSeqDate.FromString,
                )
        self.GetGroupInviteUrl = channel.unary_unary(
                '/dialog.Groups/GetGroupInviteUrl',
                request_serializer=groups__pb2.RequestGetGroupInviteUrl.SerializeToString,
                response_deserializer=groups__pb2.ResponseInviteUrl.FromString,
                )
        self.GetGroupInviteUrlBase = channel.unary_unary(
                '/dialog.Groups/GetGroupInviteUrlBase',
                request_serializer=groups__pb2.RequestGetGroupInviteUrlBase.SerializeToString,
                response_deserializer=groups__pb2.ResponseGetGroupInviteUrlBase.FromString,
                )
        self.RevokeInviteUrl = channel.unary_unary(
                '/dialog.Groups/RevokeInviteUrl',
                request_serializer=groups__pb2.RequestRevokeInviteUrl.SerializeToString,
                response_deserializer=groups__pb2.ResponseInviteUrl.FromString,
                )
        self.JoinGroup = channel.unary_unary(
                '/dialog.Groups/JoinGroup',
                request_serializer=groups__pb2.RequestJoinGroup.SerializeToString,
                response_deserializer=groups__pb2.ResponseJoinGroup.FromString,
                )
        self.JoinGroupByPeer = channel.unary_unary(
                '/dialog.Groups/JoinGroupByPeer',
                request_serializer=groups__pb2.RequestJoinGroupByPeer.SerializeToString,
                response_deserializer=miscellaneous__pb2.ResponseVoid.FromString,
                )
        self.DeleteGroup = channel.unary_unary(
                '/dialog.Groups/DeleteGroup',
                request_serializer=groups__pb2.RequestDeleteGroup.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.GetGroupPartialInfo = channel.unary_unary(
                '/dialog.Groups/GetGroupPartialInfo',
                request_serializer=groups__pb2.RequestGetGroupPartialInfo.SerializeToString,
                response_deserializer=groups__pb2.GroupPartialInfo.FromString,
                )


class GroupsServicer(object):
    """Missing associated documentation comment in .proto file."""

    def LoadMembers(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 CreateGroup(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 EditGroupTitle(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 SetGroupShortname(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 EditGroupAvatar(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 RemoveGroupAvatar(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 EditGroupAbout(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 EditGroupBasePermissions(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 InviteUser(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 LeaveGroup(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 KickUser(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 MakeUserAdmin(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 GetGroupMemberPermissions(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 EditMemberPermissions(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 TransferOwnership(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 GetGroupInviteUrl(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 GetGroupInviteUrlBase(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 RevokeInviteUrl(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 JoinGroup(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 JoinGroupByPeer(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 DeleteGroup(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 GetGroupPartialInfo(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_GroupsServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'LoadMembers': grpc.unary_unary_rpc_method_handler(
                    servicer.LoadMembers,
                    request_deserializer=groups__pb2.RequestLoadMembers.FromString,
                    response_serializer=groups__pb2.ResponseLoadMembers.SerializeToString,
            ),
            'CreateGroup': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateGroup,
                    request_deserializer=groups__pb2.RequestCreateGroup.FromString,
                    response_serializer=groups__pb2.ResponseCreateGroup.SerializeToString,
            ),
            'EditGroupTitle': grpc.unary_unary_rpc_method_handler(
                    servicer.EditGroupTitle,
                    request_deserializer=groups__pb2.RequestEditGroupTitle.FromString,
                    response_serializer=miscellaneous__pb2.ResponseSeqDateMid.SerializeToString,
            ),
            'SetGroupShortname': grpc.unary_unary_rpc_method_handler(
                    servicer.SetGroupShortname,
                    request_deserializer=groups__pb2.RequestSetGroupShortname.FromString,
                    response_serializer=miscellaneous__pb2.ResponseSeq.SerializeToString,
            ),
            'EditGroupAvatar': grpc.unary_unary_rpc_method_handler(
                    servicer.EditGroupAvatar,
                    request_deserializer=groups__pb2.RequestEditGroupAvatar.FromString,
                    response_serializer=groups__pb2.ResponseEditGroupAvatar.SerializeToString,
            ),
            'RemoveGroupAvatar': grpc.unary_unary_rpc_method_handler(
                    servicer.RemoveGroupAvatar,
                    request_deserializer=groups__pb2.RequestRemoveGroupAvatar.FromString,
                    response_serializer=miscellaneous__pb2.ResponseSeqDateMid.SerializeToString,
            ),
            'EditGroupAbout': grpc.unary_unary_rpc_method_handler(
                    servicer.EditGroupAbout,
                    request_deserializer=groups__pb2.RequestEditGroupAbout.FromString,
                    response_serializer=miscellaneous__pb2.ResponseSeqDate.SerializeToString,
            ),
            'EditGroupBasePermissions': grpc.unary_unary_rpc_method_handler(
                    servicer.EditGroupBasePermissions,
                    request_deserializer=groups__pb2.RequestEditGroupBasePermissions.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'InviteUser': grpc.unary_unary_rpc_method_handler(
                    servicer.InviteUser,
                    request_deserializer=groups__pb2.RequestInviteUser.FromString,
                    response_serializer=miscellaneous__pb2.ResponseSeqDateMid.SerializeToString,
            ),
            'LeaveGroup': grpc.unary_unary_rpc_method_handler(
                    servicer.LeaveGroup,
                    request_deserializer=groups__pb2.RequestLeaveGroup.FromString,
                    response_serializer=miscellaneous__pb2.ResponseSeqDateMid.SerializeToString,
            ),
            'KickUser': grpc.unary_unary_rpc_method_handler(
                    servicer.KickUser,
                    request_deserializer=groups__pb2.RequestKickUser.FromString,
                    response_serializer=miscellaneous__pb2.ResponseSeqDateMid.SerializeToString,
            ),
            'MakeUserAdmin': grpc.unary_unary_rpc_method_handler(
                    servicer.MakeUserAdmin,
                    request_deserializer=groups__pb2.RequestMakeUserAdmin.FromString,
                    response_serializer=miscellaneous__pb2.ResponseSeqDate.SerializeToString,
            ),
            'GetGroupMemberPermissions': grpc.unary_unary_rpc_method_handler(
                    servicer.GetGroupMemberPermissions,
                    request_deserializer=groups__pb2.RequestGetGroupMemberPermissions.FromString,
                    response_serializer=groups__pb2.ResponseGetGroupMemberPermissions.SerializeToString,
            ),
            'EditMemberPermissions': grpc.unary_unary_rpc_method_handler(
                    servicer.EditMemberPermissions,
                    request_deserializer=groups__pb2.RequestEditMemberPermissions.FromString,
                    response_serializer=groups__pb2.ResponseMember.SerializeToString,
            ),
            'TransferOwnership': grpc.unary_unary_rpc_method_handler(
                    servicer.TransferOwnership,
                    request_deserializer=groups__pb2.RequestTransferOwnership.FromString,
                    response_serializer=miscellaneous__pb2.ResponseSeqDate.SerializeToString,
            ),
            'GetGroupInviteUrl': grpc.unary_unary_rpc_method_handler(
                    servicer.GetGroupInviteUrl,
                    request_deserializer=groups__pb2.RequestGetGroupInviteUrl.FromString,
                    response_serializer=groups__pb2.ResponseInviteUrl.SerializeToString,
            ),
            'GetGroupInviteUrlBase': grpc.unary_unary_rpc_method_handler(
                    servicer.GetGroupInviteUrlBase,
                    request_deserializer=groups__pb2.RequestGetGroupInviteUrlBase.FromString,
                    response_serializer=groups__pb2.ResponseGetGroupInviteUrlBase.SerializeToString,
            ),
            'RevokeInviteUrl': grpc.unary_unary_rpc_method_handler(
                    servicer.RevokeInviteUrl,
                    request_deserializer=groups__pb2.RequestRevokeInviteUrl.FromString,
                    response_serializer=groups__pb2.ResponseInviteUrl.SerializeToString,
            ),
            'JoinGroup': grpc.unary_unary_rpc_method_handler(
                    servicer.JoinGroup,
                    request_deserializer=groups__pb2.RequestJoinGroup.FromString,
                    response_serializer=groups__pb2.ResponseJoinGroup.SerializeToString,
            ),
            'JoinGroupByPeer': grpc.unary_unary_rpc_method_handler(
                    servicer.JoinGroupByPeer,
                    request_deserializer=groups__pb2.RequestJoinGroupByPeer.FromString,
                    response_serializer=miscellaneous__pb2.ResponseVoid.SerializeToString,
            ),
            'DeleteGroup': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteGroup,
                    request_deserializer=groups__pb2.RequestDeleteGroup.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetGroupPartialInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetGroupPartialInfo,
                    request_deserializer=groups__pb2.RequestGetGroupPartialInfo.FromString,
                    response_serializer=groups__pb2.GroupPartialInfo.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'dialog.Groups', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Groups(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def LoadMembers(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, '/dialog.Groups/LoadMembers',
            groups__pb2.RequestLoadMembers.SerializeToString,
            groups__pb2.ResponseLoadMembers.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateGroup(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, '/dialog.Groups/CreateGroup',
            groups__pb2.RequestCreateGroup.SerializeToString,
            groups__pb2.ResponseCreateGroup.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EditGroupTitle(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, '/dialog.Groups/EditGroupTitle',
            groups__pb2.RequestEditGroupTitle.SerializeToString,
            miscellaneous__pb2.ResponseSeqDateMid.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetGroupShortname(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, '/dialog.Groups/SetGroupShortname',
            groups__pb2.RequestSetGroupShortname.SerializeToString,
            miscellaneous__pb2.ResponseSeq.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EditGroupAvatar(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, '/dialog.Groups/EditGroupAvatar',
            groups__pb2.RequestEditGroupAvatar.SerializeToString,
            groups__pb2.ResponseEditGroupAvatar.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RemoveGroupAvatar(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, '/dialog.Groups/RemoveGroupAvatar',
            groups__pb2.RequestRemoveGroupAvatar.SerializeToString,
            miscellaneous__pb2.ResponseSeqDateMid.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EditGroupAbout(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, '/dialog.Groups/EditGroupAbout',
            groups__pb2.RequestEditGroupAbout.SerializeToString,
            miscellaneous__pb2.ResponseSeqDate.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EditGroupBasePermissions(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, '/dialog.Groups/EditGroupBasePermissions',
            groups__pb2.RequestEditGroupBasePermissions.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def InviteUser(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, '/dialog.Groups/InviteUser',
            groups__pb2.RequestInviteUser.SerializeToString,
            miscellaneous__pb2.ResponseSeqDateMid.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LeaveGroup(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, '/dialog.Groups/LeaveGroup',
            groups__pb2.RequestLeaveGroup.SerializeToString,
            miscellaneous__pb2.ResponseSeqDateMid.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def KickUser(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, '/dialog.Groups/KickUser',
            groups__pb2.RequestKickUser.SerializeToString,
            miscellaneous__pb2.ResponseSeqDateMid.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MakeUserAdmin(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, '/dialog.Groups/MakeUserAdmin',
            groups__pb2.RequestMakeUserAdmin.SerializeToString,
            miscellaneous__pb2.ResponseSeqDate.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetGroupMemberPermissions(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, '/dialog.Groups/GetGroupMemberPermissions',
            groups__pb2.RequestGetGroupMemberPermissions.SerializeToString,
            groups__pb2.ResponseGetGroupMemberPermissions.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EditMemberPermissions(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, '/dialog.Groups/EditMemberPermissions',
            groups__pb2.RequestEditMemberPermissions.SerializeToString,
            groups__pb2.ResponseMember.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TransferOwnership(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, '/dialog.Groups/TransferOwnership',
            groups__pb2.RequestTransferOwnership.SerializeToString,
            miscellaneous__pb2.ResponseSeqDate.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetGroupInviteUrl(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, '/dialog.Groups/GetGroupInviteUrl',
            groups__pb2.RequestGetGroupInviteUrl.SerializeToString,
            groups__pb2.ResponseInviteUrl.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetGroupInviteUrlBase(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, '/dialog.Groups/GetGroupInviteUrlBase',
            groups__pb2.RequestGetGroupInviteUrlBase.SerializeToString,
            groups__pb2.ResponseGetGroupInviteUrlBase.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RevokeInviteUrl(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, '/dialog.Groups/RevokeInviteUrl',
            groups__pb2.RequestRevokeInviteUrl.SerializeToString,
            groups__pb2.ResponseInviteUrl.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def JoinGroup(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, '/dialog.Groups/JoinGroup',
            groups__pb2.RequestJoinGroup.SerializeToString,
            groups__pb2.ResponseJoinGroup.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def JoinGroupByPeer(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, '/dialog.Groups/JoinGroupByPeer',
            groups__pb2.RequestJoinGroupByPeer.SerializeToString,
            miscellaneous__pb2.ResponseVoid.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteGroup(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, '/dialog.Groups/DeleteGroup',
            groups__pb2.RequestDeleteGroup.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetGroupPartialInfo(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, '/dialog.Groups/GetGroupPartialInfo',
            groups__pb2.RequestGetGroupPartialInfo.SerializeToString,
            groups__pb2.GroupPartialInfo.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
