/* 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.Devices.StatusChecker {
  
  export class DeviceStatusSummary {
    ID : number; // Int32
    Name : string; 
    Type : string; 
    Status : number; // Int32
    ModificationTime? : string; // DateTime, nullable
  }
  
  export class ImAlive extends EVA.API.RequestMessageWithEmptyResponse {
    MacAddress : string; 
  }
  
  export class ListOrganizationUnitsWithDeviceStatus extends EVA.API.RequestMessageGeneric<EVA.Devices.StatusChecker.ListOrganizationUnitsWithDeviceStatusResponse> {
  }
  
  export class ListOrganizationUnitsWithDeviceStatusResponse extends EVA.API.ResponseMessage {
    OrganizationUnits : EVA.Devices.StatusChecker.OrganizationUnitDeviceStatus[]; 
  }
  
  export class ListOrganizationUnitWithDeviceDetails extends EVA.API.RequestMessageGeneric<EVA.Devices.StatusChecker.ListOrganizationUnitWithDeviceDetailsResponse> {
    ID : number; // Int32
  }
  
  export class ListOrganizationUnitWithDeviceDetailsResponse extends EVA.API.ResponseMessage {
    OrganizationUnit : EVA.Devices.StatusChecker.OrganizationUnitDeviceStatus; 
  }
  
  export class OrganizationUnitDeviceStatus {
    ApplicationID : number; // Int32
    ID : number; // Int32
    Type : EVA.Framework.OrganizationUnitTypes; 
    Name : string; 
    Latitude? : number; // Double, nullable
    Longitude? : number; // Double, nullable
    Status : number; // Int32
    Devices : EVA.Devices.StatusChecker.DeviceStatusSummary[]; 
  }
  
}