/* tslint:disable:max-classes-per-file */
/* tslint:disable:variable-name */
/* tslint:disable:no-trailing-whitespace */
/* tslint:disable:no-consecutive-blank-lines */
/* tslint:disable:no-namespace */
/* tslint:disable:member-access */
/* tslint:disable:typedef-whitespace */
/* tslint:disable:no-internal-module */

declare module EVA.Admin {
  
  export class AdminCreateModule extends EVA.API.RequestMessageGeneric<EVA.Admin.AdminCreateModuleResponse> {
    Name : string; 
    Code : string; 
    IsActive : boolean; 
    Data : any; 
  }
  
  export class AdminCreateModuleResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }
  
  export class AdminDeleteModule extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }
  
  export class AdminGetAllModules extends EVA.API.RequestMessageGeneric<EVA.Admin.AdminGetAllModulesResponse> {
  }
  
  export class AdminGetAllModulesResponse extends EVA.API.ResponseMessage {
    Modules : EVA.Admin.AdminGetAllModulesResponseModuleDto[]; 
  }
  
  export class AdminGetModuleByID extends EVA.API.RequestMessageGeneric<EVA.Admin.AdminGetModuleByIDResponse> {
    ID : number; // Int32
  }
  
  export class AdminGetModuleByIDResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    Name : string; 
    Code : string; 
    IsActive : boolean; 
    Data : any; 
  }
  
  export class AdminListModules extends EVA.API.RequestMessageGeneric<EVA.Admin.AdminListModulesResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Admin.ListModulesFilter>; 
  }
  
  export class AdminListModulesResponse extends EVA.API.PagedResultResponse<EVA.Admin.AdminListModulesResponseModuleDto> {
  }
  
  export class AdminUpdateModule extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Name : string; 
    Code : string; 
    IsActive : boolean; 
    Data : any; 
  }
  
  export class AdminUpdateModuleFunctionalities extends EVA.API.RequestMessageWithEmptyResponse {
    ModuleID : number; // Int32
    Functionalities : EVA.Admin.AdminUpdateModuleFunctionalitiesModuleFunctionalityDto[]; 
  }
  
  export class ListModulesFilter {
    Name : string; 
    Code : string; 
    IsActive? : boolean; 
  }
  
  export class AdminGetAllModulesResponseModuleDto {
    ID : number; // Int32
    Name : string; 
    Code : string; 
    IsActive : boolean; 
    Data : any; 
    Functionalities : EVA.Admin.AdminGetAllModulesResponseModuleFunctionalityDto[]; 
  }
  
  export class AdminListModulesResponseModuleDto {
    ID : number; // Int32
    Name : string; 
    Code : string; 
    IsActive : boolean; 
    Data : any; 
  }
  
  export class AdminGetAllModulesResponseModuleFunctionalityDto {
    Functionality : string; 
    FunctionalityScope : EVA.Framework.FunctionalityScope; 
  }
  
  export class AdminUpdateModuleFunctionalitiesModuleFunctionalityDto {
    Functionality : string; 
    FunctionalityScope : EVA.Framework.FunctionalityScope; 
  }
  
}