export enum OperationType { AND = "AND" , OR = "OR" } export interface UserPasswordSignupInput { email ? : string ; phone ? : string ; password : string ; firstName : string ; middleName ? : string ; lastName : string ; } export interface UserOTPSignupInput { email ? : string ; phone : string ; firstName : string ; middleName ? : string ; lastName : string ; } export interface UserPasswordLoginInput { username : string ; password : string ; } export interface UserOTPLoginInput { username : string ; otp : string ; } export interface UserPasswordInput { currentPassword : string ; newPassword : string ; } export interface RefreshTokenInput { refreshToken : string ; } export interface GenerateOtpInput { phone : string ; } export interface Enable2FAInput { code : string ; } export interface NewEntityInput { name : string ; } export interface UpdateEntityInput { name : string ; } export interface UpdateEntityPermissionInput { permissions : string [ ] ; } export interface NewGroupInput { name : string ; } export interface UpdateGroupInput { name : string ; } export interface UpdateGroupPermissionInput { permissions : string [ ] ; } export interface NewPermissionInput { name : string ; } export interface UpdatePermissionInput { name : string ; } export interface UpdateUserInput { firstName ? : string ; middleName ? : string ; lastName ? : string ; } export interface UpdateUserPermissionInput { permissions : string [ ] ; } export interface UpdateUserGroupInput { groups : string [ ] ; } export interface UserPermissionsVerification { permissions : string [ ] ; operation ? : OperationType ; } export interface IMutation { passwordLogin ( input ) : TokenResponse | Promise < TokenResponse > ; passwordSignup ( input ) : UserSignupResponse | Promise < UserSignupResponse > ; otpLogin ( input ) : TokenResponse | Promise < TokenResponse > ; otpSignup ( input ) : UserSignupResponse | Promise < UserSignupResponse > ; changePassword ( input ) : User | Promise < User > ; refresh ( input ) : TokenResponse | Promise < TokenResponse > ; logout ( ) : string | Promise < string > ; generateOtp ( input ? ) : string | Promise < string > ; createEntity ( input ) : Entity | Promise < Entity > ; updateEntity ( id , input ) : Entity | Promise < Entity > ; deleteEntity ( id ) : Entity | Promise < Entity > ; updateEntityPermissions ( id , input ) : EntityPermission [ ] | Promise < EntityPermission [ ] > ; createGroup ( input ) : Group | Promise < Group > ; updateGroup ( id , input ) : Group | Promise < Group > ; deleteGroup ( id ) : Group | Promise < Group > ; updateGroupPermissions ( id , input ) : GroupPermission [ ] | Promise < GroupPermission [ ] > ; createPermission ( input ) : Permission | Promise < Permission > ; updatePermission ( id , input ) : Permission | Promise < Permission > ; deletePermission ( id ) : Permission | Promise < Permission > ; updateUser ( id , input ) : User | Promise < User > ; deleteUser ( id ) : User | Promise < User > ; updateUserPermissions ( id , input ) : UserPermissions [ ] | Promise < UserPermissions [ ] > ; updateUserGroups ( id , input ) : UserGroupResponse [ ] | Promise < UserGroupResponse [ ] > ; } export interface TokenResponse { refreshToken : string ; accessToken : string ; } export interface UserSignupResponse { id : string ; email ? : string ; phone ? : string ; firstName : string ; middleName ? : string ; lastName : string ; } export interface Entity { id : string ; name : string ; } export interface EntityPermission { id : string ; name : string ; } export interface IQuery { getEntities ( ) : Entity [ ] | Promise < Entity [ ] > ; getEntity ( id ) : Entity | Promise < Entity > ; getEntityPermissions ( id ) : EntityPermission [ ] | Promise < EntityPermission [ ] > ; getGroups ( ) : Group [ ] | Promise < Group [ ] > ; getGroup ( id ) : Group | Promise < Group > ; getGroupPermissions ( id ) : GroupPermission [ ] | Promise < GroupPermission [ ] > ; getPermissions ( ) : Permission [ ] | Promise < Permission [ ] > ; getPermission ( id ) : Permission | Promise < Permission > ; getUsers ( ) : User [ ] | Promise < User [ ] > ; getUser ( id ) : User | Promise < User > ; getUserGroups ( id ) : UserGroupResponse [ ] | Promise < UserGroupResponse [ ] > ; getUserPermissions ( id ) : UserPermissions [ ] | Promise < UserPermissions [ ] > ; verifyUserPermission ( params ) : boolean | Promise < boolean > ; } export interface Group { id : string ; name : string ; } export interface GroupPermission { id : string ; name : string ; } export interface Permission { id : string ; name : string ; } export interface User { id : string ; email ? : string ; phone ? : string ; firstName : string ; middleName ? : string ; lastName : string ; } export interface UserGroupResponse { id : string ; name : string ; } export interface UserPermissions { id : string ; name : string ; }