/* 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.UserTasks {
  
  export class AddLabelToFullStockCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.AddLabelToFullStockCountResponse> {
    FullStockCountID : number; // Int32
    StockLabelID : number; // Int32
    Name : string; 
  }
  
  export class AddLabelToFullStockCountResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    UserTaskID : number; // Int32
  }
  
  export class AddProductToFullStockCountLabel extends EVA.API.RequestMessageGeneric<EVA.UserTasks.AddProductToFullStockCountLabelResponse> {
    ID : number; // Int32
    ProductID : number; // Int32
    Quantity : number; // Int32
  }
  
  export class AddProductToFullStockCountLabelResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    PreviousQuantity : number; // Int32
  }
  
  export class AvailableUserTaskDto {
    ID : number; // Int32
    Description : string; 
    Priority : number; // Int32
    User : EVA.Core.UserDto; 
    Type : EVA.Core.UserTaskTypeDto; 
    SubType : EVA.Framework.EnumDto; 
    CreationTime : string; // DateTime
    ExpectedTimeToComplete? : any; // TimeSpan, nullable
    Deadline? : string; // DateTime, nullable
    CanBeIgnored : boolean; 
    Data : any; 
  }
  
  export class CancelFullStockCount extends EVA.API.RequestMessageWithEmptyResponse {
    UserTaskID : number; // Int32
  }
  
  export class CancelFullStockCountLabel extends EVA.API.RequestMessageWithEmptyResponse {
    UserTaskID : number; // Int32
  }
  
  export class CancelUserTask extends EVA.API.RequestMessageGeneric<EVA.UserTasks.CancelUserTaskResponse> {
    TaskID : number; // Int32
    UserID? : number; // Int32, nullable
  }
  
  export class CancelUserTaskResponse extends EVA.API.ResponseMessage {
    Success : boolean; 
  }
  
  export class CanProcessInitialCycleCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.CanProcessInitialCycleCountResponse> {
    InitialCycleCountID : number; // Int32
  }
  
  export class CanProcessInitialCycleCountResponse extends EVA.API.ResponseMessage {
    CanProcess : boolean; 
  }
  
  export class CompleteCycleCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.CompleteCycleCountResponse> {
    WorkSet : EVA.UserTasks.CycleCountWorkSet; 
  }
  
  export class CompleteCycleCountResponse extends EVA.API.ResponseMessage {
    Results : EVA.UserTasks.CompleteCycleCountStockLabelResult[]; 
  }
  
  export class CompleteCycleCountStockLabelResult {
    OverallResult : EVA.UserTasks.CycleCountAttemptResult; 
    StockLabel : number; // Int32
    ExpectedQuantity? : number; // Int32, nullable
    CountedQuantity : number; // Int32
  }
  
  export class CompleteFullStockCount extends EVA.API.RequestMessageWithEmptyResponse {
    UserTaskID : number; // Int32
    CycleCountProductIDs : number[]; 
  }
  
  export class CompleteFullStockCountLabel extends EVA.API.RequestMessageWithEmptyResponse {
    UserTaskID : number; // Int32
    Products : { [ key : number ] : number }; 
  }
  
  export class CompletePriceChange extends EVA.API.RequestMessageWithEmptyResponse {
    Task : EVA.UserTasks.PriceChangeWorkSet; 
  }
  
  export class CompleteReservationCleanup extends EVA.API.RequestMessageWithEmptyResponse {
    Task : EVA.UserTasks.ReservationCleanupWorkSet; 
    CreateNewTaskForRemainingLines : boolean; 
  }
  
  export class CompleteReservationDeviationTask extends EVA.API.RequestMessageGeneric<EVA.UserTasks.CompleteReservationDeviationTaskResponse> {
    WorkSet : EVA.UserTasks.ReservationDeviationWorkSet; 
  }
  
  export class CompleteReservationDeviationTaskResponse extends EVA.API.ResponseMessage {
    Retry : boolean; 
  }
  
  export class CompleteStockMovementFollowUp extends EVA.API.RequestMessageWithEmptyResponse {
    WorkSet : EVA.UserTasks.StockMovementFollowUpWorkSet; 
  }
  
  export class CompleteStockReplenishment extends EVA.API.RequestMessageWithEmptyResponse {
    WorkSet : EVA.UserTasks.StockReplenishmentWorkSet; 
  }
  
  export class CompleteStockReservationTask extends EVA.API.RequestMessageWithEmptyResponse {
    Task : EVA.UserTasks.StockReservationTaskDto; 
    // Station to print the receipt on
    StationID? : number; // Int32, nullable
    // Should we print a receipt? Default true
    PrintReceipt? : boolean; 
  }
  
  export class CompleteUserTask extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    WorkSet : EVA.UserTasks.UserTaskWorkSet; 
  }
  
  export class CompleteValueAddedLogisticTask extends EVA.API.RequestMessageWithEmptyResponse {
    UserTaskID : number; // Int32
  }
  
  export enum CompleteZonedCycleCountCompletionTypes {
    AcceptPreCount = 0,
    Recount = 1,
  }
  
  export class CompleteZonedCycleCountPreCount extends EVA.API.RequestMessageWithEmptyResponse {
    UserTaskID : number; // Int32
    Results : EVA.UserTasks.CompleteZonedCycleCountPreCountResult[]; 
  }
  
  export class CompleteZonedCycleCountPreCountResult {
    StockLabelID : number; // Int32
    CountedQuantity? : number; // Int32, nullable
    Resources : { [ key : string ] : string }[]; 
  }
  
  export class CompleteZonedCycleCounts extends EVA.API.RequestMessageWithEmptyResponse {
    ToComplete : EVA.UserTasks.ZonedCycleCountToComplete[]; 
    CompletionType : EVA.UserTasks.CompleteZonedCycleCountCompletionTypes; 
  }
  
  export class CountProductForInitialCycleCount extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    LabelID : number; // Int32
    ProductID : number; // Int32
    Quantity : number; // Int32
    Resources : { [ key : string ] : string }; 
  }
  
  export class CountStockLabelForZonedCycleCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.CountStockLabelForZonedCycleCountResponse> {
    UserTaskID : number; // Int32
    StockLabelID : number; // Int32
    CountedQuantity : number; // Int32
    Resources : { [ key : string ] : string }[]; 
  }
  
  export class CountStockLabelForZonedCycleCountResponse extends EVA.API.ResponseMessage {
    CountResult : EVA.UserTasks.ZonedCycleCountResultTypes; 
    IsCompleted : boolean; 
  }
  
  export class CreateCycleCountZone extends EVA.API.RequestMessageWithEmptyResponse {
    Name : string; 
    Description : string; 
  }
  
  export class CreateCycleCountZoneGroup extends EVA.API.RequestMessageWithEmptyResponse {
    Name : string; 
    OrganizationUnitSetID : number; // Int32
    ZoneIDs : number[]; 
  }
  
  export class CreateFullStockCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.CreateFullStockCountResponse> {
    RecountInterval? : number; // Int32, nullable
    CreateFullStockCountLabelsForShelves? : boolean; 
  }
  
  export class CreateFullStockCountResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    UserTaskID : number; // Int32
  }
  
  export class CreateInitialCycleCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.CreateInitialCycleCountResponse> {
  }
  
  export class CreateInitialCycleCountResponse extends EVA.API.ResponseMessage {
    Result : EVA.UserTasks.InitialCycleCountDto; 
  }
  
  export class CreateManualCycleCount extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    ProductID : number; // Int32
  }
  
  export class CreateStockReplenishmentTask extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID : number; // Int32
    ProductID : number; // Int32
    Quantity : number; // Int32
    Type : EVA.UserTasks.StockReplenishmentType; 
  }
  
  export class CreateStockReplenishmentTasks extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID : number; // Int32
    Type : EVA.UserTasks.StockReplenishmentType; 
    Products : { [ key : number ] : number }; 
  }
  
  export class CreateUserTask extends EVA.API.RequestMessageWithEmptyResponse {
    UserID? : number; // Int32, nullable
    OrganizationUnitID : number; // Int32
    TypeID : number; // Int32
    Deadline? : string; // DateTime, nullable
    ExpectedTimeToComplete? : any; // TimeSpan, nullable
  }
  
  export class CreateUserTaskSchedule extends EVA.API.RequestMessageWithEmptyResponse {
    TypeID : number; // Int32
    OrganizationUnitTypeID? : number; // Int32, nullable
    OrganizationUnitID? : number; // Int32, nullable
    Description : string; 
    Deadline : any; // TimeSpan
    CronExpression : string; 
    ApplicationID? : number; // Int32, nullable
  }
  
  export class CreateUserTaskType extends EVA.API.RequestMessageGeneric<EVA.UserTasks.CreateUserTaskTypeResponse> {
    Name : string; 
    Description : string; 
    Configuration : string; 
    DefaultPriority : number; // Int32
    DefaultRequired : boolean; 
  }
  
  export class CreateUserTaskTypeOrganizationUnitSet extends EVA.API.RequestMessageGeneric<EVA.UserTasks.UserTaskTypeOrganizationUnitSetResponse> {
    UserTaskTypeID : number; // Int32
    OrganizationUnitSetID : number; // Int32
    Required : boolean; 
  }
  
  export class CreateUserTaskTypeResponse extends EVA.API.ResponseMessage {
    UserTaskType : EVA.Core.UserTaskTypeDto; 
  }
  
  export class CreateZonedCycleCount extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID : number; // Int32
    ProductID : number; // Int32
  }
  
  export class CreateZonedCycleCountPlan extends EVA.API.RequestMessageGeneric<EVA.UserTasks.CreateZonedCycleCountPlanResponse> {
    Date : string; // DateTime
    Description : string; 
    ProductSearchModel : EVA.UserTasks.ZonedCycleCountScheduleProductSearchModel; 
    OrganizationUnitFilter : EVA.UserTasks.ZonedCycleCountScheduleOrganizationUnitsFilter; 
  }
  
  export class CreateZonedCycleCountPlanResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }
  
  export class CreateZonedCycleCounts extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitIDs : number[]; 
    ProductIDs : number[]; 
  }
  
  export class CreateZonedCycleCountsByQuery extends EVA.API.RequestMessageWithEmptyResponse {
    Query : string; 
    Filters : { [ key : string ] : EVA.Core.FilterModel }; 
    OrganizationUnitFilter : EVA.UserTasks.CreateZonedCycleCountsByQueryOrganizationUnitFilterModel; 
    OrganizationUnitSetID? : number; // Int32, nullable
    // Obsolete, please use the OrganizationUnitFilter
    OrganizationUnitIDs : number[]; 
  }
  
  export class CreateZonedCycleCountSchedule extends EVA.API.RequestMessageGeneric<EVA.UserTasks.CreateZonedCycleCountScheduleResponse> {
    OrganizationUnitID : number; // Int32
    Description : string; 
    CycleCountIntervalInDays : number; // Int32
    ProductSearchModel : EVA.UserTasks.ZonedCycleCountScheduleProductSearchModel; 
  }
  
  export class CreateZonedCycleCountScheduleResponse extends EVA.API.CreateResponse {
  }
  
  export enum CycleCountAttemptResult {
    None = 0,
    CountAgain = 1,
    Finished = 2,
    FinishedWithDeviation = 3,
    CompleteResource = 5,
  }
  
  export class GetCycleCountDetailResponseCycleCountDto {
    ID : number; // Int32
    StockLabel : number; // Int32
    ProductID? : number; // Int32, nullable
    Product : EVA.Core.ProductDto; 
    UserTaskID : number; // Int32
    UserTask : EVA.Core.UserTaskDto; 
    IsCompleted : boolean; 
    UserID? : number; // Int32, nullable
    ResourceID? : number; // Int32, nullable
    Results : EVA.UserTasks.CycleCountResultDto[]; 
    Result : EVA.UserTasks.CycleCountResults; 
    IsActive : boolean; 
    CreationTime : string; // DateTime
  }
  
  export class ListCycleCountsResponseCycleCountDto {
    ID : number; // Int32
    StockLabel : number; // Int32
    ProductID? : number; // Int32, nullable
    Product : EVA.Core.ProductDto; 
    UserTaskID : number; // Int32
    UserTask : EVA.Core.UserTaskDto; 
    IsCompleted : boolean; 
    UserID? : number; // Int32, nullable
    ResourceID? : number; // Int32, nullable
    Results : EVA.UserTasks.CycleCountResultDto[]; 
    Result : EVA.UserTasks.CycleCountResults; 
    IsActive : boolean; 
    CreationTime : string; // DateTime
  }
  
  export class CycleCountResultDto {
    CycleCountID : number; // Int32
    ExpectedQuantity : number; // Int32
    CountedQuantity : number; // Int32
    ResourceID? : number; // Int32, nullable
    StockLabelID : number; // Int32
    StockLabel : number; // Int32
    ID : number; // Int32
    CreatedByID? : number; // Int32, nullable
    CreatedBy : EVA.Core.UserDto; 
    CreationTime : string; // DateTime
    StockLabelDescription : string; 
  }
  
  export enum CycleCountResults {
    New = 0,
    InProgress = 1,
    Deviated = 2,
    Correct = 3,
    Unknown = 4,
  }
  
  export class CycleCountWorkSet {
    UserTaskID : number; // Int32
    ProductID : number; // Int32
    Product : EVA.Core.ProductDto; 
    OrganizationUnitID : number; // Int32
    OrganizationUnit : EVA.Core.OrganizationUnitDto; 
    RequiredResourceTypes : EVA.Core.StockResourceTypeDto[]; 
    StockLabels : EVA.UserTasks.StockLabelToCycleCount[]; 
  }
  
  export class CycleCountWorkSetLine {
    CountedQuantity : number; // Int32
    Resource : EVA.UserTasks.ResourceToCycleCount; 
    NewResources : { [ key : string ] : string }; 
  }
  
  export class CycleCountZoneDto {
    ID : number; // Int32
    Name : string; 
    Description : string; 
  }
  
  export class ListCycleCountZoneGroupsResponseCycleCountZoneGroupDto {
    ID : number; // Int32
    Name : string; 
    OrganizationUnitSetID : number; // Int32
    OrganizationUnitSetName : string; 
    Zones : EVA.Framework.EnumDto[]; 
  }
  
  export class CycleCountZonesForOrganizationUnitDto {
    OrganizationUnitID : number; // Int32
    OrganizationUnitName : string; 
    Zones : EVA.UserTasks.CycleCountZoneDto[]; 
  }
  
  export class DeactivateUserTask extends EVA.API.RequestMessageWithEmptyResponse {
    UserTaskIDs : number[]; 
  }
  
  export class DeactivateZonedCycleCount extends EVA.API.RequestMessageWithEmptyResponse {
    UserTaskIDs : number[]; 
  }
  
  export class DeleteCycleCountZone extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }
  
  export class DeleteCycleCountZoneGroup extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }
  
  export class DeleteInitialCycleCountResult extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    ProductID : number; // Int32
    StockLabel : number; // Int32
    ResourceID? : number; // Int32, nullable
    LabelID : number; // Int32
  }
  
  export class DeleteUserTaskTypeOrganizationUnitSet extends EVA.API.RequestMessageWithEmptyResponse {
    UserTaskTypeID : number; // Int32
    OrganizationUnitSetID : number; // Int32
  }
  
  export class DeleteZonedCycleCountPlan extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }
  
  export class DeleteZonedCycleCountSchedule extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }
  
  export class FullStockCountResult {
    FullStockCountLabelID : number; // Int32
    Name : string; 
    StockLabelID : number; // Int32
    StockLabelName : string; 
    UserID? : number; // Int32, nullable
    UserFullName : string; 
    ProductID : number; // Int32
    BackendID : string; 
    Quantity : number; // Int32
    Properties : any; 
    RecountUserID? : number; // Int32, nullable
    RecountUserFullName : string; 
    RecountQuantity? : number; // Int32, nullable
  }
  
  export class FullStockCountSummary {
    StockLabelID : number; // Int32
    StockLabelName : string; 
    ProductID : number; // Int32
    BackendID : string; 
    Properties : any; 
    CountQuantity : number; // Int32
    CurrentQuantity : number; // Int32
  }
  
  export enum FullStockCountType {
    Initial = 1,
    InProgress = 2,
  }
  
  export class GetCurrentInitialCycleCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetCurrentInitialCycleCountResponse> {
  }
  
  export class GetCurrentInitialCycleCountResponse extends EVA.API.ResponseMessage {
    Result : EVA.UserTasks.InitialCycleCountDto; 
  }
  
  export class GetCycleCountDetail extends EVA.API.GetRequestGeneric<EVA.UserTasks.GetCycleCountDetailResponse> {
  }
  
  export class GetCycleCountDetailResponse extends EVA.API.ResponseMessage {
    Result : EVA.UserTasks.GetCycleCountDetailResponseCycleCountDto; 
  }
  
  export class GetCycleCountSettings extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetCycleCountSettingsResponse> {
    OrganizationUnitID? : number; // Int32, nullable
  }
  
  export class GetCycleCountSettingsResponse extends EVA.API.ResponseMessage {
    OrganizationUnitID : number; // Int32
    GenerateCycleCountAfterNASC : boolean; 
    MaxCycleCountsPerShop : number; // Int32
    MaxCycleCountsPerShopPerDay : number; // Int32
    PastDueProductsOnly : boolean; 
    CycleCountDays : EVA.Framework.DaysOfWeek; 
    StockLabels : string[]; 
  }
  
  export class GetCycleCountZones extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetCycleCountZonesResponse> {
  }
  
  export class GetCycleCountZonesResponse extends EVA.API.ResponseMessage {
    Result : EVA.UserTasks.CycleCountZoneDto[]; 
  }
  
  export class GetFullStockCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetFullStockCountResponse> {
    UserTaskID : number; // Int32
  }
  
  export class GetFullStockCountResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    UserTaskID : number; // Int32
    RecountInterval : number; // Int32
    CreatedByFullName : string; 
    CreationTime : string; // DateTime
    Type : EVA.UserTasks.FullStockCountType; 
    Progress : number; // Decimal
    IsReady : boolean; 
  }
  
  export class GetInitialCycleCountLabel extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetInitialCycleCountLabelResponse> {
    LabelID : number; // Int32
  }
  
  export class GetInitialCycleCountLabelResponse extends EVA.API.ResponseMessage {
    Label : EVA.UserTasks.InitialCycleCountLabelDto; 
  }
  
  export class GetStatusForZonedCycleCountPreCounts extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetStatusForZonedCycleCountPreCountsResponse> {
    ZonedCycleCountUserTaskID? : number; // Int32, nullable
    PreCountUserTaskID? : number; // Int32, nullable
  }
  
  export class GetStatusForZonedCycleCountPreCountsResponse extends EVA.API.ResponseMessage {
    PreCounts : EVA.UserTasks.GetStatusForZonedCycleCountPreCountsResponsePreCountStatus[]; 
  }
  
  export class GetStockReservationTask extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetStockReservationTaskResponse> {
    OrderID : number; // Int32
  }
  
  export class GetStockReservationTaskResponse extends EVA.API.GetResponse<EVA.UserTasks.StockReservationTaskDto> {
  }
  
  export class GetUserTaskCounts extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetUserTaskCountsResponse> {
    UserTaskTypes : string[]; 
    // <br />Also include the already assigned tasks in the counts<br />
    IncludeAssignedTasks : boolean; 
  }
  
  export class GetUserTaskCountsResponse extends EVA.API.ResponseMessage {
    NumberOfTasks : number; // Int32
    DetailedNumberOfTasks : { [ key : string ] : EVA.UserTasks.GetUserTaskCountsResponseUserTaskCount }; 
  }
  
  export class GetUserTaskDetails extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetUserTaskDetailsResponse> {
    UserTaskID : number; // Int32
  }
  
  export class GetUserTaskDetailsResponse extends EVA.API.ResponseMessage {
    Details : EVA.UserTasks.UserTaskDetails; 
  }
  
  export class GetUserTaskTypeOrganizationUnitSet extends EVA.API.RequestMessageGeneric<EVA.UserTasks.UserTaskTypeOrganizationUnitSetResponse> {
    UserTaskTypeID : number; // Int32
    OrganizationUnitSetID : number; // Int32
  }
  
  export class GetUserTaskTypes extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetUserTaskTypesResponse> {
  }
  
  export class GetUserTaskTypesResponse extends EVA.API.ResponseMessage {
    Types : EVA.Core.UserTaskTypeDto[]; 
  }
  
  export class GetUserWhoDeletedCycleCountZoneAndMakeItGreatAgain extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetUserWhoDeletedCycleCountZoneAndMakeItGreatAgainResponse> {
    ID : number; // Int32
  }
  
  export class GetUserWhoDeletedCycleCountZoneAndMakeItGreatAgainResponse extends EVA.API.ResponseMessage {
    LastModifiedByID? : number; // Int32, nullable
    LastModificationTime? : string; // DateTime, nullable
  }
  
  export class GetValueAddedLogisticTasks extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetValueAddedLogisticTasksResponse> {
    OrderID? : number; // Int32, nullable
    OrderLineIDs : number[]; 
  }
  
  export class GetValueAddedLogisticTasksResponse extends EVA.API.ResponseMessage {
    OrderTasks : EVA.UserTasks.GetValueAddedLogisticTasksResponseModel[]; 
    OrderLineTasks : EVA.UserTasks.GetValueAddedLogisticTasksResponseModel[]; 
  }
  
  export class GetZonedCycleCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetZonedCycleCountResponse> {
    ID : number; // Int32
    IncludedFields : string[]; 
  }
  
  export class GetZonedCycleCountPlan extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetZonedCycleCountPlanResponse> {
    ID : number; // Int32
  }
  
  export class GetZonedCycleCountPlanResponse extends EVA.API.ResponseMessage {
    Result : EVA.UserTasks.ZonedCycleCountPlanDto; 
  }
  
  export class GetZonedCycleCountPreCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.GetZonedCycleCountPreCountResponse> {
    UserTaskID : number; // Int32
    IncludedFields : string[]; 
  }
  
  export class GetZonedCycleCountPreCountDto {
    CycleCountZone : EVA.Framework.EnumDto; 
    User : EVA.UserTasks.GetZonedCycleCountPreCountUserDto; 
    Results : EVA.UserTasks.GetZonedCycleCountPreCountResult[]; 
  }
  
  export class GetZonedCycleCountPreCountedQuantity {
    StockLabel : EVA.Framework.EnumDto; 
    CountedQuantity? : number; // Int32, nullable
  }
  
  export class GetZonedCycleCountPreCountResponseGetZonedCycleCountPreCountProduct {
    ID : number; // Int32
    CustomID : string; 
    Type : EVA.Core.ProductTypes; 
    Content : any; 
    UnitPriceInTax : number; // Decimal
    CurrencyID : string; 
  }
  
  export class GetZonedCycleCountPreCountResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    UserTaskID : number; // Int32
    CycleCountZone : EVA.Framework.EnumDto; 
    StockLabelsToCount : EVA.Framework.EnumDto[]; 
    Product : EVA.UserTasks.GetZonedCycleCountPreCountResponseGetZonedCycleCountPreCountProduct; 
    RequiredResourceTypes : EVA.Core.StockResourceTypeDto[]; 
  }
  
  export class GetZonedCycleCountPreCountResult {
    StockLabel : EVA.Framework.EnumDto; 
    CountedQuantity : number; // Int32
    CreationTime : string; // DateTime
    CurrentStock? : number; // Int32, nullable
  }
  
  export class GetZonedCycleCountPreCountUserDto {
    ID : number; // Int32
    Name : string; 
  }
  
  export class GetZonedCycleCountProduct {
    ID : number; // Int32
    CustomID : string; 
    Type : EVA.Core.ProductTypes; 
    Content : any; 
  }
  
  export class GetZonedCycleCountResponse extends EVA.API.ResponseMessage {
    StockLabelsToCount : EVA.Framework.EnumDto[]; 
    Product : EVA.UserTasks.GetZonedCycleCountProduct; 
    StockMutationsSincePreCount : EVA.UserTasks.GetZonedCycleCountStockMutation[]; 
    PreCounts : EVA.UserTasks.GetZonedCycleCountPreCountDto[]; 
    PreCountedQuantities : EVA.UserTasks.GetZonedCycleCountPreCountedQuantity[]; 
    StockMutationQuantitiesSincePreCount : EVA.UserTasks.GetZonedCycleCountStockMutationQuantity[]; 
    StockLabelQuantities : EVA.UserTasks.GetZonedCyleCountStockLabelQuantities[]; 
    ExpectedPreCountedQuantity? : number; // Int32, nullable
    PreCountedQuantity? : number; // Int32, nullable
  }
  
  export class GetZonedCycleCountStockMutation {
    StockLabel : EVA.Framework.EnumDto; 
    StockMutationReason : EVA.Framework.EnumDto; 
    MutationQuantity : number; // Int32
    CreationTime : string; // DateTime
  }
  
  export class GetZonedCycleCountStockMutationQuantity {
    TotalMutationQuantity : number; // Int32
    Since : string; // DateTime
    StockLabel : EVA.Framework.EnumDto; 
  }
  
  export class GetZonedCyleCountStockLabelQuantities {
    StockLabel : EVA.Framework.EnumDto; 
    CurrentQuantityOnHand : number; // Int32
    ExpectedQuantity : number; // Int32
    CountedQuantity : number; // Int32
    ModifiedQuantity? : number; // Int32, nullable
  }
  
  export class IgnoreUserTask extends EVA.API.RequestMessageWithEmptyResponse {
    UserTaskID : number; // Int32
  }
  
  export class InitialCycleCountDto {
    ID : number; // Int32
    Status : EVA.UserTasks.InitialCycleCountStatus; 
    OrganizationUnitID : number; // Int32
  }
  
  export class InitialCycleCountLabelDto {
    ID : number; // Int32
    Number : number; // Int32
    Status : EVA.UserTasks.InitialCycleCountLabelStatus; 
    StockLabel? : number; // Int32, nullable
    ItemPreCount? : number; // Int32, nullable
    ItemEndCount? : number; // Int32, nullable
    CreatedByID : number; // Int32
    CreationTime : string; // DateTime
    InitialCycleCount : EVA.UserTasks.InitialCycleCountDto; 
    PreCountedByFullName : string; 
    CountedByFullName : string; 
  }
  
  export enum InitialCycleCountLabelStatus {
    New = 0,
    PreCounted = 1,
    Counted = 2,
  }
  
  export enum InitialCycleCountStatus {
    New = 0,
    DetailCount = 1,
    Processing = 2,
    Finished = 3,
  }
  
  export class ListAvailableUserTasks extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ListAvailableUserTasksResponse> {
    // Return only UserTasks attached to this UserID
    UserID? : number; // Int32, nullable
    // Return only Started/Open UserTasks
    IsStarted? : boolean; 
    // Return only UserTasks of one of the specified types
    UserTaskTypes : string[]; 
    // Return only UserTasks with one of the specified subtypes
    UserTaskSubTypes : string[]; 
    // Filter for a specific UserTaskType.Name using a property name and a list of values.
    Filters : { [ key : string ] : { [ key : string ] : any[] } }; 
  }
  
  export class ListAvailableUserTasksResponse extends EVA.API.ResponseMessage {
    AvailableTasks : EVA.UserTasks.AvailableUserTaskDto[]; 
    Aggregations : { [ key : string ] : { [ key : string ] : EVA.UserTasks.UserTaskDataAggregation[] } }; 
  }
  
  export class ListCycleCountGroupsFilter {
    Name : string; 
    OrganizationUnitID? : number; // Int32, nullable
    OrganizationUnitSetID? : number; // Int32, nullable
    CycleCountZoneID? : number; // Int32, nullable
  }
  
  export class ListCycleCounts extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ListCycleCountsResponse> {
    ProductID? : number; // Int32, nullable
    StockLabel? : number; // Int32, nullable
    ResourceID? : number; // Int32, nullable
    OrganizationUnitID? : number; // Int32, nullable
    BackendID : string; 
    CreatedBy : string; 
    FromDate? : string; // DateTime, nullable
    ToDate? : string; // DateTime, nullable
    Result : EVA.UserTasks.CycleCountResults; 
    IsCompleted? : boolean; 
    PageConfig : EVA.Framework.PageConfig; 
    CustomID : string; 
  }
  
  export class ListCycleCountsResponse extends EVA.API.ResponseMessage {
    CycleCounts : EVA.Framework.PagedResultGeneric<EVA.UserTasks.ListCycleCountsResponseCycleCountDto>; 
  }
  
  export class ListCycleCountZoneGroups extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ListCycleCountZoneGroupsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.UserTasks.ListCycleCountGroupsFilter>; 
  }
  
  export class ListCycleCountZoneGroupsResponse extends EVA.API.PagedResultResponse<EVA.UserTasks.ListCycleCountZoneGroupsResponseCycleCountZoneGroupDto> {
  }
  
  export class ListCycleZonesForOrganizationUnits extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ListCycleZonesForOrganizationUnitsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.UserTasks.ListOrganizationUnitCycleCountZonesFilter>; 
  }
  
  export class ListCycleZonesForOrganizationUnitsResponse extends EVA.API.PagedResultResponse<EVA.UserTasks.CycleCountZonesForOrganizationUnitDto> {
  }
  
  export class ListFullStockCountDto {
    ID : number; // Int32
    RecountInterval : number; // Int32
    Type : EVA.UserTasks.FullStockCountType; 
    UserTaskID : number; // Int32
    UserID? : number; // Int32, nullable
    UserFullName : string; 
    OrganizationUnitID : number; // Int32
    OrganizationUnitName : string; 
    IsActive : boolean; 
    IsCompleted : boolean; 
  }
  
  export class ListFullStockCountLabelDto {
    ID : number; // Int32
    FullStockCountID : number; // Int32
    Name : string; 
    StockLabelID : number; // Int32
    StockLabelName : string; 
    IsRecount : boolean; 
    UserTaskID : number; // Int32
    UserID? : number; // Int32, nullable
    UserFullName : string; 
    IsActive : boolean; 
    IsCompleted : boolean; 
  }
  
  export class ListFullStockCountLabelProductDto {
    ProductID : number; // Int32
    BackendID : string; 
    Quantity : number; // Int32
    Properties : any; 
  }
  
  export class ListFullStockCountLabelProducts extends EVA.API.FilteredPagedResultRequest<EVA.UserTasks.ListFullStockCountLabelProductsFilter, EVA.UserTasks.ListFullStockCountLabelProductsResponse> {
    ID : number; // Int32
    IncludedProperties : string[]; 
  }
  
  export class ListFullStockCountLabelProductsFilter {
    ProductID? : number; // Int32, nullable
  }
  
  export class ListFullStockCountLabelProductsResponse extends EVA.API.PagedResultResponse<EVA.UserTasks.ListFullStockCountLabelProductDto> {
  }
  
  export class ListFullStockCountLabels extends EVA.API.FilteredPagedResultRequest<EVA.UserTasks.ListFullStockCountLabelsFilter, EVA.UserTasks.ListFullStockCountLabelsResponse> {
    ID : number; // Int32
  }
  
  export class ListFullStockCountLabelsFilter {
    UserID? : number; // Int32, nullable
    StockLabelID? : number; // Int32, nullable
    ShowInactiveTasks : boolean; 
    ShowCompletedTasks : boolean; 
  }
  
  export class ListFullStockCountLabelsResponse extends EVA.API.PagedResultResponse<EVA.UserTasks.ListFullStockCountLabelDto> {
  }
  
  export class ListFullStockCountResult extends EVA.API.FilteredPagedResultRequest<EVA.UserTasks.ListFullStockCountResultFilter, EVA.UserTasks.ListFullStockCountResultResponse> {
    ID : number; // Int32
    IncludedProperties : string[]; 
  }
  
  export class ListFullStockCountResultFilter {
    UserID? : number; // Int32, nullable
    StockLabelID? : number; // Int32, nullable
    ProductID? : number; // Int32, nullable
    OnlyShowDeviations : boolean; 
  }
  
  export class ListFullStockCountResultResponse extends EVA.API.PagedResultResponse<EVA.UserTasks.FullStockCountResult> {
  }
  
  export class ListFullStockCounts extends EVA.API.FilteredPagedResultRequest<EVA.UserTasks.ListFullStockCountsFilter, EVA.UserTasks.ListFullStockCountsResponse> {
  }
  
  export class ListFullStockCountsFilter {
    OrganizationUnitID? : number; // Int32, nullable
    UserID? : number; // Int32, nullable
    ShowInactiveTasks : boolean; 
    ShowCompletedTasks : boolean; 
  }
  
  export class ListFullStockCountsResponse extends EVA.API.PagedResultResponse<EVA.UserTasks.ListFullStockCountDto> {
  }
  
  export class ListFullStockCountSummary extends EVA.API.FilteredPagedResultRequest<EVA.UserTasks.ListFullStockCountSummaryFilter, EVA.UserTasks.ListFullStockCountSummaryResponse> {
    ID : number; // Int32
    IncludedProperties : string[]; 
  }
  
  export class ListFullStockCountSummaryFilter {
    StockLabelID? : number; // Int32, nullable
    ProductID? : number; // Int32, nullable
    OnlyShowDeviations : boolean; 
  }
  
  export class ListFullStockCountSummaryResponse extends EVA.API.PagedResultResponse<EVA.UserTasks.FullStockCountSummary> {
  }
  
  export class ListInitialCycleCountLabels extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ListInitialCycleCountLabelsResponse> {
    InitialCycleCountID : number; // Int32
    Start : number; // Int32
    Limit : number; // Int32
  }
  
  export class ListInitialCycleCountLabelsResponse extends EVA.API.ResponseMessage {
    Result : EVA.UserTasks.InitialCycleCountLabelDto[]; 
    Total : number; // Int32
  }
  
  export class ListInitialCycleCountResults extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ListInitialCycleCountResultsResponse> {
    Start : number; // Int32
    Limit : number; // Int32
    ShowAll : boolean; 
    ProductID? : number; // Int32, nullable
    CustomItemNumber : string; 
    StockLabel? : number; // Int32, nullable
    ResourceID? : number; // Int32, nullable
    LabelID? : number; // Int32, nullable
  }
  
  export class ListInitialCycleCountResultsResponse extends EVA.API.ResponseMessage {
    Results : EVA.UserTasks.StockWithInitialCycleCountResultDto[]; 
    Total : number; // Int32
  }
  
  export class ListOrganizationUnitCycleCountZonesFilter {
    OrganizationUnitID : number; // Int32
  }
  
  export class ListTasksForOrganization extends EVA.API.PagedResultRequest<EVA.UserTasks.ListTasksForOrganizationResponse> {
    UserTaskTypes : string[]; 
  }
  
  export class ListTasksForOrganizationResponse extends EVA.API.PagedResultResponse<EVA.Core.UserTaskDto> {
  }
  
  export class ListTasksThatBlockPeriodClosing extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ListTasksThatBlockPeriodClosingResponse> {
  }
  
  export class ListTasksThatBlockPeriodClosingResponse extends EVA.API.ResponseMessage {
    Tasks : EVA.Core.UserTaskDto[]; 
  }
  
  export class ListUsersWithCycleCountResults extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ListUsersWithCycleCountResultsResponse> {
  }
  
  export class ListUsersWithCycleCountResultsResponse extends EVA.API.ResponseMessage {
    Users : EVA.Core.UserDto[]; 
  }
  
  export class ListUserTaskTypeOrganizationUnitSets extends EVA.API.FilteredPagedResultRequest<EVA.Core.ListUserTaskTypeOrganizationUnitSetsFilter, EVA.UserTasks.ListUserTaskTypeOrganizationUnitSetsResponse> {
  }
  
  export class ListUserTaskTypeOrganizationUnitSetsResponse extends EVA.API.PagedResultResponse<EVA.Core.UserTaskTypeOrganizationUnitSetDto> {
  }
  
  export class ListZonedCycleCountPlans extends EVA.API.PagedResultRequest<EVA.UserTasks.ListZonedCycleCountPlansResponse> {
  }
  
  export class ListZonedCycleCountPlansResponse extends EVA.API.PagedResultResponse<EVA.UserTasks.ZonedCycleCountPlanDto> {
  }
  
  export class ListZonedCycleCounts extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ListZonedCycleCountsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.UserTasks.ListZonedCycleCountsFilter>; 
  }
  
  export class ListZonedCycleCountSchedules extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ListZonedCycleCountSchedulesResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.UserTasks.ListZonedCycleCountSchedulesFilter>; 
  }
  
  export class ListZonedCycleCountSchedulesFilter {
    Description : string; 
    OrganizationUnitID : number; // Int32
  }
  
  export class ListZonedCycleCountSchedulesResponse extends EVA.API.PagedResultResponse<EVA.UserTasks.ZonedCycleCountScheduleDto> {
  }
  
  export class ListZonedCycleCountsDto {
    ID : number; // Int32
    UserTaskID : number; // Int32
    IsCompleted : boolean; 
    IsActive : boolean; 
    UserID : number; // Int32
    UserName : string; 
    ResultStatus? : EVA.UserTasks.ZonedCycleCountResultStatus; 
    CreationTime : string; // DateTime
    StartTime? : string; // DateTime, nullable
    CompletionTime? : string; // DateTime, nullable
    ProductID : number; // Int32
    CustomID : string; 
    ProductBarcode : string; 
    ProductDisplayValue : string; 
    ExpectedPreCountedQuantity? : number; // Int32, nullable
    PreCountedQuantity? : number; // Int32, nullable
    DeviationPercentage? : number; // Double, nullable
    FinishedPreCountTasks : number; // Int32
    TotalPreCountTasks : number; // Int32
    PreCountProgression? : number; // Double, nullable
  }
  
  export class ListZonedCycleCountsFilter {
    OrganizationUnitID? : number; // Int32, nullable
    ProductID? : number; // Int32, nullable
    IsCompleted? : boolean; 
    InProgress? : boolean; 
    ResultStatus? : EVA.UserTasks.ZonedCycleCountResultStatus; 
    IsActive? : boolean; 
    UserTaskIDs : number[]; 
    FromDate? : string; // DateTime, nullable
    ToDate? : string; // DateTime, nullable
  }
  
  export class ListZonedCycleCountsResponse extends EVA.API.PagedResultResponse<EVA.UserTasks.ListZonedCycleCountsDto> {
  }
  
  export class MissingProductForInitialCycleCount extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    LabelID : number; // Int32
    Barcode : string; 
    Quantity : number; // Int32
    Photo : string; 
    PhotoMimeType : string; 
  }
  
  export class GetValueAddedLogisticTasksResponseModel {
    OrderLineID? : number; // Int32, nullable
    UserTaskID : number; // Int32
    Type : string; 
    Description : string; 
    Data : any; 
  }
  
  export class OrderLineToCancel {
    OrderLineID : number; // Int32
    QuantityToCancel : number; // Int32
  }
  
  export class OrderLineToOrder {
    OrderLineID : number; // Int32
    QuantityToOrder : number; // Int32
  }
  
  export class CreateZonedCycleCountsByQueryOrganizationUnitFilterModel {
    IDs : number[]; 
    BackendIDs : string[]; 
    CountryIDs : string[]; 
    StatusID? : number; // Int32, nullable
  }
  
  export class PreCountInitialCycleCountLabel extends EVA.API.RequestMessageWithEmptyResponse {
    LabelID : number; // Int32
    Quantity : number; // Int32
    StockLabelID : number; // Int32
  }
  
  export class GetStatusForZonedCycleCountPreCountsResponsePreCountStatus {
    CycleCountZone : EVA.Framework.EnumDto; 
    IsCompleted : boolean; 
    IsStarted : boolean; 
    UserID? : number; // Int32, nullable
    UserFullName : string; 
    CompletionTime? : string; // DateTime, nullable
    PreCountedQuantity? : number; // Int32, nullable
    CountResults : EVA.UserTasks.GetStatusForZonedCycleCountPreCountsResponsePreCountStatusResult[]; 
  }
  
  export class PriceChangeWorkSet {
    UserTaskID : number; // Int32
    PriceChangeTaskID : number; // Int32
    ProductID : number; // Int32
    ProductBackendID : string; 
    ProductName : string; 
    OriginalPrice : number; // Decimal
    CurrentPrice : number; // Decimal
    ProductCustomID : string; 
  }
  
  export class PrintFullStockCountLabels extends EVA.API.RequestMessageWithEmptyResponse {
    StationID : number; // Int32
    // Prints all labels for this count - required if FullStockCountLabelID is empty
    FullStockCountID? : number; // Int32, nullable
    // Prints just this label - required if FullStockCountID is empty
    FullStockCountLabelID? : number; // Int32, nullable
  }
  
  export class PrintStockReservationReceipt extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    StationID : number; // Int32
  }
  
  export class ProcessInitialCycleCountResults extends EVA.API.RequestMessageWithEmptyResponse {
  }
  
  export class ProduceInitialCycleCountLabels extends EVA.API.RequestMessageWithResourceResponse {
    Count : number; // Int32
    // The ID of the station, which will be used to determine what printer to use to print the bar codes
    StationID? : number; // Int32, nullable
    AsPDF : boolean; 
    // If this is set all the labels that've currently been created will be re-generated, but no new labels will be created in the process.
    ReprintLabels : boolean; 
    Destination : EVA.Core.MessageTemplateDestinations; 
  }
  
  export class ProduceZonedCycleCountHandout extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ProduceZonedCycleCountHandoutResponse> {
    CycleCountZoneIDs : number[]; 
    OrganizationUnitID : number; // Int32
    StationID? : number; // Int32, nullable
    Channel : EVA.Core.TemplateOutputChannel; 
  }
  
  export class ProduceZonedCycleCountHandoutResponse extends EVA.API.ResponseMessage {
    Url : string; 
  }
  
  export class ReplaceCycleCountZonesForOrganizationUnit extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID : number; // Int32
    CycleCountZoneIDs : number[]; 
  }
  
  export enum ReservationCleanupTaskLineTypes {
    ExpiredReservation = 0,
    Cancellation = 1,
  }
  
  export class ReservationCleanupWorkSet {
    UserTaskID : number; // Int32
    ReservationCleanupTaskID : number; // Int32
    Order : EVA.Core.OrderDto; 
    Lines : EVA.UserTasks.ReservationCleanupWorkSetOrderLine[]; 
  }
  
  export class ReservationCleanupWorkSetOrderLine {
    QuantityToReturn : number; // Int32
    QuantityReturned : number; // Int32
    NothingToReturn : boolean; 
    ReservationExpirationOverride? : string; // DateTime, nullable
    OrderLine : EVA.Core.OrderLineDto; 
  }
  
  export class ReservationDeviationWorkSet {
    TaskID : number; // Int32
    ProductID : number; // Int32
    Orders : EVA.Core.OrderDto[]; 
    OrderLineIDs : number[]; 
    QuantityToCancel : number; // Int32
    Product : EVA.Core.ProductDto; 
    QuantityToMoveToSellable : number; // Int32
    OrderLinesToCancel : EVA.UserTasks.OrderLineToCancel[]; 
    OrderLinesToOrder : EVA.UserTasks.OrderLineToOrder[]; 
    QuantityMovedBack : number; // Int32
  }
  
  export class ResourceToCycleCount {
    ResourceID : number; // Int32
    Resources : { [ key : string ] : string }; 
  }
  
  export class GetStatusForZonedCycleCountPreCountsResponsePreCountStatusResult {
    StockLabel : EVA.Framework.EnumDto; 
    CountedQuantity : number; // Int32
    CreationTime : string; // DateTime
  }
  
  export class SearchUserTasks extends EVA.API.RequestMessageGeneric<EVA.UserTasks.SearchUserTasksResponse> {
    Start : number; // Int32
    Limit : number; // Int32
    OrganizationUnitID : number; // Int32
    Filters : EVA.UserTasks.SearchUserTasksFilters; 
  }
  
  export class SearchUserTasksFilters {
    ShowCompleted : boolean; 
  }
  
  export class SearchUserTasksResponse extends EVA.API.ResponseMessage {
    Results : EVA.Core.UserTaskDto[]; 
  }
  
  export class SetCycleCountSettings extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID? : number; // Int32, nullable
    GenerateCycleCountAfterNASC? : boolean; 
    MaxCycleCountsPerShop? : number; // Int32, nullable
    MaxCycleCountsPerShopPerDay? : number; // Int32, nullable
    PastDueProductsOnly? : boolean; 
    CycleCountDays : EVA.Framework.DaysOfWeek; 
    StockLabels : string[]; 
  }
  
  export class StartCycleCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartCycleCountResponse> {
    TaskID : number; // Int32
  }
  
  export class StartCycleCountResponse extends EVA.API.ResponseMessage {
    WorkSet : EVA.UserTasks.CycleCountWorkSet; 
  }
  
  export class StartFullStockCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartFullStockCountResponse> {
    UserTaskID : number; // Int32
  }
  
  export class StartFullStockCountLabel extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartFullStockCountLabelResponse> {
    UserTaskID : number; // Int32
  }
  
  export class StartFullStockCountLabelResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    UserTaskID : number; // Int32
    FullStockCountID : number; // Int32
    Name : string; 
    StockLabelID : number; // Int32
    StockLabelName : string; 
    RecountProductID? : number; // Int32, nullable
    RecountQuantity? : number; // Int32, nullable
  }
  
  export class StartFullStockCountResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    UserTaskID : number; // Int32
    RecountInterval : number; // Int32
    Type : EVA.UserTasks.FullStockCountType; 
  }
  
  export class StartPriceChange extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartPriceChangeResponse> {
    UserTaskID : number; // Int32
  }
  
  export class StartPriceChangeResponse extends EVA.API.ResponseMessage {
    Task : EVA.UserTasks.PriceChangeWorkSet; 
  }
  
  export class StartReceiveShipment extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartReceiveShipmentResponse> {
    UserTaskID : number; // Int32
  }
  
  export class StartReceiveShipmentResponse extends EVA.API.ResponseMessage {
    ReceiveMethod : EVA.Core.ShipmentReceiveMethods; 
    IsCompleted : boolean; 
    WorkSet : EVA.Core.ReceiveShipmentWorkSet; 
  }
  
  export class StartReservationCleanup extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartReservationCleanupResponse> {
    UserTaskID : number; // Int32
  }
  
  export class StartReservationCleanupResponse extends EVA.API.ResponseMessage {
    Task : EVA.UserTasks.ReservationCleanupWorkSet; 
  }
  
  export class StartReservationDeviationTask extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartReservationDeviationTaskResponse> {
    TaskID : number; // Int32
    Force : boolean; 
  }
  
  export class StartReservationDeviationTaskResponse extends EVA.API.ResponseMessage {
    WorkSet : EVA.UserTasks.ReservationDeviationWorkSet; 
  }
  
  export class StartStockMovementFollowUp extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartStockMovementFollowUpResponse> {
    UserTaskID : number; // Int32
  }
  
  export class StartStockMovementFollowUpResponse extends EVA.API.ResponseMessage {
    WorkSet : EVA.UserTasks.StockMovementFollowUpWorkSet; 
  }
  
  export class StartStockReplenishment extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartStockReplenishmentResponse> {
    UserTaskIDs : number[]; 
  }
  
  export class StartStockReplenishmentResponse extends EVA.API.ResponseMessage {
    WorkSet : EVA.UserTasks.StockReplenishmentWorkSet; 
  }
  
  export class StartStockReservation extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartStockReservationResponse> {
    TaskID : number; // Int32
    Force : boolean; 
  }
  
  export class StartStockReservationResponse extends EVA.API.ResponseMessage {
    WorkSet : EVA.UserTasks.StockReservationWorkSet; 
  }
  
  export class StartUserTask extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartUserTaskResponse> {
    UserTaskID : number; // Int32
  }
  
  export class StartUserTaskResponse extends EVA.API.ResponseMessage {
    WorkSet : EVA.UserTasks.UserTaskWorkSet; 
  }
  
  export class StartZonedCycleCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartZonedCycleCountResponse> {
    UserTaskID : number; // Int32
    IncludedFields : string[]; 
  }
  
  export class StartZonedCycleCountPreCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.StartZonedCycleCountPreCountResponse> {
    UserTaskID : number; // Int32
    IncludedFields : string[]; 
  }
  
  export class StartZonedCycleCountPreCountDto {
    CycleCountZone : EVA.Framework.EnumDto; 
    User : EVA.UserTasks.StartZonedCycleCountPreCountUserDto; 
    Results : EVA.UserTasks.StartZonedCycleCountPreCountResult[]; 
    IsCompleted : boolean; 
  }
  
  export class StartZonedCycleCountPreCountedQuantity {
    StockLabel : EVA.Framework.EnumDto; 
    CountedQuantity? : number; // Int32, nullable
  }
  
  export class StartZonedCycleCountPreCountResponseStartZonedCycleCountPreCountProduct {
    ID : number; // Int32
    CustomID : string; 
    Type : EVA.Core.ProductTypes; 
    Content : any; 
    UnitPriceInTax : number; // Decimal
    CurrencyID : string; 
  }
  
  export class StartZonedCycleCountPreCountResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    UserTaskID : number; // Int32
    CycleCountZone : EVA.Framework.EnumDto; 
    StockLabelsToCount : EVA.Framework.EnumDto[]; 
    Product : EVA.UserTasks.StartZonedCycleCountPreCountResponseStartZonedCycleCountPreCountProduct; 
    RequiredResourceTypes : EVA.Core.StockResourceTypeDto[]; 
  }
  
  export class StartZonedCycleCountPreCountResult {
    StockLabel : EVA.Framework.EnumDto; 
    CountedQuantity : number; // Int32
    CreationTime : string; // DateTime
  }
  
  export class StartZonedCycleCountPreCountUserDto {
    ID : number; // Int32
    Name : string; 
  }
  
  export class StartZonedCycleCountProduct {
    ID : number; // Int32
    CustomID : string; 
    Type : EVA.Core.ProductTypes; 
    Content : any; 
    UnitPriceInTax : number; // Decimal
    CurrencyID : string; 
  }
  
  export class StartZonedCycleCountResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    UserTaskID : number; // Int32
    StockLabelsToCount : EVA.Framework.EnumDto[]; 
    Product : EVA.UserTasks.StartZonedCycleCountProduct; 
    StockMutationsSincePreCount : EVA.UserTasks.StartZonedCycleCountStockMutation[]; 
    StockMutationQuantitiesSincePreCount : EVA.UserTasks.StartZonedCycleCountStockMutationQuantity[]; 
    PreCounts : EVA.UserTasks.StartZonedCycleCountPreCountDto[]; 
    PreCountedQuantities : EVA.UserTasks.StartZonedCycleCountPreCountedQuantity[]; 
    CurrentStock : EVA.UserTasks.StartZonedCyleCountCurrentStock[]; 
    RequiredResourceTypes : EVA.Core.StockResourceTypeDto[]; 
    ExpectedPreCountedQuantity? : number; // Int32, nullable
    PreCountedQuantity? : number; // Int32, nullable
  }
  
  export class StartZonedCycleCountStockMutation {
    StockLabel : EVA.Framework.EnumDto; 
    StockMutationReason : EVA.Framework.EnumDto; 
    MutationQuantity : number; // Int32
    CreationTime : string; // DateTime
  }
  
  export class StartZonedCycleCountStockMutationQuantity {
    TotalMutationQuantity : number; // Int32
    Since : string; // DateTime
    StockLabel : EVA.Framework.EnumDto; 
  }
  
  export class StartZonedCyleCountCurrentStock {
    StockLabel : EVA.Framework.EnumDto; 
    CurrentQuantityOnHand : number; // Int32
  }
  
  export class StockLabelDto {
    ID : number; // Int32
    Name : string; 
    Description : string; 
  }
  
  export class StockLabelToCycleCount {
    StockLabel : number; // Int32
    Lines : EVA.UserTasks.CycleCountWorkSetLine[]; 
  }
  
  export class StockMovementFollowUpWorkSet {
    UserTaskID : number; // Int32
    StockMovementFollowUpTaskID : number; // Int32
    ProductID : number; // Int32
    Product : any; 
    Quantity : number; // Int32
    FromStockLabel : EVA.UserTasks.StockLabelDto; 
    ToStockLabel : EVA.UserTasks.StockLabelDto; 
  }
  
  export enum StockReplenishmentType {
    Default = 0,
    Priority = 1,
    AutoGenerated = 2,
  }
  
  export class StockReplenishmentWorkSet {
    Items : EVA.UserTasks.StockReplenishmentWorkSetItem[]; 
  }
  
  export class StockReplenishmentWorkSetItem {
    UserTaskID : number; // Int32
    StockReplenishmentTaskID : number; // Int32
    Quantity : number; // Int32
    Type : EVA.UserTasks.StockReplenishmentType; 
    Product : any; 
  }
  
  export class StockReservationTaskDto {
    UserTaskID : number; // Int32
    OrderID : number; // Int32
    Order : EVA.Core.OrderDto; 
    Lines : EVA.UserTasks.StockReservationTaskLineDto[]; 
  }
  
  export class StockReservationTaskLineDto {
    IsCancelled : boolean; 
    IsReserved : boolean; 
    Barcodes : string[]; 
    Product : EVA.Core.ProductDto; 
    ProductID : number; // Int32
    OrderLineID : number; // Int32
    QuantityOnHand : number; // Int32
    ForceComplete : boolean; 
    MustBeOrdered : boolean; 
    RequiredResourceTypes : EVA.Core.StockResourceTypeDto[]; 
    ResourceID? : number; // Int32, nullable
    Resources : { [ key : string ] : string }; 
  }
  
  export class StockReservationWorkSet {
    UserTaskID : number; // Int32
    OrderID : number; // Int32
    Order : EVA.Core.OrderDto; 
    Lines : EVA.UserTasks.StockReservationTaskLineDto[]; 
  }
  
  export class StockWithInitialCycleCountResultDto {
    ProductID : number; // Int32
    OrganizationUnitID : number; // Int32
    QuantityOnHand : number; // Int32
    StockLabelID : number; // Int32
    StockLabel : number; // Int32
    ResourceID? : number; // Int32, nullable
    Quantity : number; // Int32
    BackendID : string; 
    LabelID : string; 
    LabelNumber : string; 
    ShortDescription : string; 
  }
  
  export class ToggleStockReplenishmentAutoGeneration extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID : number; // Int32
    ProductID : number; // Int32
    Disabled : boolean; 
  }
  
  export class UpdateCycleCountZone extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Name : string; 
    Description : string; 
  }
  
  export class UpdateCycleCountZoneGroup extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Name : string; 
    OrganizationUnitSetID : number; // Int32
    ZoneIDs : number[]; 
  }
  
  export class UpdateUserTask extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    ID : number; // Int32
    UserID : number; // Int32
    TypeID : number; // Int32
    Deadline : string; // DateTime
    ExpectedTimeToComplete : any; // TimeSpan
  }
  
  export class UpdateUserTaskType extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    ID : number; // Int32
    Name : string; 
    Description : string; 
    Configuration : string; 
    DefaultPriority : number; // Int32
    DefaultRequired : boolean; 
  }
  
  export class UpdateUserTaskTypeOrganizationUnitSet extends EVA.API.RequestMessageGeneric<EVA.UserTasks.UserTaskTypeOrganizationUnitSetResponse> {
    UserTaskTypeID : number; // Int32
    OrganizationUnitSetID : number; // Int32
    Required : boolean; 
  }
  
  export class UpdateZonedCycleCountDays extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID : number; // Int32
    DaysOfWeek : EVA.Framework.DaysOfWeek; 
  }
  
  export class UpdateZonedCycleCountPlan extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Description : string; 
    Date : string; // DateTime
    ProductSearchModel : EVA.UserTasks.ZonedCycleCountScheduleProductSearchModel; 
    OrganizationUnitFilter : EVA.UserTasks.ZonedCycleCountScheduleOrganizationUnitsFilter; 
  }
  
  export class UpdateZonedCycleCountSchedule extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Description : string; 
    CycleCountIntervalInDays : number; // Int32
    ProductSearchModel : EVA.UserTasks.ZonedCycleCountScheduleProductSearchModel; 
  }
  
  export class GetUserTaskCountsResponseUserTaskCount {
    Count : number; // Int32
    SubTypeCounts : { [ key : string ] : number }; 
  }
  
  export class UserTaskDataAggregation {
    Name : string; 
    Value : any; 
    Count : number; // Int32
  }
  
  export class UserTaskDetails extends EVA.Core.UserTaskDto {
    Results : EVA.UserTasks.UserTaskResultDto[]; 
  }
  
  export class UserTaskResultDto implements EVA.Core.IUserTaskResult {
    Name : string; 
    Description : string; 
    Type : string; 
    Value : string; 
    Data : string; 
  }
  
  export class UserTaskTypeOrganizationUnitSetResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.UserTaskTypeOrganizationUnitSetDto; 
  }
  
  export class UserTaskWorkSet {
    UserTaskID : number; // Int32
    StartTime : string; // DateTime
    Name : string; 
    Description : string; 
    CanBeIgnored : boolean; 
    Configuration : string; 
    ExpectedTimeToComplete? : any; // TimeSpan, nullable
    Results : EVA.UserTasks.UserTaskResultDto[]; 
  }
  
  export class ValidatePreCount extends EVA.API.RequestMessageGeneric<EVA.UserTasks.ValidatePreCountResponse> {
    LabelID : number; // Int32
    ConfirmedQuantity? : number; // Int32, nullable
  }
  
  export class ValidatePreCountResponse extends EVA.API.ResponseMessage {
    Result : EVA.UserTasks.ValidatePreCountResults; 
  }
  
  export enum ValidatePreCountResults {
    Correct = 1,
    Deviation = 2,
    RedoDetailCount = 3,
  }
  
  export class ZonedCycleCountPlanDto {
    ID : number; // Int32
    CreatedByID : number; // Int32
    CreatedByName : string; 
    LastModifiedByID? : number; // Int32, nullable
    LastModifiedByName : string; 
    Description : string; 
    StatusID : number; // Int32
    Date : string; // DateTime
    Products : EVA.UserTasks.ZonedCycleCountScheduleProductSearchModel; 
    OrganizationUnits : EVA.UserTasks.ZonedCycleCountScheduleOrganizationUnitsFilter; 
  }
  
  export enum ZonedCycleCountPlanStatus {
    None = 0,
    Busy = 1,
    Finished = 2,
  }
  
  export enum ZonedCycleCountResultStatus {
    None = 0,
    Correct = 1,
    RecountRequested = 2,
    Modified = 4,
    Deviated = 8,
  }
  
  export enum ZonedCycleCountResultTypes {
    Accepted = 0,
    Recount = 1,
    CompleteResources = 2,
  }
  
  export class ZonedCycleCountScheduleDto {
    ID : number; // Int32
    Description : string; 
    OrganizationUnitID : number; // Int32
    OrganizationUnitName : string; 
    CycleCountIntervalInDays : number; // Int32
    SerializedProductSearchModel : string; 
    ProductSearchModel : EVA.UserTasks.ZonedCycleCountScheduleProductSearchModel; 
  }
  
  export class ZonedCycleCountScheduleOrganizationUnitsFilter {
    IDs : number[]; 
    BackendIDs : string[]; 
    CountryIDs : string[]; 
    StatusID? : number; // Int32, nullable
  }
  
  export class ZonedCycleCountScheduleProductSearchFilterModel {
    Values : any[]; 
    From : string; 
    To : string; 
    Negation : boolean; 
    ExactMatch : boolean; 
    IncludeMissing? : boolean; 
  }
  
  export class ZonedCycleCountScheduleProductSearchModel {
    Query : string; 
    Filters : { [ key : string ] : EVA.UserTasks.ZonedCycleCountScheduleProductSearchFilterModel }; 
  }
  
  export class ZonedCycleCountToComplete {
    UserTaskID : number; // Int32
    CountedQuantityCorrections : EVA.UserTasks.ZonedCycleCountToCompleteQuantityCorrection[]; 
  }
  
  export class ZonedCycleCountToCompleteQuantityCorrection {
    StockLabelID : number; // Int32
    NewCountedQuantity : number; // Int32
  }
  
}