#  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.IamAdminService_pb2 as IamAdminService__pb2
import custos.server.integration.UserManagementService_pb2 as UserManagementService__pb2
import custos.server.core.UserProfileService_pb2 as UserProfileService__pb2


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.registerUser = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/registerUser',
                request_serializer=IamAdminService__pb2.RegisterUserRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.RegisterUserResponse.FromString,
                )
        self.registerAndEnableUsers = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/registerAndEnableUsers',
                request_serializer=IamAdminService__pb2.RegisterUsersRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.RegisterUsersResponse.FromString,
                )
        self.addUserAttributes = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/addUserAttributes',
                request_serializer=IamAdminService__pb2.AddUserAttributesRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.deleteUserAttributes = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/deleteUserAttributes',
                request_serializer=IamAdminService__pb2.DeleteUserAttributeRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.enableUser = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/enableUser',
                request_serializer=IamAdminService__pb2.UserSearchRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.UserRepresentation.FromString,
                )
        self.disableUser = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/disableUser',
                request_serializer=IamAdminService__pb2.UserSearchRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.UserRepresentation.FromString,
                )
        self.grantAdminPrivileges = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/grantAdminPrivileges',
                request_serializer=IamAdminService__pb2.UserSearchRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.removeAdminPrivileges = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/removeAdminPrivileges',
                request_serializer=IamAdminService__pb2.UserSearchRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.addRolesToUsers = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/addRolesToUsers',
                request_serializer=IamAdminService__pb2.AddUserRolesRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.isUserEnabled = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/isUserEnabled',
                request_serializer=IamAdminService__pb2.UserSearchRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.isUsernameAvailable = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/isUsernameAvailable',
                request_serializer=IamAdminService__pb2.UserSearchRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.getUser = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/getUser',
                request_serializer=IamAdminService__pb2.UserSearchRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.UserRepresentation.FromString,
                )
        self.findUsers = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/findUsers',
                request_serializer=IamAdminService__pb2.FindUsersRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.FindUsersResponse.FromString,
                )
        self.resetPassword = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/resetPassword',
                request_serializer=IamAdminService__pb2.ResetUserPassword.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.deleteUser = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/deleteUser',
                request_serializer=IamAdminService__pb2.UserSearchRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.deleteUserRoles = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/deleteUserRoles',
                request_serializer=IamAdminService__pb2.DeleteUserRolesRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.updateUserProfile = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/updateUserProfile',
                request_serializer=UserManagementService__pb2.UserProfileRequest.SerializeToString,
                response_deserializer=UserProfileService__pb2.UserProfile.FromString,
                )
        self.getUserProfile = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/getUserProfile',
                request_serializer=UserManagementService__pb2.UserProfileRequest.SerializeToString,
                response_deserializer=UserProfileService__pb2.UserProfile.FromString,
                )
        self.deleteUserProfile = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/deleteUserProfile',
                request_serializer=UserManagementService__pb2.UserProfileRequest.SerializeToString,
                response_deserializer=UserProfileService__pb2.UserProfile.FromString,
                )
        self.getAllUserProfilesInTenant = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/getAllUserProfilesInTenant',
                request_serializer=UserManagementService__pb2.UserProfileRequest.SerializeToString,
                response_deserializer=UserProfileService__pb2.GetAllUserProfilesResponse.FromString,
                )
        self.linkUserProfile = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/linkUserProfile',
                request_serializer=UserManagementService__pb2.LinkUserProfileRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )
        self.getUserProfileAuditTrails = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/getUserProfileAuditTrails',
                request_serializer=UserProfileService__pb2.GetUpdateAuditTrailRequest.SerializeToString,
                response_deserializer=UserProfileService__pb2.GetUpdateAuditTrailResponse.FromString,
                )
        self.synchronizeUserDBs = channel.unary_unary(
                '/org.apache.custos.user.management.service.UserManagementService/synchronizeUserDBs',
                request_serializer=UserManagementService__pb2.SynchronizeUserDBRequest.SerializeToString,
                response_deserializer=IamAdminService__pb2.OperationStatus.FromString,
                )


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

    def registerUser(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 registerAndEnableUsers(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 addUserAttributes(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 deleteUserAttributes(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 enableUser(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 disableUser(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 grantAdminPrivileges(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 removeAdminPrivileges(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 addRolesToUsers(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 isUserEnabled(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 isUsernameAvailable(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 getUser(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 findUsers(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 resetPassword(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 deleteUser(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 deleteUserRoles(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 updateUserProfile(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 getUserProfile(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 deleteUserProfile(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 getAllUserProfilesInTenant(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 linkUserProfile(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 getUserProfileAuditTrails(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 synchronizeUserDBs(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_UserManagementServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'registerUser': grpc.unary_unary_rpc_method_handler(
                    servicer.registerUser,
                    request_deserializer=IamAdminService__pb2.RegisterUserRequest.FromString,
                    response_serializer=IamAdminService__pb2.RegisterUserResponse.SerializeToString,
            ),
            'registerAndEnableUsers': grpc.unary_unary_rpc_method_handler(
                    servicer.registerAndEnableUsers,
                    request_deserializer=IamAdminService__pb2.RegisterUsersRequest.FromString,
                    response_serializer=IamAdminService__pb2.RegisterUsersResponse.SerializeToString,
            ),
            'addUserAttributes': grpc.unary_unary_rpc_method_handler(
                    servicer.addUserAttributes,
                    request_deserializer=IamAdminService__pb2.AddUserAttributesRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'deleteUserAttributes': grpc.unary_unary_rpc_method_handler(
                    servicer.deleteUserAttributes,
                    request_deserializer=IamAdminService__pb2.DeleteUserAttributeRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'enableUser': grpc.unary_unary_rpc_method_handler(
                    servicer.enableUser,
                    request_deserializer=IamAdminService__pb2.UserSearchRequest.FromString,
                    response_serializer=IamAdminService__pb2.UserRepresentation.SerializeToString,
            ),
            'disableUser': grpc.unary_unary_rpc_method_handler(
                    servicer.disableUser,
                    request_deserializer=IamAdminService__pb2.UserSearchRequest.FromString,
                    response_serializer=IamAdminService__pb2.UserRepresentation.SerializeToString,
            ),
            'grantAdminPrivileges': grpc.unary_unary_rpc_method_handler(
                    servicer.grantAdminPrivileges,
                    request_deserializer=IamAdminService__pb2.UserSearchRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'removeAdminPrivileges': grpc.unary_unary_rpc_method_handler(
                    servicer.removeAdminPrivileges,
                    request_deserializer=IamAdminService__pb2.UserSearchRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'addRolesToUsers': grpc.unary_unary_rpc_method_handler(
                    servicer.addRolesToUsers,
                    request_deserializer=IamAdminService__pb2.AddUserRolesRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'isUserEnabled': grpc.unary_unary_rpc_method_handler(
                    servicer.isUserEnabled,
                    request_deserializer=IamAdminService__pb2.UserSearchRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'isUsernameAvailable': grpc.unary_unary_rpc_method_handler(
                    servicer.isUsernameAvailable,
                    request_deserializer=IamAdminService__pb2.UserSearchRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'getUser': grpc.unary_unary_rpc_method_handler(
                    servicer.getUser,
                    request_deserializer=IamAdminService__pb2.UserSearchRequest.FromString,
                    response_serializer=IamAdminService__pb2.UserRepresentation.SerializeToString,
            ),
            'findUsers': grpc.unary_unary_rpc_method_handler(
                    servicer.findUsers,
                    request_deserializer=IamAdminService__pb2.FindUsersRequest.FromString,
                    response_serializer=IamAdminService__pb2.FindUsersResponse.SerializeToString,
            ),
            'resetPassword': grpc.unary_unary_rpc_method_handler(
                    servicer.resetPassword,
                    request_deserializer=IamAdminService__pb2.ResetUserPassword.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'deleteUser': grpc.unary_unary_rpc_method_handler(
                    servicer.deleteUser,
                    request_deserializer=IamAdminService__pb2.UserSearchRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'deleteUserRoles': grpc.unary_unary_rpc_method_handler(
                    servicer.deleteUserRoles,
                    request_deserializer=IamAdminService__pb2.DeleteUserRolesRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'updateUserProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.updateUserProfile,
                    request_deserializer=UserManagementService__pb2.UserProfileRequest.FromString,
                    response_serializer=UserProfileService__pb2.UserProfile.SerializeToString,
            ),
            'getUserProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.getUserProfile,
                    request_deserializer=UserManagementService__pb2.UserProfileRequest.FromString,
                    response_serializer=UserProfileService__pb2.UserProfile.SerializeToString,
            ),
            'deleteUserProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.deleteUserProfile,
                    request_deserializer=UserManagementService__pb2.UserProfileRequest.FromString,
                    response_serializer=UserProfileService__pb2.UserProfile.SerializeToString,
            ),
            'getAllUserProfilesInTenant': grpc.unary_unary_rpc_method_handler(
                    servicer.getAllUserProfilesInTenant,
                    request_deserializer=UserManagementService__pb2.UserProfileRequest.FromString,
                    response_serializer=UserProfileService__pb2.GetAllUserProfilesResponse.SerializeToString,
            ),
            'linkUserProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.linkUserProfile,
                    request_deserializer=UserManagementService__pb2.LinkUserProfileRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
            'getUserProfileAuditTrails': grpc.unary_unary_rpc_method_handler(
                    servicer.getUserProfileAuditTrails,
                    request_deserializer=UserProfileService__pb2.GetUpdateAuditTrailRequest.FromString,
                    response_serializer=UserProfileService__pb2.GetUpdateAuditTrailResponse.SerializeToString,
            ),
            'synchronizeUserDBs': grpc.unary_unary_rpc_method_handler(
                    servicer.synchronizeUserDBs,
                    request_deserializer=UserManagementService__pb2.SynchronizeUserDBRequest.FromString,
                    response_serializer=IamAdminService__pb2.OperationStatus.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'org.apache.custos.user.management.service.UserManagementService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def registerUser(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.user.management.service.UserManagementService/registerUser',
            IamAdminService__pb2.RegisterUserRequest.SerializeToString,
            IamAdminService__pb2.RegisterUserResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def registerAndEnableUsers(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.user.management.service.UserManagementService/registerAndEnableUsers',
            IamAdminService__pb2.RegisterUsersRequest.SerializeToString,
            IamAdminService__pb2.RegisterUsersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def addUserAttributes(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.user.management.service.UserManagementService/addUserAttributes',
            IamAdminService__pb2.AddUserAttributesRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def deleteUserAttributes(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.user.management.service.UserManagementService/deleteUserAttributes',
            IamAdminService__pb2.DeleteUserAttributeRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def enableUser(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.user.management.service.UserManagementService/enableUser',
            IamAdminService__pb2.UserSearchRequest.SerializeToString,
            IamAdminService__pb2.UserRepresentation.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def disableUser(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.user.management.service.UserManagementService/disableUser',
            IamAdminService__pb2.UserSearchRequest.SerializeToString,
            IamAdminService__pb2.UserRepresentation.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def grantAdminPrivileges(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.user.management.service.UserManagementService/grantAdminPrivileges',
            IamAdminService__pb2.UserSearchRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def removeAdminPrivileges(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.user.management.service.UserManagementService/removeAdminPrivileges',
            IamAdminService__pb2.UserSearchRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def addRolesToUsers(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.user.management.service.UserManagementService/addRolesToUsers',
            IamAdminService__pb2.AddUserRolesRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def isUserEnabled(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.user.management.service.UserManagementService/isUserEnabled',
            IamAdminService__pb2.UserSearchRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def isUsernameAvailable(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.user.management.service.UserManagementService/isUsernameAvailable',
            IamAdminService__pb2.UserSearchRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getUser(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.user.management.service.UserManagementService/getUser',
            IamAdminService__pb2.UserSearchRequest.SerializeToString,
            IamAdminService__pb2.UserRepresentation.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def findUsers(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.user.management.service.UserManagementService/findUsers',
            IamAdminService__pb2.FindUsersRequest.SerializeToString,
            IamAdminService__pb2.FindUsersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def resetPassword(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.user.management.service.UserManagementService/resetPassword',
            IamAdminService__pb2.ResetUserPassword.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def deleteUser(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.user.management.service.UserManagementService/deleteUser',
            IamAdminService__pb2.UserSearchRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def deleteUserRoles(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.user.management.service.UserManagementService/deleteUserRoles',
            IamAdminService__pb2.DeleteUserRolesRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def updateUserProfile(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.user.management.service.UserManagementService/updateUserProfile',
            UserManagementService__pb2.UserProfileRequest.SerializeToString,
            UserProfileService__pb2.UserProfile.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getUserProfile(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.user.management.service.UserManagementService/getUserProfile',
            UserManagementService__pb2.UserProfileRequest.SerializeToString,
            UserProfileService__pb2.UserProfile.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def deleteUserProfile(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.user.management.service.UserManagementService/deleteUserProfile',
            UserManagementService__pb2.UserProfileRequest.SerializeToString,
            UserProfileService__pb2.UserProfile.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getAllUserProfilesInTenant(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.user.management.service.UserManagementService/getAllUserProfilesInTenant',
            UserManagementService__pb2.UserProfileRequest.SerializeToString,
            UserProfileService__pb2.GetAllUserProfilesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def linkUserProfile(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.user.management.service.UserManagementService/linkUserProfile',
            UserManagementService__pb2.LinkUserProfileRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def getUserProfileAuditTrails(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.user.management.service.UserManagementService/getUserProfileAuditTrails',
            UserProfileService__pb2.GetUpdateAuditTrailRequest.SerializeToString,
            UserProfileService__pb2.GetUpdateAuditTrailResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def synchronizeUserDBs(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.user.management.service.UserManagementService/synchronizeUserDBs',
            UserManagementService__pb2.SynchronizeUserDBRequest.SerializeToString,
            IamAdminService__pb2.OperationStatus.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
