#  Licensed to the Apache Software Foundation (ASF) under one or more
#  contributor license agreements.  See the NOTICE file distributed with
#  this work for additional information regarding copyright ownership.
#  The ASF licenses this file to You under the Apache License, Version 2.0
#  (the "License"); you may not use this file except in compliance with
#  the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#

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

import custos.server.core.SharingService_pb2 as SharingService__pb2


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.createEntityType = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/createEntityType',
                request_serializer=SharingService__pb2.EntityTypeRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.updateEntityType = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/updateEntityType',
                request_serializer=SharingService__pb2.EntityTypeRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.deleteEntityType = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/deleteEntityType',
                request_serializer=SharingService__pb2.EntityTypeRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.getEntityType = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/getEntityType',
                request_serializer=SharingService__pb2.EntityTypeRequest.SerializeToString,
                response_deserializer=SharingService__pb2.EntityType.FromString,
                )
        self.getEntityTypes = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/getEntityTypes',
                request_serializer=SharingService__pb2.SearchRequest.SerializeToString,
                response_deserializer=SharingService__pb2.EntityTypes.FromString,
                )
        self.createPermissionType = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/createPermissionType',
                request_serializer=SharingService__pb2.PermissionTypeRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.updatePermissionType = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/updatePermissionType',
                request_serializer=SharingService__pb2.PermissionTypeRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.deletePermissionType = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/deletePermissionType',
                request_serializer=SharingService__pb2.PermissionTypeRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.getPermissionType = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/getPermissionType',
                request_serializer=SharingService__pb2.PermissionTypeRequest.SerializeToString,
                response_deserializer=SharingService__pb2.PermissionType.FromString,
                )
        self.getPermissionTypes = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/getPermissionTypes',
                request_serializer=SharingService__pb2.SearchRequest.SerializeToString,
                response_deserializer=SharingService__pb2.PermissionTypes.FromString,
                )
        self.createEntity = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/createEntity',
                request_serializer=SharingService__pb2.EntityRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.updateEntity = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/updateEntity',
                request_serializer=SharingService__pb2.EntityRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.isEntityExists = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/isEntityExists',
                request_serializer=SharingService__pb2.EntityRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.getEntity = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/getEntity',
                request_serializer=SharingService__pb2.EntityRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Entity.FromString,
                )
        self.deleteEntity = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/deleteEntity',
                request_serializer=SharingService__pb2.EntityRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.searchEntities = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/searchEntities',
                request_serializer=SharingService__pb2.SearchRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Entities.FromString,
                )
        self.getListOfSharedUsers = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/getListOfSharedUsers',
                request_serializer=SharingService__pb2.SharingRequest.SerializeToString,
                response_deserializer=SharingService__pb2.SharedOwners.FromString,
                )
        self.getListOfDirectlySharedUsers = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/getListOfDirectlySharedUsers',
                request_serializer=SharingService__pb2.SharingRequest.SerializeToString,
                response_deserializer=SharingService__pb2.SharedOwners.FromString,
                )
        self.getListOfSharedGroups = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/getListOfSharedGroups',
                request_serializer=SharingService__pb2.SharingRequest.SerializeToString,
                response_deserializer=SharingService__pb2.SharedOwners.FromString,
                )
        self.getListOfDirectlySharedGroups = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/getListOfDirectlySharedGroups',
                request_serializer=SharingService__pb2.SharingRequest.SerializeToString,
                response_deserializer=SharingService__pb2.SharedOwners.FromString,
                )
        self.getAllDirectSharings = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/getAllDirectSharings',
                request_serializer=SharingService__pb2.SharingRequest.SerializeToString,
                response_deserializer=SharingService__pb2.GetAllDirectSharingsResponse.FromString,
                )
        self.shareEntityWithUsers = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/shareEntityWithUsers',
                request_serializer=SharingService__pb2.SharingRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.shareEntityWithGroups = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/shareEntityWithGroups',
                request_serializer=SharingService__pb2.SharingRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.revokeEntitySharingFromUsers = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/revokeEntitySharingFromUsers',
                request_serializer=SharingService__pb2.SharingRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.revokeEntitySharingFromGroups = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/revokeEntitySharingFromGroups',
                request_serializer=SharingService__pb2.SharingRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )
        self.userHasAccess = channel.unary_unary(
                '/org.apache.custos.sharing.service.SharingService/userHasAccess',
                request_serializer=SharingService__pb2.SharingRequest.SerializeToString,
                response_deserializer=SharingService__pb2.Status.FromString,
                )


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

    def createEntityType(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 updateEntityType(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 deleteEntityType(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 getEntityType(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 getEntityTypes(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 createPermissionType(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 updatePermissionType(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 deletePermissionType(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 getPermissionType(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 getPermissionTypes(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 createEntity(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 updateEntity(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 isEntityExists(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 getEntity(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 deleteEntity(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 searchEntities(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 getListOfSharedUsers(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 getListOfDirectlySharedUsers(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 getListOfSharedGroups(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 getListOfDirectlySharedGroups(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 getAllDirectSharings(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 shareEntityWithUsers(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 shareEntityWithGroups(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 revokeEntitySharingFromUsers(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 revokeEntitySharingFromGroups(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 userHasAccess(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_SharingServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'createEntityType': grpc.unary_unary_rpc_method_handler(
                    servicer.createEntityType,
                    request_deserializer=SharingService__pb2.EntityTypeRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'updateEntityType': grpc.unary_unary_rpc_method_handler(
                    servicer.updateEntityType,
                    request_deserializer=SharingService__pb2.EntityTypeRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'deleteEntityType': grpc.unary_unary_rpc_method_handler(
                    servicer.deleteEntityType,
                    request_deserializer=SharingService__pb2.EntityTypeRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'getEntityType': grpc.unary_unary_rpc_method_handler(
                    servicer.getEntityType,
                    request_deserializer=SharingService__pb2.EntityTypeRequest.FromString,
                    response_serializer=SharingService__pb2.EntityType.SerializeToString,
            ),
            'getEntityTypes': grpc.unary_unary_rpc_method_handler(
                    servicer.getEntityTypes,
                    request_deserializer=SharingService__pb2.SearchRequest.FromString,
                    response_serializer=SharingService__pb2.EntityTypes.SerializeToString,
            ),
            'createPermissionType': grpc.unary_unary_rpc_method_handler(
                    servicer.createPermissionType,
                    request_deserializer=SharingService__pb2.PermissionTypeRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'updatePermissionType': grpc.unary_unary_rpc_method_handler(
                    servicer.updatePermissionType,
                    request_deserializer=SharingService__pb2.PermissionTypeRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'deletePermissionType': grpc.unary_unary_rpc_method_handler(
                    servicer.deletePermissionType,
                    request_deserializer=SharingService__pb2.PermissionTypeRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'getPermissionType': grpc.unary_unary_rpc_method_handler(
                    servicer.getPermissionType,
                    request_deserializer=SharingService__pb2.PermissionTypeRequest.FromString,
                    response_serializer=SharingService__pb2.PermissionType.SerializeToString,
            ),
            'getPermissionTypes': grpc.unary_unary_rpc_method_handler(
                    servicer.getPermissionTypes,
                    request_deserializer=SharingService__pb2.SearchRequest.FromString,
                    response_serializer=SharingService__pb2.PermissionTypes.SerializeToString,
            ),
            'createEntity': grpc.unary_unary_rpc_method_handler(
                    servicer.createEntity,
                    request_deserializer=SharingService__pb2.EntityRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'updateEntity': grpc.unary_unary_rpc_method_handler(
                    servicer.updateEntity,
                    request_deserializer=SharingService__pb2.EntityRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'isEntityExists': grpc.unary_unary_rpc_method_handler(
                    servicer.isEntityExists,
                    request_deserializer=SharingService__pb2.EntityRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'getEntity': grpc.unary_unary_rpc_method_handler(
                    servicer.getEntity,
                    request_deserializer=SharingService__pb2.EntityRequest.FromString,
                    response_serializer=SharingService__pb2.Entity.SerializeToString,
            ),
            'deleteEntity': grpc.unary_unary_rpc_method_handler(
                    servicer.deleteEntity,
                    request_deserializer=SharingService__pb2.EntityRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'searchEntities': grpc.unary_unary_rpc_method_handler(
                    servicer.searchEntities,
                    request_deserializer=SharingService__pb2.SearchRequest.FromString,
                    response_serializer=SharingService__pb2.Entities.SerializeToString,
            ),
            'getListOfSharedUsers': grpc.unary_unary_rpc_method_handler(
                    servicer.getListOfSharedUsers,
                    request_deserializer=SharingService__pb2.SharingRequest.FromString,
                    response_serializer=SharingService__pb2.SharedOwners.SerializeToString,
            ),
            'getListOfDirectlySharedUsers': grpc.unary_unary_rpc_method_handler(
                    servicer.getListOfDirectlySharedUsers,
                    request_deserializer=SharingService__pb2.SharingRequest.FromString,
                    response_serializer=SharingService__pb2.SharedOwners.SerializeToString,
            ),
            'getListOfSharedGroups': grpc.unary_unary_rpc_method_handler(
                    servicer.getListOfSharedGroups,
                    request_deserializer=SharingService__pb2.SharingRequest.FromString,
                    response_serializer=SharingService__pb2.SharedOwners.SerializeToString,
            ),
            'getListOfDirectlySharedGroups': grpc.unary_unary_rpc_method_handler(
                    servicer.getListOfDirectlySharedGroups,
                    request_deserializer=SharingService__pb2.SharingRequest.FromString,
                    response_serializer=SharingService__pb2.SharedOwners.SerializeToString,
            ),
            'getAllDirectSharings': grpc.unary_unary_rpc_method_handler(
                    servicer.getAllDirectSharings,
                    request_deserializer=SharingService__pb2.SharingRequest.FromString,
                    response_serializer=SharingService__pb2.GetAllDirectSharingsResponse.SerializeToString,
            ),
            'shareEntityWithUsers': grpc.unary_unary_rpc_method_handler(
                    servicer.shareEntityWithUsers,
                    request_deserializer=SharingService__pb2.SharingRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'shareEntityWithGroups': grpc.unary_unary_rpc_method_handler(
                    servicer.shareEntityWithGroups,
                    request_deserializer=SharingService__pb2.SharingRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'revokeEntitySharingFromUsers': grpc.unary_unary_rpc_method_handler(
                    servicer.revokeEntitySharingFromUsers,
                    request_deserializer=SharingService__pb2.SharingRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'revokeEntitySharingFromGroups': grpc.unary_unary_rpc_method_handler(
                    servicer.revokeEntitySharingFromGroups,
                    request_deserializer=SharingService__pb2.SharingRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
            'userHasAccess': grpc.unary_unary_rpc_method_handler(
                    servicer.userHasAccess,
                    request_deserializer=SharingService__pb2.SharingRequest.FromString,
                    response_serializer=SharingService__pb2.Status.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'org.apache.custos.sharing.service.SharingService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def createEntityType(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, '/org.apache.custos.sharing.service.SharingService/createEntityType',
            SharingService__pb2.EntityTypeRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def updateEntityType(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, '/org.apache.custos.sharing.service.SharingService/updateEntityType',
            SharingService__pb2.EntityTypeRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def deleteEntityType(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, '/org.apache.custos.sharing.service.SharingService/deleteEntityType',
            SharingService__pb2.EntityTypeRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getEntityType(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, '/org.apache.custos.sharing.service.SharingService/getEntityType',
            SharingService__pb2.EntityTypeRequest.SerializeToString,
            SharingService__pb2.EntityType.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getEntityTypes(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, '/org.apache.custos.sharing.service.SharingService/getEntityTypes',
            SharingService__pb2.SearchRequest.SerializeToString,
            SharingService__pb2.EntityTypes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def createPermissionType(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, '/org.apache.custos.sharing.service.SharingService/createPermissionType',
            SharingService__pb2.PermissionTypeRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def updatePermissionType(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, '/org.apache.custos.sharing.service.SharingService/updatePermissionType',
            SharingService__pb2.PermissionTypeRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def deletePermissionType(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, '/org.apache.custos.sharing.service.SharingService/deletePermissionType',
            SharingService__pb2.PermissionTypeRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getPermissionType(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, '/org.apache.custos.sharing.service.SharingService/getPermissionType',
            SharingService__pb2.PermissionTypeRequest.SerializeToString,
            SharingService__pb2.PermissionType.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getPermissionTypes(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, '/org.apache.custos.sharing.service.SharingService/getPermissionTypes',
            SharingService__pb2.SearchRequest.SerializeToString,
            SharingService__pb2.PermissionTypes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def createEntity(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, '/org.apache.custos.sharing.service.SharingService/createEntity',
            SharingService__pb2.EntityRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def updateEntity(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, '/org.apache.custos.sharing.service.SharingService/updateEntity',
            SharingService__pb2.EntityRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def isEntityExists(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, '/org.apache.custos.sharing.service.SharingService/isEntityExists',
            SharingService__pb2.EntityRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getEntity(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, '/org.apache.custos.sharing.service.SharingService/getEntity',
            SharingService__pb2.EntityRequest.SerializeToString,
            SharingService__pb2.Entity.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def deleteEntity(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, '/org.apache.custos.sharing.service.SharingService/deleteEntity',
            SharingService__pb2.EntityRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def searchEntities(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, '/org.apache.custos.sharing.service.SharingService/searchEntities',
            SharingService__pb2.SearchRequest.SerializeToString,
            SharingService__pb2.Entities.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getListOfSharedUsers(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, '/org.apache.custos.sharing.service.SharingService/getListOfSharedUsers',
            SharingService__pb2.SharingRequest.SerializeToString,
            SharingService__pb2.SharedOwners.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getListOfDirectlySharedUsers(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, '/org.apache.custos.sharing.service.SharingService/getListOfDirectlySharedUsers',
            SharingService__pb2.SharingRequest.SerializeToString,
            SharingService__pb2.SharedOwners.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getListOfSharedGroups(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, '/org.apache.custos.sharing.service.SharingService/getListOfSharedGroups',
            SharingService__pb2.SharingRequest.SerializeToString,
            SharingService__pb2.SharedOwners.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getListOfDirectlySharedGroups(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, '/org.apache.custos.sharing.service.SharingService/getListOfDirectlySharedGroups',
            SharingService__pb2.SharingRequest.SerializeToString,
            SharingService__pb2.SharedOwners.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getAllDirectSharings(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, '/org.apache.custos.sharing.service.SharingService/getAllDirectSharings',
            SharingService__pb2.SharingRequest.SerializeToString,
            SharingService__pb2.GetAllDirectSharingsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def shareEntityWithUsers(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, '/org.apache.custos.sharing.service.SharingService/shareEntityWithUsers',
            SharingService__pb2.SharingRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def shareEntityWithGroups(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, '/org.apache.custos.sharing.service.SharingService/shareEntityWithGroups',
            SharingService__pb2.SharingRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def revokeEntitySharingFromUsers(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, '/org.apache.custos.sharing.service.SharingService/revokeEntitySharingFromUsers',
            SharingService__pb2.SharingRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def revokeEntitySharingFromGroups(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, '/org.apache.custos.sharing.service.SharingService/revokeEntitySharingFromGroups',
            SharingService__pb2.SharingRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def userHasAccess(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, '/org.apache.custos.sharing.service.SharingService/userHasAccess',
            SharingService__pb2.SharingRequest.SerializeToString,
            SharingService__pb2.Status.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
