/* 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.Core.Services {

  export class AddBundleProductToOrder extends EVA.API.RequestMessageGeneric<EVA.Core.SimpleShoppingCartResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    LineActionType? : EVA.Core.LineActionTypes;
    BundleProductID : number; // Int32
    LineSelection : EVA.Core.Services.AddBundleProductToOrderLineSelection[];
  }

  export class AddBundleProductToOrderLineSelection {
    ProductBundleLineID : number; // Int32
    SelectedProductID : number; // Int32
    LineSelection : EVA.Core.Services.AddBundleProductToOrderLineSelection[];
  }

  export class AddDiscountToOrder extends EVA.API.RequestMessageGeneric<EVA.Core.SimpleShoppingCartResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    CouponCode : string;
    DiscountID? : number; // Int32, nullable
    DiscountAmount? : number; // Decimal, nullable
    // Obsolete
    CurrencyID : string;
    Reason : string;
    OrderLines : EVA.Core.OrderLineWithQuantity[];
    Password : string;
  }

  export class AddLineToPurchaseOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.AddLineToPurchaseOrderResponse> {
    OrderID : number; // Int32
    ProductID : number; // Int32
    Quantity : number; // Int32
    UnitPrice? : number; // Decimal, nullable
    RequestedDate? : string; // DateTime, nullable
    Reference : string;
    StockLabelID? : number; // Int32, nullable
  }

  export class AddLineToPurchaseOrderResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.AddLineToPurchaseOrderResponseModel;
  }

  export class AddProductToOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.AddProductToOrderResponse> {
    OrderID? : number; // Int32, nullable
    SessionID : string;
    ForceCreate : boolean;
    Barcode : string;
    ProductID? : number; // Int32, nullable
    QuantityOrdered? : number; // Int32, nullable
    LineActionType? : EVA.Core.LineActionTypes;
    StockLabelID? : number; // Int32, nullable
    ParentID? : number; // Int32, nullable
    ResourceID? : number; // Int32, nullable
    GroupID : string;
  }

  export class AddProductToOrderResponse extends EVA.Core.SimpleShoppingCartResponse {
    // Created or updated OrderLineID
    OrderLineID : number; // Int32
  }

  export class AddProductToWishList extends EVA.API.RequestMessageGeneric<EVA.Core.Services.AddProductToWishListResponse> {
    OrderID : number; // Int32
    ProductID : number; // Int32
    Quantity : number; // Int32
    SingleProductPerLine : boolean;
  }

  export class AddProductToWishListResponse extends EVA.API.ResponseMessage {
    WishListLineID : number; // Int32
    WishListLineIDs : number[];
  }

  export class AddPushNotificationDevice extends EVA.API.RequestMessageWithEmptyResponse {
    DeviceToken : string;
    DeviceOS : string;
    MobileAppID : string;
    BackendSystemID : string;
  }

  export class AddressBookDto {
    ID : number; // Int32
    Address : EVA.Core.AddressDto;
    Description : string;
    DefaultShippingAddress : boolean;
    DefaultBillingAddress : boolean;
  }

  export class AddServiceProductToOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.AddServiceProductToOrderResponse> {
    OrderID? : number; // Int32, nullable
    SessionID : string;
    ForceCreate : boolean;
    ProductID : number; // Int32
    Description : string;
    UnitPriceInTax? : number; // Decimal, nullable
    UnitCost? : number; // Decimal, nullable
    UnitPrice? : number; // Decimal, nullable
  }

  export class AddServiceProductToOrderResponse extends EVA.Core.SimpleShoppingCartResponse {
    // Created or updated OrderLineID
    OrderLineID : number; // Int32
  }

  export class AddStockResourceToOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.AddStockResourceToOrderResponse> {
    ResourceID : number; // Int32
    OrderID? : number; // Int32, nullable
    SessionID : string;
  }

  export class AddStockResourceToOrderResponse extends EVA.Core.SimpleShoppingCartResponse {
    // Created or updated OrderLineID
    OrderLineID : number; // Int32
  }

  export class AddUserToGroup extends EVA.API.RequestMessageWithEmptyResponse {
    UserID : number; // Int32
    GroupID : number; // Int32
  }

  export class AddWishListProductToOrder extends EVA.API.RequestMessageGeneric<EVA.Core.SimpleShoppingCartResponse> {
    WishListOrderID : number; // Int32
    OrderID? : number; // Int32, nullable
    // Required if you are not the owner of the wishlist.
    AccessToken : string;
    TargetOrderID? : number; // Int32, nullable
    SessionID : string;
    LineActionType? : EVA.Core.LineActionTypes;
    Name : string;
    Remark : string;
    WishListLines : EVA.Core.Services.AddWishListProductToOrderLine[];
  }

  export class AddWishListProductToOrderLine {
    WishListLineID : number; // Int32
    Quantity : number; // Int32
  }

  export class AdjustStockAdjustment {
    BackendID : string;
    ProductID? : number; // Int32, nullable
    OrganizationUnitID : number; // Int32
    StockLabelID : number; // Int32
    StockResourceID? : number; // Int32, nullable
    StockMutationReasonID : number; // Int32
    Quantity : number; // Int32
    Remark : string;
    ProductBackendID : string;
  }

  export class AdjustStock extends EVA.API.RequestMessageWithEmptyResponse {
    ProductID? : number; // Int32, nullable
    OrganizationUnitID? : number; // Int32, nullable
    ResourceID? : number; // Int32, nullable
    SourceLabel? : number; // Int32, nullable
    Reason? : number; // Int32, nullable
    Quantity? : number; // Int32, nullable
    Remark : string;
    BackendSystemID : string;
    Adjustments : EVA.Core.Services.AdjustStockAdjustment[];
  }

  export class ApplicationDto {
    ID : number; // Int32
    Name : string;
    OrganizationUnitID : number; // Int32
    AuthenticationToken : string;
    AssetsBaseUrl : string;
    RequiredUserTypeID? : number; // Int32, nullable
    BaseUrl : string;
  }

  export class ApplyBundleProductLineSelection {
    ProductBundleLineID : number; // Int32
    SelectedProductID : number; // Int32
    LineSelection : EVA.Core.Services.ApplyBundleProductLineSelection[];
  }

  export class ApplyBundleProductSelection extends EVA.API.RequestMessageGeneric<EVA.Core.SimpleShoppingCartResponse> {
    OrderID? : number; // Int32, nullable
    SessionID : string;
    LineActionType? : EVA.Core.LineActionTypes;
    BundleProductOrderLineID : number; // Int32
    LineSelection : EVA.Core.Services.ApplyBundleProductLineSelection[];
  }

  export class ApplySalesTaxEstimateForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.SalesTaxEstimateForOrderResponse> {
    OrderID : number; // Int32
  }

  export enum ApprovementFailureReasons {
    AlreadyApproved = 1,
    OrderAlreadyPaid = 2,
  }

  export class ApprovePayment extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ApprovePaymentResponse> {
    PaymentID : number; // Int32
  }

  export class ApprovePaymentResponse extends EVA.API.ResponseMessage {
    HasBeenApproved : boolean;
    Reason : EVA.Core.Services.ApprovementFailureReasons;
  }

  export class AssignedToUser {
    ID : number; // Int32
    FullName : string;
    EmailAddress : string;
  }

  export class AttachAddressToOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.AttachAddressToOrderResponse> {
    OrderID? : number; // Int32, nullable
    OrderIDs : number[];
    BillingAddressID? : number; // Int32, nullable
    ShippingAddressID? : number; // Int32, nullable
    BillingAddressBookID? : number; // Int32, nullable
    ShippingAddressBookID? : number; // Int32, nullable
  }

  export class AttachAddressToOrderResponse extends EVA.API.ResponseMessage {
    CreditcardDisabled : boolean;
  }

  export class AttachBlobToInvoice extends EVA.API.RequestMessageWithEmptyResponse {
    InvoiceID : number; // Int32
    BlobID : string;
  }

  export class AttachBlobToOrder extends EVA.API.RequestMessageWithEmptyResponse {
    BlobID : string;
    Name : string;
    Type? : EVA.Core.OrderBlobTypes;
    OrderID? : number; // Int32, nullable
    OrderLineID? : number; // Int32, nullable
  }

  export class AttachCustomerToOrder extends EVA.API.RequestMessageWithEmptyResponse {
    UserID? : number; // Int32, nullable
    OrderID : number; // Int32
  }

  export class AttachIdentificationToOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.AttachIdentificationToOrderResponse> {
    OrderID : number; // Int32
    Type : EVA.Core.IdentificationTypes;
    Number : string;
    ValidTo : string; // DateTime
    IssuingDate? : string; // DateTime, nullable
    IssuingCity : string;
    IssuingCountryID : string;
    OriginatingCountryID : string;
    DocumentMimeType : string;
    Document : string;
  }

  export class AttachIdentificationToOrderResponse extends EVA.API.ResponseMessage {
    IdentificationID : number; // Int32
  }

  export class AttachOrderToSession extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    OrderID : number; // Int32
    SessionID : string;
  }

  export class AuthenticateWithThirdPartyLogin extends EVA.API.RequestMessageGeneric<EVA.Core.Services.AuthenticateWithThirdPartyLoginResponse> {
    Code : string;
    Data : { [ key : string ] : string };
  }

  export class AuthenticateWithThirdPartyLoginResponse extends EVA.API.ResponseMessage {
    Authentication : EVA.Framework.AuthenticationResults;
    AuthenticationToken : string;
  }

  export class AutocompleteAddress extends EVA.API.RequestMessageGeneric<EVA.Core.Services.AutocompleteAddressResponse> {
    Query : string;
  }

  export class AutocompleteAddressResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.AddressSuggestion[];
  }

  export class AutocompleteOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.AutocompleteOrderResponse> {
    OrderID : number; // Int32
  }

  export class AutocompleteOrderResponse extends EVA.API.ResponseMessage {
    IsCompleted : boolean;
  }

  export class GetStockAvailabilityEstimateForProductsResponseAvailabilityDate {
    Date : string; // DateTime
    QuantityAvailable? : number; // Int32, nullable
    PurchaseOrderLines : EVA.Core.Services.GetStockAvailabilityEstimateForProductsResponsePurchaseOrderLine[];
  }

  export class GetProductAvailabilityAvailabilityOptions {
    Delivery : EVA.Core.Services.GetProductAvailabilityDeliveryAvailability;
    Pickup : EVA.Core.Services.GetProductAvailabilityPickupAvailability;
    // In case a product is not currently available (either for pick-up or delivery),<br />look at future stock to calculate when it's available again. This is more expensive to calculate.
    FutureAvailability? : boolean;
    QuantityAvailable? : boolean;
  }

  export enum AvailabilityTimelineItemTypes {
    CurrentAvailability = 0,
    ExpectedCommitment = 1,
    ExpectedReplenishment = 2,
    ExpectedShipment = 3,
  }

  export class GetProductSupplierInfoForProductsResponseBarcode {
    Code : string;
    UnitOfMeasureID : number; // Int32
    Quantity : number; // Int32
  }

  export class BookInvoice extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class ListBrandsResponseBrandDto {
    ID : number; // Int32
    Name : string;
    BackendID : string;
  }

  export class GetPotentialBundleProductsForOrderResponseBundleProduct {
    BundleProductID : number; // Int32
    BundlePricing : EVA.Core.Services.BundleProductPriceInfo;
    BundleProductContent : any;
  }

  export class BundleProductContainingProduct {
    BundleProductID : number; // Int32
    BundlePricing : EVA.Core.Services.BundleProductPriceInfo;
    BundleProductContent : any;
  }

  export class BundleProductLine {
    ID : number; // Int32
    BackendID : string;
    DefaultProductID? : number; // Int32, nullable
    Options : EVA.Core.Services.BundleProductLineOption[];
    IsRequired : boolean;
    IncludedInBundlePrice : boolean;
    Description : string;
    IsDeleted : boolean;
  }

  export class BundleProductLineOption {
    ProductID : number; // Int32
    Lines : EVA.Core.Services.BundleProductLine[];
    ProductBundleLineID : number; // Int32
    AdditionalUnitPriceInTax? : number; // Decimal, nullable
    ID : number; // Int32
    Quantity : number; // Int32
    Sequence : number; // Int32
  }

  export class BundleProductPriceInfo {
    UnitPrice : number; // Decimal
    UnitPriceInTax : number; // Decimal
    OriginalUnitPrice? : number; // Decimal, nullable
    OriginalUnitPriceInTax? : number; // Decimal, nullable
    TaxRate : number; // Decimal
    CurrencyID : string;
  }

  export class CancelOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CancelOrderResponse> {
    OrderID : number; // Int32
    OrderLineIDs : number[];
  }

  export class CancelOrderLine extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CancelOrderLineResponse> {
    OrderLineID : number; // Int32
  }

  export class CancelOrderLineResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.OrderCancellationOptions;
  }

  export class CancelOrderResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.OrderCancellationOptions;
  }

  export class CancelPayment extends EVA.API.RequestMessageWithEmptyResponse {
    PaymentID : number; // Int32
  }

  export class CancelShipments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CancelShipmentsResponse> {
    ShipmentIDs : number[];
  }

  export class CancelShipmentsResponse extends EVA.API.ResponseMessage {
    Total : number; // Int32
    Errors : number; // Int32
    Message : string;
  }

  export class CancelWishList extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    OrderID : number; // Int32
  }

  export class CardBalanceCheck extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CardBalanceCheckResponse> {
    CardNumber : string;
    CardPin : string;
    Barcode : string;
    CardType : string;
    OrderID? : number; // Int32, nullable
  }

  export class CardBalanceCheckResponse extends EVA.API.ResponseMessage {
    CardID : string;
    Balance : number; // Decimal
    CurrencyID : string;
    CanSpendAll? : boolean;
    RemainingBalance? : number; // Decimal, nullable
  }

  export class GetGiftCardOptionsResponseCardBusinessRules {
    ActivateValues : number[];
    ActivateValueMin? : number; // Decimal, nullable
    ActivateValueMax? : number; // Decimal, nullable
    ReloadValueMin? : number; // Decimal, nullable
    ReloadValueMax? : number; // Decimal, nullable
    PurchaseValueMin? : number; // Decimal, nullable
    PurchaseValueMax? : number; // Decimal, nullable
    Reloadable? : boolean;
    Refundable? : boolean;
  }

  export class CompleteCloseCashJournalCashCorrection {
    Amount : number; // Decimal
    Description : string;
  }

  export class CompleteOpenCashJournalCashCorrection {
    Amount : number; // Decimal
    Description : string;
  }

  export class GetCashExpenseTypesResponseCashExpenseTypeDto {
    ID : number; // Int32
    BackendID : string;
    Name : string;
    Description : string;
    LedgerClassID : string;
    AmountType : EVA.Core.CashExpenseAmountTypes;
    TaxCodeID? : number; // Int32, nullable
    TaxCodeName : string;
    OrganizationUnitSet : EVA.Core.Services.CashExpenseTypeOrganizationUnitSet;
  }

  export class CashExpenseTypeOrganizationUnitSet {
    ID : number; // Int32
    Name : string;
  }

  export class GetAvailableCashHandlersResponseCashHandler {
    ID : number; // Int32
    Name : string;
    CurrencyID : string;
  }

  export class GetCurrentCashJournalsResponseCashJournal {
    ID? : number; // Int32, nullable
    OpeningTime? : string; // DateTime, nullable
    OpeningAmount? : number; // Decimal, nullable
    Type : EVA.Core.CashJournalTypes;
    CurrencyID : string;
    PaymentType : EVA.Core.Services.GetCurrentCashJournalsResponsePaymentTypeDto;
    PreviousCashJournal : EVA.Core.Services.GetCurrentCashJournalsResponsePreviousCashJournal;
    DeviceID : number; // Int32
  }

  export class StartOpenCashJournalResponseCashJournal {
    ID : number; // Int32
    OpeningTime : string; // DateTime
    ClosingTime? : string; // DateTime, nullable
    OpeningAmount : number; // Decimal
    ClosingAmount? : number; // Decimal, nullable
  }

  export class GetCashJournalDenominationsResponseCashJournalDenomination {
    CurrencyID : string;
    AvailableCoins : number[];
    AvailableBankNotes : number[];
  }

  export class ChangeUserPassword extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ChangeUserPasswordResponse> {
    UserID : number; // Int32
    NewPassword : string;
    OldPassword : string;
  }

  export class ChangeUserPasswordResponse extends EVA.API.ResponseMessage {
    Success : boolean;
    Result : EVA.Core.Services.PasswordValidationResults;
  }

  export class CheckEmailAddressAvailability extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CheckUsernameAvailabilityResponse> {
    EmailAddress : string;
    AsEmployee? : boolean;
  }

  export class CheckNicknameAvailability extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CheckUsernameAvailabilityResponse> {
    Nickname : string;
    AsEmployee? : boolean;
  }

  export class CheckUsernameAvailabilityResponse extends EVA.API.ResponseMessage {
    IsAvailable : boolean;
    IsValid : boolean;
    PasswordResetRequired : boolean;
  }

  export class CloseFinancialPeriod extends EVA.API.RequestMessageWithEmptyResponse {
    FinancialPeriodID : number; // Int32
  }

  export class MoveCommitmentsCommitmentMovement {
    SourceOrderLineID : number; // Int32
    DestinationOrderLineID : number; // Int32
  }

  export class CommitOrderLinesResponseCommitmentResultForOrderLine {
    OrderLineID : number; // Int32
    IsCommitted : boolean;
  }

  export class CommitOrderLines extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CommitOrderLinesResponse> {
    OrderID : number; // Int32
    OrderLineIDs : number[];
    CommitmentStatus? : EVA.Core.OrderLineCommitmentStatus;
  }

  export class CommitOrderLinesResponse extends EVA.API.ResponseMessage {
    Results : EVA.Core.Services.CommitOrderLinesResponseCommitmentResultForOrderLine[];
  }

  export class CompleteCloseCashJournal extends EVA.API.RequestMessageWithEmptyResponse {
    DeviceID : number; // Int32
    // Will be required!
    CurrencyID : string;
    // Will be required!
    PaymentTypeID? : number; // Int32, nullable
    Coins : { [ key : number ] : number };
    BankNotes : { [ key : number ] : number };
    TotalAmount : number; // Decimal
    Corrections : EVA.Core.Services.CompleteCloseCashJournalCashCorrection[];
    Data : any;
  }

  export class CompleteOpenCashJournal extends EVA.API.RequestMessageWithEmptyResponse {
    DeviceID : number; // Int32
    // Will be required!
    CurrencyID : string;
    // Will be required!
    PaymentTypeID? : number; // Int32, nullable
    Coins : { [ key : number ] : number };
    BankNotes : { [ key : number ] : number };
    TotalAmount : number; // Decimal
    OpeningDeviationCorrection : EVA.Core.Services.CompleteOpenCashJournalCashCorrection;
  }

  export class CompleteWishList extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
  }

  export class ConfigurableGroup {
    ProductID : number; // Int32
    Properties : any;
    LogicalLevel : string;
    ConfigurableProperty : string;
    Value : any;
    Values : any[];
    TotalAmount : number; // Decimal
    TotalAmountInTax : number; // Decimal
    Quantity : number; // Int32
    Children : EVA.Core.Services.ConfigurableGroup[];
    OrderLines : EVA.Core.Services.ConfigurableOrderLine[];
  }

  export class ConfigurableOrderLine {
    OrderLineID : number; // Int32
    Quantity : number; // Int32
    TotalAmount : number; // Decimal
    TotalAmountInTax : number; // Decimal
  }

  export class ConfirmPurchaseOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    BackendID : string;
  }

  export class ConfirmSubscription extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ConfirmSubscriptionResponse> {
    Token : string;
  }

  export class ConfirmSubscriptionResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    Status : EVA.Core.SubscriptionStatus;
  }

  export class ListShopsInAreaCoordinate {
    Latitude : number; // Double
    Longitude : number; // Double
  }

  export class CountryDto {
    ID : string;
    Name : string;
  }

  export class CreateAccountForIncognitoUser extends EVA.API.RequestMessageWithEmptyResponse {
    Password : string;
  }

  export class CreateAddressBookItem extends EVA.API.RequestMessageGeneric<EVA.API.CreateResponse> {
    UserID? : number; // Int32, nullable
    Description : string;
    Address : EVA.Core.AddressDataDto;
    UseAsDefaultShippingAddress : boolean;
    UseAsDefaultBillingAddress : boolean;
  }

  export class CreateAnonymousToken extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateAnonymousTokenResponse> {
    OrganizationUnitID : number; // Int32
    LanguageID : string;
  }

  export class CreateAnonymousTokenResponse extends EVA.API.ResponseMessage {
    Token : string;
  }

  export class CreateApiKey extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateApiKeyResponse> {
    UserID : number; // Int32
    ApplicationID? : number; // Int32, nullable
    OrganizationUnitID : number; // Int32
    RequestPermanentApiKey : boolean;
  }

  export class CreateApiKeyResponse extends EVA.API.ResponseMessage {
    ApiKey : string;
    ExpirationDate? : string; // DateTime, nullable
  }

  export class CreateCashDeposit extends EVA.API.RequestMessageGeneric<EVA.API.CreateResponse> {
    DeviceID : number; // Int32
    // Will be required!
    CurrencyID : string;
    // Will be required!
    PaymentTypeID? : number; // Int32, nullable
    // Required for monetary deposits
    Number : string;
    TotalAmount : number; // Decimal
    Coins : { [ key : number ] : number };
    BankNotes : { [ key : number ] : number };
  }

  export class CreateCashExpense extends EVA.API.RequestMessageWithEmptyResponse {
    DeviceID : number; // Int32
    TypeID : number; // Int32
    Amount : number; // Decimal
    TaxCodeID : number; // Int32
    Description : string;
    // Optional image of the receipt
    BlobID : string;
  }

  export class CreateCashExpenseType extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateCashExpenseTypeResponse> {
    BackendID : string;
    Name : string;
    Description : string;
    LedgerClassID : string;
    AmountType : EVA.Core.CashExpenseAmountTypes;
    TaxCodeID? : number; // Int32, nullable
    OrganizationUnitSetID? : number; // Int32, nullable
  }

  export class CreateCashExpenseTypeResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreateCompanyForUser extends EVA.API.RequestMessageWithEmptyResponse {
    UserID : number; // Int32
    Name : string;
    RegistrationNumber : string;
    RegistrationCity : string;
    RegistrationCountryID : string;
    VatNumber : string;
    LegalFormID : number; // Int32
    EstablishedDate? : string; // DateTime, nullable
    ContactEmailAddress : string;
    ContactPhoneNumber : string;
    AccountHolderName : string;
    IBAN : string;
    BIC : string;
  }

  export class CreateCurrency extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string;
    Name : string;
    Precision : number; // Int16
  }

  export class CreateCustomer extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateCustomerResponse> {
    User : EVA.Core.Services.CustomerDto;
    SessionID : string;
    NoAccount : boolean;
    AutoLogin : boolean;
  }

  export class CreateCustomerResponse extends EVA.API.ResponseMessage {
    User : EVA.Core.LoggedInUserDto;
    Result : EVA.Core.Services.CreateCustomerResults;
  }

  export enum CreateCustomerResults {
    CreatedCustomer = 0,
    InvalidEmail = 1,
    EmailAlreadyInUse = 3,
    NicknameAlreadyInUse = 4,
    PhoneNumberAlreadyInUse = 5,
    AutoLoginFailed = 6,
  }

  export class CreateCustomerWithCompany extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateCustomerWithCompanyResponse> {
    Nickname : string;
    EmailAddress : string;
    Gender : string;
    Initials : string;
    FirstName : string;
    LastName : string;
    PhoneNumber : string;
    LanguageID : string;
    CountryID : string;
    Company : EVA.Core.Services.CustomerCompany;
  }

  export class CreateCustomerWithCompanyResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.CreateCustomerResults;
  }

  export class CreateFinancialPeriodAudit extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateFinancialPeriodAuditResponse> {
    OrganizationUnitID : number; // Int32
    To? : string; // DateTime, nullable
    Till? : string; // DateTime, nullable
  }

  export class CreateFinancialPeriodAuditResponse extends EVA.API.ResponseMessage {
    IDs : number[];
    ID : number; // Int32
  }

  export class CreateInterbranchOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    OrganizationUnitID? : number; // Int32, nullable
    // The date when the shipment is expected in the other store
    ExpectedDeliveryDate? : string; // DateTime, nullable
  }

  export class CreateInvoice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateInvoiceResponse> {
    OrganizationUnitID : number; // Int32
    SupplierOrganizationUnitID? : number; // Int32, nullable
    PaymentTermStartDate? : string; // DateTime, nullable
    PaymentTermDueDate? : string; // DateTime, nullable
    InvoiceDate : string; // DateTime
    InvoiceNumber : string;
    Description : string;
    Blobs : EVA.Core.InvoiceBlobDto[];
    OriginalTotalAmount? : number; // Decimal, nullable
    Type : EVA.Core.InvoiceTypes;
    HoldStatusID? : number; // Int32, nullable
    FiscalID : string;
    TaxReverseCharge : boolean;
    CalculationMethod? : EVA.Core.InvoiceCalculationMethod;
  }

  export class CreateInvoiceAdditionalAmount extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateInvoiceAdditionalAmountResponse> {
    InvoiceID : number; // Int32
    TypeID : number; // Int32
    OriginalAmount : number; // Decimal
    Amount : number; // Decimal
    TaxRate? : number; // Decimal, nullable
    TaxCodeID : number; // Int32
  }

  export class CreateInvoiceAdditionalAmountResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreateInvoiceAdditionalAmountType extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateInvoiceAdditionalAmountTypeResponse> {
    Name : string;
    Description : string;
    LedgerClassID : string;
  }

  export class CreateInvoiceAdditionalAmountTypeResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreateInvoiceDispute extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateInvoiceDisputeResponse> {
    InvoiceID : number; // Int32
    InvoiceLineID? : number; // Int32, nullable
    InvoiceAdditionalAmountID? : number; // Int32, nullable
    ReasonID : number; // Int32
    Amount : number; // Decimal
    Description : string;
    Type? : EVA.Core.InvoiceDisputeTypes;
  }

  export class CreateInvoiceDisputeReason extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateInvoiceDisputeReasonResponse> {
    Name : string;
    Description : string;
    LedgerClassID : string;
    AutoResolve : boolean;
  }

  export class CreateInvoiceDisputeReasonResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreateInvoiceDisputeResolveAction extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateInvoiceDisputeResolveActionResponse> {
    InvoiceDisputeID : number; // Int32
    Amount : number; // Decimal
    Description : string;
    LedgerClassID : string;
  }

  export class CreateInvoiceDisputeResolveActionResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreateInvoiceDisputeResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreateInvoiceLine {
    OrderLineID? : number; // Int32, nullable
    ShipmentLineID? : number; // Int32, nullable
    Quantity? : number; // Int32, nullable
    ExpectedQuantity? : number; // Int32, nullable
    UnitPrice? : number; // Decimal, nullable
    TaxRate? : number; // Decimal, nullable
  }

  export class CreateInvoiceLines extends EVA.API.RequestMessageWithEmptyResponse {
    InvoiceID : number; // Int32
    Lines : EVA.Core.Services.CreateInvoiceLine[];
  }

  export class CreateInvoicePayment extends EVA.API.RequestMessageWithEmptyResponse {
    PaymentTransactionID : number; // Int32
    InvoiceID? : number; // Int32, nullable
  }

  export class CreateInvoiceResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreateInvoicesForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateInvoicesForOrderResponse> {
    OrderID : number; // Int32
    LinesToInvoice : EVA.Core.Services.CreateInvoicesForOrderOrderLineToInvoice[];
  }

  export class CreateInvoicesForOrderResponse extends EVA.API.ResponseMessage {
    Invoices : EVA.Core.Services.CreateInvoicesForOrderResponseInvoice[];
  }

  export class CreateManualInvoice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateManualInvoiceResponse> {
    OrganizationUnitID : number; // Int32
    Series : string;
    Number : number; // Int32
    InvoiceDate : string; // DateTime
    Customer : EVA.Core.Services.ManualCustomer;
    Lines : EVA.Core.Services.ManualLine[];
  }

  export class CreateManualInvoiceResponse extends EVA.API.ResponseMessage {
    OrderID : number; // Int32
  }

  export class CreateOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateOrderResponse> {
    SessionID : string;
    OrganizationUnitID? : number; // Int32, nullable
    Type : EVA.Core.OrderTypes;
  }

  export class PrepareOrderForCheckout extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
  }

  export class CreateOrderLineUnitPriceCorrection extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateOrderLineUnitPriceCorrectionResponse> {
    OrderID : number; // Int32
    OrderLineID : number; // Int32
    UnitPrice? : number; // Decimal, nullable
    IncludingTax : boolean;
  }

  export class CreateOrderLineUnitPriceCorrectionResponse extends EVA.API.GetResponse<EVA.Core.OrderLineDto> {
  }

  export class CreateOrderResponse extends EVA.API.ResponseMessage {
    OrderID : number; // Int32
  }

  export class CreateOrganizationOpeningHours extends EVA.API.RequestMessageWithEmptyResponse {
    OpeningHoursDto : EVA.Core.OpeningHoursDataDto[];
  }

  export class CreateOrganizationUnit extends EVA.API.CreateRequest<EVA.Core.OrganizationUnitDto> implements EVA.API.IRequestRespondsAs<EVA.API.CreateResponse> {
  }

  export class CreateOrganizationUnitSupplier extends EVA.API.RequestMessageGeneric<EVA.API.CreateResponse> {
    OrganizationUnitID? : number; // Int32, nullable
    SupplierOrganizationUnitID : number; // Int32
    Type : EVA.Core.OrganizationUnitSupplierTypes;
  }

  export class CreatePayment extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreatePaymentResponse> {
    OrderID : number; // Int32
    PaymentTypeID? : number; // Int32, nullable
    Amount? : number; // Decimal, nullable
    Properties : any;
    Code : string;
  }

  export class CreatePaymentResponse extends EVA.API.ResponseMessage {
    PaymentTransaction : EVA.Core.PaymentTransactionDto;
    PaymentTransactions : EVA.Core.PaymentTransactionDto[];
    OpenAmount : number; // Decimal
    Properties : any;
  }

  export class CreateProductAvailabilityData extends EVA.API.CreateRequest<EVA.Core.ProductAvailabilityDataDto> implements EVA.API.IRequestRespondsAs<EVA.API.EmptyResponseMessage> {
  }

  export class CreateProductBundle extends EVA.API.RequestMessageGeneric<EVA.API.CreateResponse> {
    BackendID : string;
    BundleProductID : number; // Int32
    Lines : EVA.Core.Services.CreateProductBundleLine[];
  }

  export class CreateProductBundleLine {
    DefaultProductID? : number; // Int32, nullable
    Description : string;
    BackendID : string;
    Type : EVA.Core.ProductBundleLineTypes;
    Options : EVA.Core.Services.CreateProductBundleLineOption[];
  }

  export class CreateProductBundleLineOption {
    ProductID : number; // Int32
  }

  export class CreateProductRequirement extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateProductRequirementResponse> {
    ProductID : number; // Int32
    Name : string;
    DataType : EVA.Core.ProductRequirementDataTypes;
    IsArray : boolean;
    IsRequired : boolean;
    Data : any;
  }

  export class CreateProductRequirementResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreateProductStructure extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateProductStructureResponse> {
    Code : string;
    Name : string;
    LanguageID : string;
    CountryID : string;
    Definition : EVA.Core.ProductStructureDefinition;
  }

  export class CreateProductStructureResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreatePurchaseOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreatePurchaseOrderResponse> {
    OrganizationUnitID : number; // Int32
    SupplierID? : number; // Int32, nullable
    BackendID : string;
  }

  export class CreatePurchaseOrderResponse extends EVA.API.ResponseMessage {
    Success : boolean;
    ID : number; // Int32
  }

  export class CreateRecurringTask extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string;
    FullName : string;
    Cron : string;
    Arguments : { [ key : string ] : string };
  }

  export class CreateRefund extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateRefundResponse> {
    OrderID? : number; // Int32, nullable
    PaymentMethod : string;
    PaymentTransactionID? : number; // Int32, nullable
    Amount? : number; // Decimal, nullable
    CurrencyID : string;
    Properties : any;
  }

  export class CreateRefundResponse extends EVA.API.ResponseMessage {
    Success : boolean;
    PaymentTransactions : EVA.Core.PaymentTransactionDto[];
    Properties : any;
  }

  export class CreateReturnToSupplierOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
  }

  export class CreateShipmentReceipt extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateShipmentReceiptResponse> {
    BackendID : string;
    BackendSystemID : string;
    ShipmentID : number; // Int32
    CompletesShipment : boolean;
    Lines : EVA.Core.Services.CreateShipmentReceiptLine[];
  }

  export class CreateShipmentReceiptResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreateStockAllocationRule extends EVA.API.RequestMessageGeneric<EVA.API.CreateResponse> {
    OrganizationUnitSupplierID : number; // Int32
    OrganizationUnitID? : number; // Int32, nullable
    Value : number; // Int32
    ValueType : EVA.Core.StockAllocationRuleValueTypes;
    RefillPeriodInDays? : number; // Int32, nullable
    Type : EVA.Core.StockAllocationRuleTypes;
    ProductSearchTemplateID? : number; // Int32, nullable
    StartDate? : string; // DateTime, nullable
    EndDate? : string; // DateTime, nullable
  }

  export class CreateStockMutations extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitBackendID : string;
    Mutations : EVA.Core.Services.CreateStockMutationsStockMutation[];
  }

  export class CreateStockNotification extends EVA.API.RequestMessageGeneric<EVA.Core.Services.StockNotificationResponse> {
    ProductID : number; // Int32
    OrganizationUnitID : number; // Int32
    EmailAddress : string;
    CountryID : string;
    LanguageID : string;
  }

  export class CreateStockNotificationForCurrentUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.StockNotificationResponse> {
    ProductID : number; // Int32
    OrganizationUnitID? : number; // Int32, nullable
    CountryID : string;
    LanguageID : string;
  }

  export class CreateStockResource extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateStockResourceResponse> {
    Resources : { [ key : string ] : string };
  }

  export class CreateStockResourceResponse extends EVA.API.ResponseMessage {
    ResourceID : number; // Int32
  }

  export class CreateTaxCode extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateTaxCodeResponse> {
    Name : string;
    Description : string;
    LedgerClassID : string;
    BackendID : string;
  }

  export class CreateTaxCodeResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class CreateTaxRate extends EVA.API.RequestMessageGeneric<EVA.API.CreateResponse> {
    CountryID : string;
    TaxCodeID : number; // Int32
    Rate : number; // Decimal
    StartDate? : string; // DateTime, nullable
    EndDate? : string; // DateTime, nullable
  }

  export class CreateUserGroup extends EVA.API.RequestMessageGeneric<EVA.API.CreateResponse> {
    Name : string;
  }

  export class CreateUserPhoneNumber extends EVA.API.RequestMessageGeneric<EVA.API.CreateResponse> {
    UserID? : number; // Int32, nullable
    PhoneNumber : string;
    Type : EVA.Core.PhoneNumberTypes;
    Description : string;
    IsPrimary : boolean;
  }

  export class CreateWishList extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateWishListResponse> {
    Name : string;
    Data : any;
  }

  export class CreateWishListFromShoppingCart extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateWishListFromShoppingCartResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    Name : string;
    Data : any;
  }

  export class CreateWishListFromShoppingCartResponse extends EVA.API.ResponseMessage {
    OrderID : number; // Int32
    AccessToken : string;
  }

  export class CreateWishListPayment extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateWishListPaymentResponse> {
    OrderID : number; // Int32
    // Required if you are not the owner of the wishlist.
    AccessToken : string;
    Code : string;
    Amount : number; // Decimal
    Properties : any;
    Name : string;
    Remark : string;
    Lines : EVA.Core.Services.CreateWishListPaymentLine[];
  }

  export class CreateWishListPaymentFromShoppingCart extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreateWishListPaymentResponse> {
    DummyOrderID : number; // Int32
    SessionID : string;
    OrderID : number; // Int32
    // Required if you are not the owner of the wishlist.
    AccessToken : string;
    Code : string;
    Properties : any;
    Name : string;
    Remark : string;
  }

  export class CreateWishListPaymentLine {
    WishListLineID : number; // Int32
    Amount : number; // Decimal
  }

  export class CreateWishListPaymentResponse extends EVA.API.ResponseMessage {
    PaymentTransaction : EVA.Core.Services.WishListPaymentTransactionDto;
    OpenAmount : number; // Decimal
    Properties : any;
  }

  export class CreateWishListResponse extends EVA.API.ResponseMessage {
    OrderID : number; // Int32
    AccessToken : string;
  }

  export class CustomerCompany {
    Name : string;
    RegistrationNumber : string;
    RegistrationCity : string;
    RegistrationCountryID : string;
    VatNumber : string;
    LegalForm : EVA.Core.LegalForms;
    EstablishedDate? : string; // DateTime, nullable
    VisitorsAddress : EVA.Core.AddressDataDto;
    DeliveryAddress : EVA.Core.AddressDataDto;
    ReturnsAddress : EVA.Core.AddressDataDto;
    InvoiceAddress : EVA.Core.AddressDataDto;
    InvoiceEmailAddress : string;
    ContactEmailAddress : string;
    ContactPhoneNumber : string;
    AccountHolderName : string;
    IBAN : string;
    BIC : string;
    LogoID : string;
  }

  export class CustomerDto {
    EmailAddress : string;
    Gender : string;
    Initials : string;
    FirstName : string;
    LastName : string;
    PhoneNumber : string;
    DateOfBirth? : string; // DateTime, nullable
    PlaceOfBirth : string;
    BankAccount : string;
    Nickname : string;
    Password : string;
    LanguageID : string;
    CountryID : string;
    FiscalID : string;
    SocialSecurityNumber : string;
    OriginID? : number; // Int32, nullable
    ShippingAddress : EVA.Core.AddressDataDto;
    BillingAddress : EVA.Core.AddressDataDto;
  }

  export class DeleteAddressBookItem extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteCashDeposit extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteCashExpense extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteCashExpenseType extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteCurrency extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string;
  }

  export class DeleteEntityTranslation extends EVA.API.RequestMessageWithEmptyResponse {
    EntityID : number; // Int32
    EntityType : string;
    EntityField : string;
    LanguageID : string;
    CountryID : string;
  }

  export class DeleteInvoice extends EVA.API.RequestMessageWithEmptyResponse {
    InvoiceID : number; // Int32
  }

  export class DeleteInvoiceAdditionalAmount extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteInvoiceAdditionalAmountType extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteInvoiceBlob extends EVA.API.RequestMessageWithEmptyResponse {
    InvoiceID : number; // Int32
    BlobID : string;
  }

  export class DeleteInvoiceDispute extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteInvoiceDisputeReason extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteInvoiceDisputeResolveAction extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteOrganizationOpeningHours extends EVA.API.DeleteRequest implements EVA.API.IRequestRespondsAs<EVA.API.EmptyResponseMessage> {
  }

  export class DeleteOrganizationUnit extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID : number; // Int32
  }

  export class DeleteOrganizationUnitSupplier extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteProductAvailabilityData extends EVA.API.DeleteRequest implements EVA.API.IRequestRespondsAs<EVA.API.EmptyResponseMessage> {
  }

  export class DeleteProductBundle extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteProductRequirement extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteProductStructure extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteRecurringTask extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string;
  }

  export class DeleteStockAllocationRule extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteStockNotification extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    ID : number; // Int32
    EmailAddress : string;
  }

  export class DeleteStringTranslation extends EVA.API.RequestMessageWithEmptyResponse {
    Key : string;
    LanguageID : string;
    CountryID : string;
  }

  export class DeleteTaxCode extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteTaxRate extends EVA.API.DeleteRequest implements EVA.API.IRequestRespondsAs<EVA.API.EmptyResponseMessage> {
  }

  export class DeleteUser extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteUserGroup extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeleteUserPhoneNumber extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class DeliverShipment extends EVA.API.RequestMessageWithEmptyResponse {
    // Either this or ShipmentBackendID is required.
    ShipmentID? : number; // Int32, nullable
    // Either this or ShipmentID is required. If ShipmentBackendID is specified, ShipmentBackendSystem is also required.
    ShipmentBackendID : string;
    // Required if ShipmentBackendID is specified.
    ShipmentBackendSystemID : string;
  }

  export class GetProductAvailabilityDeliveryAvailability {
    // Include the expected date on which the provided products can be home-delivered.
    AvailabilityDate? : boolean;
  }

  export class GetProductAvailabilityResponseDeliveryAvailabilityResult {
    AvailabilityDate? : string; // DateTime, nullable
    IsAvailable : boolean;
    QuantityAvailable? : number; // Int32, nullable
    // Indicates whether or not there is currently stock available for home-delivery.
    HasStock : boolean;
  }

  export class GetStockAvailabilityEstimateForOrderResponseDependsOnPurchaseOrderLine {
    ID : number; // Int32
    BackendID : string;
    ProductID : number; // Int32
    OrderID : number; // Int32
    QuantityToShip : number; // Int32
    QuantityShipped : number; // Int32
    QuantityDelivered : number; // Int32
    RequestedDate : string; // DateTime
    CreationTime : string; // DateTime
  }

  export class DetachCompanyFromUser extends EVA.API.RequestMessageWithEmptyResponse {
    UserID : number; // Int32
  }

  export class DetachCustomerFromOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
  }

  export class DetachOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.DetachOrderResponse> {
    OrderID : number; // Int32
  }

  export class DetachOrderFromSession extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
  }

  export class DetachOrderResponse extends EVA.API.ResponseMessage {
    ReminderToken : string;
  }

  export class DisableDiscountOnOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    DiscountID : number; // Int32
  }

  export enum DocumentTypes {
    Order = 0,
    Quote = 1,
    Invoice = 2,
    ReturnToSupplier = 3,
    Interbranch = 4,
  }

  export class DownloadFinancialPeriodAudits extends EVA.API.RequestMessageWithResourceResponse {
    OrganizationUnitID : number; // Int32
    FiscalYear : number; // Int32
  }

  export class DownloadFinancialPeriodDeposit extends EVA.API.RequestMessageGeneric<EVA.API.ResourceResponseMessage> {
    FinancialPeriodID : number; // Int32
  }

  export class DuplicateOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.DuplicateOrderResponse> {
    OrderID : number; // Int32
    OrderLineIDs : number[];
    OrganizationUnitID? : number; // Int32, nullable
  }

  export class DuplicateOrderResponse extends EVA.API.ResponseMessage {
    DuplicatedOrderID : number; // Int32
  }

  export class EditProductStructure extends EVA.API.RequestMessageGeneric<EVA.Core.Services.EditProductStructureResponse> {
    ID : number; // Int32
    Code : string;
    Name : string;
    LanguageID : string;
    CountryID : string;
    Definition : EVA.Core.ProductStructureDefinition;
  }

  export class EditProductStructureResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class EnableDisabledDiscountOnOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    DiscountID : number; // Int32
  }

  export class EnqueueTask extends EVA.API.RequestMessageWithEmptyResponse {
    FullName : string;
    Arguments : { [ key : string ] : string };
  }

  export class EnrollSentinel extends EVA.API.RequestMessageWithEmptyResponse {
    SentinelID : string;
  }

  export class GetEnumValuesResponseEnumValue {
    Name : string;
    Value : number; // Int32
    Description : string;
  }

  export class ExemptOrderFromTax extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    OrderLineID? : number; // Int32, nullable
    // A short code (max 10 characters) identifying the tax exemption.
    TaxExemptionCode : string;
    // A longer description with the justification for the tax exemption.
    TaxExemptionReason : string;
  }

  export class ListExternalOrderStatusForOrderResponseExternalOrderStatus {
    Name : string;
    Status : string;
    CanPollStatus : boolean;
  }

  export class FeedSubscriptionDto {
    ID : number; // Int32
    Name : string;
    WebhookUrl : string;
  }

  export class FinalizePayment extends EVA.API.RequestMessageGeneric<EVA.Core.Services.FinalizePaymentResponse> {
    PaymentTransactionID : number; // Int32
    Amount? : number; // Decimal, nullable
  }

  export class FinalizePaymentResponse extends EVA.API.ResponseMessage {
    PaymentTransaction : EVA.Core.PaymentTransactionDto;
    OpenAmount : number; // Decimal
  }

  export class FinancialPeriodBlobDto {
    FinancialPeriodID : number; // Int32
    Name : string;
    MimeType : string;
    BlobID : string;
  }

  export class GetFinancialPeriodInformationResponseFinancialPeriodOrganizationUnit {
    ID : number; // Int32
    Name : string;
  }

  export class FindStockResource extends EVA.API.RequestMessageGeneric<EVA.Core.Services.FindStockResourceResponse> {
    Type : string;
    Value : string;
  }

  export class FindStockResourceResponse extends EVA.API.ResponseMessage {
    Resource : EVA.Core.Services.StockResourceDto;
  }

  export class FlushCache extends EVA.API.RequestMessageWithEmptyResponse {
    Pattern : string;
  }

  export class ForcePlaceOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ForcePlaceOrderResponse> {
    OrderID : number; // Int32
  }

  export class ForcePlaceOrderResponse extends EVA.API.ResponseMessage {
    ValidationResult : EVA.Core.OrderExportValidationResult;
  }

  export class FullyReceiveDeliveryNoteNumber extends EVA.API.RequestMessageGeneric<EVA.Core.Services.FullyReceiveDeliveryNoteNumberResponse> {
    DeliveryNoteNumber : string;
  }

  export class FullyReceiveDeliveryNoteNumberResponse extends EVA.API.ResponseMessage {
    ReservedOrdersCount : number; // Int32
  }

  export class FullyReceiveShipment extends EVA.API.RequestMessageGeneric<EVA.Core.Services.FullyReceiveShipmentResponse> {
    ID? : number; // Int32, nullable
    BackendID : string;
  }

  export class FullyReceiveShipmentResponse extends EVA.API.ResponseMessage {
    ReservedOrdersCount : number; // Int32
  }

  export class FullyShipPurchaseOrder extends EVA.API.RequestMessageWithEmptyResponse {
    PurchaseOrderID : number; // Int32
    ShipmentBackendID : string;
    BackendSystemID : string;
    TrackingCode : string;
  }

  export class GetAvailableServiceDetailsResponseFunctionalityInfo {
    Functionality : string;
    Scope : EVA.Framework.FunctionalityScope;
  }

  export class ListGeneralLedgersResponseGeneralLedger {
    ID : number; // Int32
    OrganizationUnitID : number; // Int32
    OrganizationUnit : EVA.Core.Services.ListGeneralLedgersResponseOrganizationUnit;
    FinancialPeriodID : number; // Int32
    Amount : number; // Decimal
    Remark : string;
    PaymentTransactionID? : number; // Int32, nullable
    CreationTime : string; // DateTime
    OrderID? : number; // Int32, nullable
    AccountName : string;
    AccountObjectAccount : string;
    StockMutationID? : number; // Int32, nullable
    CurrencyID : string;
    Offset1 : string;
    Offset2 : string;
    Offset3 : string;
    Offset4 : string;
    Offset5 : string;
    Offset6 : string;
    FinancialEventID? : number; // Int32, nullable
  }

  export class GenerateDeviceHubBarcode extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GenerateDeviceHubBarcodeResponse> {
  }

  export class GenerateDeviceHubBarcodeResponse extends EVA.API.ResponseMessage {
    DeviceID : string;
    Barcode : string;
  }

  export class GenerateEnrollmentToken extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GenerateEnrollmentTokenResponse> {
    OrganizationUnitID : number; // Int32
  }

  export class GenerateEnrollmentTokenResponse extends EVA.API.ResponseMessage {
    Token : string;
  }

  export class GenerateScanModeBarcode extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GenerateScanModeBarcodeResponse> {
  }

  export class GenerateScanModeBarcodeResponse extends EVA.API.ResponseMessage {
    DeviceID : string;
    Barcode : string;
  }

  export class GenerateSessionBarcode extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GenerateSessionBarcodeResponse> {
    OrderID : number; // Int32
  }

  export class GenerateSessionBarcodeResponse extends EVA.API.ResponseMessage {
    Barcode : string;
  }

  export class GenerateTemporaryPasswordForUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GenerateTemporaryPasswordForUserResponse> {
    UserID : number; // Int32
  }

  export class GenerateTemporaryPasswordForUserResponse extends EVA.API.ResponseMessage {
    Password : string;
  }

  export class GenerateTerminalReport extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GenerateTerminalResponse> {
    OrganizationUnitID : number; // Int32
    StationID : number; // Int32
  }

  export class GenerateTerminalResponse extends EVA.API.ResponseMessage {
    CopyReceiptsPrinted : number; // Int32
    TotalCopyReceiptsAmount : number; // Decimal
    ReceiptsPrinted : number; // Int32
    CashDrawerOpenings : number; // Int32
    ReturnCount : number; // Int32
    ReturnAmount : number; // Decimal
    DiscountCount : number; // Int32
    DiscountAmount : number; // Decimal
    Change : number; // Decimal
    Payments : EVA.Core.Services.GenerateTerminalResponsePayment[];
    Taxes : EVA.Core.Services.GenerateTerminalResponseTax[];
    ProductGroups : EVA.Core.Services.GenerateTerminalResponseProductGroup[];
    TotalPayments : number; // Decimal
    TotalTaxes : number; // Decimal
    PaymentsPerUser : EVA.Core.Services.GenerateTerminalResponsePaymentPerUser[];
  }

  export class GetActivePaymentTypes extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetActivePaymentTypesResponse> {
  }

  export class GetActivePaymentTypesResponse extends EVA.API.ResponseMessage {
    Result : string[];
  }

  export class GetAddressForZipCode extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAddressForZipCodeResponse> {
    ZipCode : string;
    HouseNumber : string;
  }

  export class GetAddressForZipCodeResponse extends EVA.API.GetResponse<EVA.Core.AddressDataDto> {
  }

  export class GetAnonymousToken extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAnonymousTokenResponse> {
    OrganizationUnitID : number; // Int32
    LanguageID : string;
  }

  export class GetAnonymousTokenResponse extends EVA.API.ResponseMessage {
    Token : string;
  }

  export class GetApplicationConfiguration extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetApplicationConfigurationResponse> {
  }

  export class GetApplicationConfigurationResponse extends EVA.API.ResponseMessage {
    Configuration : { [ key : string ] : any };
  }

  export class GetAutocompleteAddressByReference extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAutocompleteAddressByReferenceResponse> {
    Suggestion : EVA.Core.AddressSuggestion;
  }

  export class GetAutocompleteAddressByReferenceResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.AddressSuggestionDetails;
  }

  export class GetAvailabilityIndication extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailabilityIndicationResponse> {
    OrganizationUnitID? : number; // Int32, nullable
    // Providing this will limit the pickup availability indication to only these OrganizationUnits.
    PickupOrganizationUnitIDs : number[];
    // The products for which to retrieve the availability.<br />The QuantityRequested will default to 1 if not provided. If this field is left null then OrderID must have a value and visa versa.
    Products : EVA.Core.ProductQuantityDto[];
    // If provided this will return the availability indication for the products on the Order. This can be used instead of manually providing Products on this request.
    OrderID? : number; // Int32, nullable
    // If true, limits the pickup availability results to only the OrganizationUnit<br />that has the product available the quickest. If multiple OrganizationUnits have the same availability, it's not defined<br />which OrganizationUnit is returned.
    FastestPickupShopOnly? : boolean;
    // If true, the OrganizationUnits returned not only have their basic information returned, but also their OpeningHours.
    DetailedShopInformation : boolean;
    IncludeAvailabilityTexts : boolean;
    // If provided, limits the availability to indication to the provided types.<br />The types can be combined to provide both Delivery and Pickup indications, but this is also the default behavior<br />so specifying this is not necessary. Specify this only if you only need either Delivery or Pickup indications,<br />this can result in better performance due to a smaller response size.
    Type? : EVA.Core.GetAvailabilityTypes;
  }

  export class GetAvailabilityIndicationResponse extends EVA.API.ResponseMessage {
    Products : EVA.Core.ProductAvailabilityIndication[];
  }

  export class GetAvailableCashAmountForDevice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailableCashAmountForDeviceResponse> {
    DeviceID : number; // Int32
    // Will be required!
    CurrencyID : string;
    // Will be required!
    PaymentTypeID? : number; // Int32, nullable
  }

  export class GetAvailableCashAmountForDeviceResponse extends EVA.API.ResponseMessage {
    Amount : number; // Decimal
    CurrencyID : string;
  }

  export class GetAvailableCashHandlers extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailableCashHandlersResponse> {
    CurrencyID : string;
  }

  export class GetAvailableCashHandlersResponse extends EVA.API.ResponseMessage {
    Handlers : EVA.Core.Services.GetAvailableCashHandlersResponseCashHandler[];
  }

  export class GetAvailableCurrencies extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailableCurrenciesResponse> {
  }

  export class GetAvailableCurrenciesResponse extends EVA.API.ResponseMessage {
    Currencies : EVA.Core.CurrencyDto[];
  }

  export class GetAvailableGiftWrappingLinesForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailableGiftWrappingLinesForOrderResponse> {
    OrderID : number; // Int32
  }

  export class GetAvailableGiftWrappingLinesForOrderResponse extends EVA.API.ResponseMessage {
    Lines : EVA.Core.Services.GiftWrappingLineAvailability[];
  }

  export class GetAvailablePaymentMethods extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailablePaymentMethodsResponse> {
    OrderID? : number; // Int32, nullable
    ReturnUnusablePaymentMethods : boolean;
  }

  export class GetAvailablePaymentMethodsResponse extends EVA.API.ResponseMessage {
    PaymentMethods : string[];
    Results : EVA.Core.Services.GetAvailablePaymentMethodsResponseMethodModel[];
  }

  export class GetAvailableRefundPaymentMethodsForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailableRefundPaymentMethodsResponse> {
    OrderID : number; // Int32
  }

  export class GetAvailableRefundPaymentMethodsForUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailableRefundPaymentMethodsResponse> {
    UserID : number; // Int32
  }

  export class GetAvailableRefundPaymentMethodsResponse extends EVA.API.ResponseMessage {
    Methods : EVA.Core.Services.GetAvailableRefundPaymentMethodsResponsePaymentMethod[];
  }

  export class GetAvailableServiceDetails extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailableServiceDetailsResponse> {
    Type : string;
  }

  export class GetAvailableServiceDetailsResponse extends EVA.API.ResponseMessage {
    Description : string;
    Request : EVA.Core.Services.GetAvailableServiceDetailsResponseTypeDefinition;
    Response : EVA.Core.Services.GetAvailableServiceDetailsResponseTypeDefinition;
    Routes : EVA.Core.Services.GetAvailableServiceDetailsResponseRoute[];
    Security : EVA.Core.Services.GetAvailableServiceDetailsResponseSecurityInfo;
    AvailableInSentinelOpsMode : boolean;
  }

  export class GetAvailableServices extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailableServicesResponse> {
  }

  export class GetAvailableServicesResponse extends EVA.API.ResponseMessage {
    Services : EVA.Core.Services.GetAvailableServicesResponseService[];
  }

  export class GetAvailableSubscriptions extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailableSubscriptionsResponse> {
  }

  export class GetAvailableSubscriptionsResponse extends EVA.API.ResponseMessage {
    Subscriptions : EVA.Core.Services.GetAvailableSubscriptionsResponseSubscriptionDto[];
  }

  export class GetAvailableThirdPartiesForLogin extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetAvailableThirdPartiesForLoginResponse> {
  }

  export class GetAvailableThirdPartiesForLoginResponse extends EVA.API.ResponseMessage {
    AuthenticationMethods : string[];
  }

  export class GetBundleProductDetailResponse extends EVA.API.ResponseMessage {
    Lines : EVA.Core.Services.BundleProductLine[];
    BundleProductID : number; // Int32
    Products : EVA.Core.Services.GetBundleProductProduct[];
    IsDeleted : boolean;
  }

  export class GetBundleProductDetails extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetBundleProductDetailResponse> {
    BundleProductID : number; // Int32
    IncludedFields : string[];
  }

  export class GetBundleProductProduct {
    ID : number; // Int32
    CustomID : string;
    Type : EVA.Core.ProductTypes;
    Content : any;
    Pricing : EVA.Core.Services.BundleProductPriceInfo;
  }

  export class GetBundleProductsForProduct extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetBundleProductsForProductResponse> {
    ProductID : number; // Int32
    IncludedFields : string[];
  }

  export class GetBundleProductsForProductResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.BundleProductContainingProduct[];
  }

  export class GetCashExpenseTypeByID extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetCashExpenseTypeByIDResponse> {
    ID : number; // Int32
  }

  export class GetCashExpenseTypeByIDResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    BackendID : string;
    Name : string;
    Description : string;
    LedgerClassID : string;
    AmountType : EVA.Core.CashExpenseAmountTypes;
    TaxCodeID? : number; // Int32, nullable
    TaxCodeName : string;
    OrganizationUnitSet : EVA.Core.Services.CashExpenseTypeOrganizationUnitSet;
  }

  export class GetCashExpenseTypes extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetCashExpenseTypesResponse> {
    OrganizationUnitID? : number; // Int32, nullable
  }

  export class GetCashExpenseTypesResponse extends EVA.API.ResponseMessage {
    CashExpenseTypes : EVA.Core.Services.GetCashExpenseTypesResponseCashExpenseTypeDto[];
  }

  export class GetCashJournalDenominations extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetCashJournalDenominationsResponse> {
    DeviceID : number; // Int32
  }

  export class GetCashJournalDenominationsResponse extends EVA.API.ResponseMessage {
    CashJournalDenominations : EVA.Core.Services.GetCashJournalDenominationsResponseCashJournalDenomination[];
  }

  export class GetCompanyForUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetCompanyForUserResponse> {
    UserID : number; // Int32
  }

  export class GetCompanyForUserResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.CompanyDto;
  }

  export class GetConfigurableOrderView extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetConfigurableOrderViewResponse> {
    OrderID : number; // Int32
    LogicalLevel : string;
    GroupByPropertyType : string;
    IncludeAllChildren : boolean;
    ProductProperties : string[];
  }

  export class GetConfigurableOrderViewResponse extends EVA.API.ResponseMessage {
    PropertyGroups : EVA.Core.Services.PropertyGroup[];
    OtherLines : { [ OrderLineTypes : number ] : EVA.Core.Services.SimpleOrderLine[] };
    TotalAmount : number; // Decimal
    TotalAmountInTax : number; // Decimal
  }

  export class GetConfigurableProductDetail extends EVA.API.GetRequestGeneric<EVA.Core.Services.GetConfigurableProductDetailResponse> {
    Includes : string[];
  }

  export class GetConfigurableProductDetailResponse extends EVA.API.ResponseMessage {
    Configurable : EVA.Core.ConfigurableProductDto;
  }

  export class GetConfigurableProductsDetail extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetConfigurableProductsDetailResponse> {
    ProductIDs : number[];
    Includes : string[];
  }

  export class GetConfigurableProductsDetailResponse extends EVA.API.ResponseMessage {
    Configurables : { [ key : number ] : EVA.Core.ConfigurableProductDto };
  }

  export class GetContractNumber extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetContractNumberResponse> {
    OrderLineID : number; // Int32
  }

  export class GetContractNumberResponse extends EVA.API.ResponseMessage {
    ContractNumber : string;
  }

  export class GetCurrency extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetCurrencyResponse> {
    ID : string;
  }

  export class GetCurrencyResponse extends EVA.API.ResponseMessage {
    ID : string;
    Name : string;
    Precision : number; // Int16
  }

  export class GetCurrentApplication extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetCurrentApplicationResponse> {
  }

  export class GetCurrentApplicationResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    Name : string;
    OrganizationUnitID : number; // Int32
    // Obsolete: Please use the ApplicationConfiguration property instead
    AssetsBaseUrl : string;
    RequiredUserTypeID? : number; // Int32, nullable
    // Obsolete: Please use the ApplicationConfiguration property instead
    BaseUrl : string;
  }

  export class GetCurrentCashJournals extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetCurrentCashJournalsResponse> {
    DeviceID : number; // Int32
  }

  export class GetCurrentCashJournalsResponse extends EVA.API.ResponseMessage {
    CashJournals : EVA.Core.Services.GetCurrentCashJournalsResponseCashJournal[];
  }

  export class GetCurrentFinancialPeriodSummary extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetCurrentFinancialPeriodSummaryResponse> {
  }

  export class GetCurrentFinancialPeriodSummaryResponse extends EVA.API.ResponseMessage {
    FinancialPeriodID : number; // Int32
    FinancialPeriodStatus : EVA.Core.FinancialPeriodStatus;
  }

  export class GetCurrentUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetCurrentUserResponse> {
  }

  export class GetCurrentUserResponse extends EVA.API.ResponseMessage {
    User : EVA.Core.LoggedInUserDto;
  }

  export class GetDeliveryOrderData extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetDeliveryOrderDataResponse> {
    OrderID : number; // Int32
  }

  export class GetDeliveryOrderDataResponse extends EVA.API.ResponseMessage {
    DeliveryOrderData : EVA.Core.DeliveryOrderData;
  }

  export class GetDevice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetDeviceResponse> {
    ID : number; // Int32
  }

  export class GetDeviceResponse extends EVA.API.GetResponse<EVA.Core.DeviceDto> {
  }

  export class GetDeviceTypes extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetDeviceTypesResponse> {
  }

  export class GetDeviceTypesResponse extends EVA.API.ResponseMessage {
    DeviceTypes : EVA.Framework.FlagsEnumDto[];
  }

  export class GetEmailAddressDomainSuggestions extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetEmailAddressDomainSuggestionsResponse> {
    // The number of suggestions to return. Defaults to 5 and is limited to 10.
    MaxSuggestions? : number; // Int32, nullable
  }

  export class GetEmailAddressDomainSuggestionsResponse extends EVA.API.ResponseMessage {
    // A list of the domain names, ordered by usage count. Each domain is returned in the form of `domain.tld`.
    Domains : string[];
  }

  export class GetEntityTranslation extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetEntityTranslationResponse> {
    EntityID : number; // Int32
    EntityType : string;
    EntityField : string;
    LanguageID : string;
    CountryID : string;
  }

  export class GetEntityTranslationResponse extends EVA.API.ResponseMessage {
    EntityID : number; // Int32
    EntityType : string;
    EntityField : string;
    LanguageID : string;
    CountryID : string;
    Value : string;
  }

  export class GetEnumValues extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetEnumValuesResponse> {
    Name : string;
  }

  export class GetEnumValuesResponse extends EVA.API.ResponseMessage {
    Values : EVA.Core.Services.GetEnumValuesResponseEnumValue[];
    IsFlags : boolean;
  }

  export class GetFinancialPeriodAccountsSummary extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetFinancialPeriodAccountsSummaryResponse> {
    FinancialPeriodID : number; // Int32
  }

  export class GetFinancialPeriodAccountsSummaryResponse extends EVA.API.ResponseMessage {
    Accounts : EVA.Core.AccountSummary[];
  }

  export class GetFinancialPeriodClosingImpediments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetFinancialPeriodClosingImpedimentsResponse> {
    FinancialPeriodID : number; // Int32
  }

  export class GetFinancialPeriodClosingImpedimentsResponse extends EVA.API.ResponseMessage {
    Impediments : EVA.Core.FinancialPeriodClosingImpediment[];
  }

  export class GetFinancialPeriodDetails extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetFinancialPeriodDetailsResponse> {
    FinancialPeriodID : number; // Int32
  }

  export class GetFinancialPeriodDetailsResponse extends EVA.API.ResponseMessage {
    Details : EVA.Core.FinancialPeriodDetailsDto;
  }

  export class GetFinancialPeriodExportDocuments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetFinancialPeriodExportDocumentsResponse> {
    ID : number; // Int32
  }

  export class GetFinancialPeriodExportDocumentsResponse extends EVA.API.ResponseMessage {
    RequestDocuments : EVA.Core.TransputJobDocument[];
    ResponseDocuments : EVA.Core.TransputJobDocument[];
  }

  export class GetFinancialPeriodInformation extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetFinancialPeriodInformationResponse> {
    // If left null, defaults to the current period of the logged in user.
    FinancialPeriodID? : number; // Int32, nullable
  }

  export class GetFinancialPeriodInformationResponse extends EVA.API.ResponseMessage {
    FinancialPeriodID : number; // Int32
    Status : EVA.Core.FinancialPeriodStatus;
    CashJournals : EVA.Core.CashJournalDetailsModel[];
    PaymentTypeSummaries : EVA.Core.Services.GetFinancialPeriodInformationResponsePaymentTypeSummary[];
    OrganizationUnit : EVA.Core.Services.GetFinancialPeriodInformationResponseFinancialPeriodOrganizationUnit;
  }

  export class GetFiscalOrderData extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetFiscalOrderDataResponse> {
    OrderID : number; // Int32
  }

  export class GetFiscalOrderDataResponse extends EVA.API.ResponseMessage {
    FiscalID : string;
    VatNumber : string;
  }

  export class GetFlatOrganizationUnitTree extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetFlatOrganizationUnitTreeResponse> {
    OrganizationUnitID : number; // Int32
  }

  export class GetFlatOrganizationUnitTreeResponse extends EVA.API.ResponseMessage {
    OrganizationUnits : EVA.Core.Services.GetFlatOrganizationUnitTreeResponseOrganizationUnitDto[];
  }

  export class GetGiftCardOptions extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetGiftCardOptionsResponse> {
    ProductID : number; // Int32
    CardNumber : string;
  }

  export class GetGiftCardOptionsResponse extends EVA.API.ResponseMessage {
    CardID : string;
    Status : string;
    CurrencyID : string;
    BusinessRules : EVA.Core.Services.GetGiftCardOptionsResponseCardBusinessRules;
  }

  export class GetGiftWrappingOptionsForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetGiftWrappingOptionsForOrderResponse> {
    OrderID : number; // Int32
  }

  export class GetGiftWrappingOptionsForOrderResponse extends EVA.API.ResponseMessage {
    WrapOrder : boolean;
    WrapIndividually : boolean;
    GiftWraps : EVA.Core.Services.GiftWrap[];
    Message : string;
    GreetingCardProductID? : number; // Int32, nullable
  }

  export class GetInvoice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetInvoiceResponse> {
    ID : number; // Int32
  }

  export class GetInvoiceAdditionalAmountsForInvoice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetInvoiceAdditionalAmountsForInvoiceResponse> {
    InvoiceID : number; // Int32
  }

  export class GetInvoiceAdditionalAmountsForInvoiceResponse extends EVA.API.ResponseMessage {
    InvoiceAdditionalAmounts : EVA.Core.Services.GetInvoiceAdditionalAmountsForInvoiceResponseInvoiceAdditionalAmountDto[];
  }

  export class GetInvoiceAdditionalAmountTypeByID extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetInvoiceAdditionalAmountTypeByIDResponse> {
    ID : number; // Int32
  }

  export class GetInvoiceAdditionalAmountTypeByIDResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    Name : string;
    Description : string;
    LedgerClassID : string;
  }

  export class GetInvoiceAdditionalAmountTypes extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetInvoiceAdditionalAmountTypesResponse> {
  }

  export class GetInvoiceAdditionalAmountTypesResponse extends EVA.API.ResponseMessage {
    InvoiceAdditionalAmountTypes : EVA.Core.Services.GetInvoiceAdditionalAmountTypesResponseInvoiceAdditionalAmountTypeDto[];
  }

  export class GetInvoiceDisputeReasonByID extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetInvoiceDisputeReasonByIDResponse> {
    ID : number; // Int32
  }

  export class GetInvoiceDisputeReasonByIDResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    Name : string;
    Description : string;
    LedgerClassID : string;
    AutoResolve : boolean;
  }

  export class GetInvoiceDisputeReasons extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetInvoiceDisputeReasonsResponse> {
  }

  export class GetInvoiceDisputeReasonsResponse extends EVA.API.ResponseMessage {
    InvoiceDisputeReasons : EVA.Core.Services.GetInvoiceDisputeReasonsResponseInvoiceDisputeReasonDto[];
  }

  export class GetInvoiceDisputesForInvoice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetInvoiceDisputesForInvoiceResponse> {
    InvoiceID : number; // Int32
  }

  export class GetInvoiceDisputesForInvoiceResponse extends EVA.API.ResponseMessage {
    InvoiceDisputes : EVA.Core.Services.GetInvoiceDisputesForInvoiceResponseInvoiceDisputeDto[];
    TotalDisputedAmount : number; // Decimal
  }

  export class GetInvoiceExportByID extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetInvoiceExportByIDResponse> {
    ID : number; // Int32
  }

  export class GetInvoiceExportByIDResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    InvoiceID : number; // Int32
    Name : string;
    Status : EVA.Core.TransputJobStatuses;
    CreationTime : string; // DateTime
    LastModificationTime? : string; // DateTime, nullable
  }

  export class GetInvoiceExportDocuments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetInvoiceExportDocumentsResponse> {
    ID : number; // Int32
  }

  export class GetInvoiceExportDocumentsResponse extends EVA.API.ResponseMessage {
    RequestDocuments : EVA.Core.TransputJobDocument[];
    ResponseDocuments : EVA.Core.TransputJobDocument[];
  }

  export class GetInvoicePayments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetInvoicePaymentsResponse> {
    OrderID : number; // Int32
    InvoiceID? : number; // Int32, nullable
  }

  export class GetInvoicePaymentsResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.GetInvoicePaymentsResponseInvoicePayment[];
  }

  export class GetInvoiceResponse extends EVA.API.ResponseMessage {
    Invoice : EVA.Core.InvoiceDetailsDto;
  }

  export class GetOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrderResponse> {
    OrderID : number; // Int32
    IncludeFailedPayments : boolean;
    IncludePendingPayments : boolean;
    ProductProperties : string[];
    ShowOnlyShippableLines : boolean;
  }

  export class GetOrderExportByID extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrderExportByIDResponse> {
    ID : number; // Int32
  }

  export class GetOrderExportByIDResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    OrderID : number; // Int32
    Name : string;
    Status : EVA.Core.TransputJobStatuses;
    IsDelivery : boolean;
    ShipFromOrganizationUnitID? : number; // Int32, nullable
    ShipFromOrganizationUnitName : string;
    ShipToOrganizationUnitID : number; // Int32
    ShipToOrganizationUnitName : string;
    Lines : EVA.Core.Services.GetOrderExportByIDResponseOrderExportLineDto[];
    CreationTime : string; // DateTime
    LastModificationTime? : string; // DateTime, nullable
  }

  export class GetOrderExportDocuments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrderExportDocumentsResponse> {
    ID : number; // Int32
  }

  export class GetOrderExportDocumentsResponse extends EVA.API.ResponseMessage {
    RequestDocuments : EVA.Core.TransputJobDocument[];
    ResponseDocuments : EVA.Core.TransputJobDocument[];
  }

  export class GetOrderResponse extends EVA.API.GetResponse<EVA.Core.OrderDto> {
    Amounts : EVA.Core.OpenOrderAmounts;
    HasMoreLines : boolean;
  }

  export class GetOrderStatistics extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrderStatisticsResponse> {
    OrderID : number; // Int32
  }

  export class GetOrderStatisticsResponse extends EVA.API.ResponseMessage {
    Statistics : EVA.Core.OrderStatistics;
  }

  export class GetOrderSummaryForShipping extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrderSummaryForShippingResponse> {
    OrderID : number; // Int32
  }

  export class GetOrderSummaryForShippingResponse extends EVA.API.ResponseMessage {
    Lines : EVA.Core.Services.GetOrderSummaryForShippingResponseOrderLineSummary[];
  }

  export class GetOrganizationUnit extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrganizationUnitResponse> {
    OrganizationUnitID : number; // Int32
  }

  export class GetOrganizationUnitCreditBalance extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrganizationUnitCreditBalanceResponse> {
    OrganizationUnitID : number; // Int32
  }

  export class GetOrganizationUnitCreditBalanceResponse extends EVA.API.ResponseMessage {
    CreditBalance : number; // Decimal
  }

  export class GetOrganizationUnitDetailed extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrganizationUnitDetailedResponse> {
    ID : number; // Int32
  }

  export class GetOrganizationUnitDetailedResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    ParentID? : number; // Int32, nullable
    Name : string;
    Description : string;
    AddressID? : number; // Int32, nullable
    Address : EVA.Core.AddressDto;
    EmailAddress : string;
    PhoneNumber : string;
    Type : EVA.Framework.OrganizationUnitTypes;
    Status : EVA.Core.OrganizationUnitStatus;
    OpeningHours : EVA.Core.OpeningHoursDto[];
    Subnet : string;
    RegisterCashLimit? : number; // Decimal, nullable
    SafeCashLimit? : number; // Decimal, nullable
    VisibleByApplicationID : number; // Int32
    Latitude? : number; // Double, nullable
    Longitude? : number; // Double, nullable
    RegistrationNumber : string;
    VatNumber : string;
    BankAccount : string;
    CurrencyID : string;
    TimeZone : string;
    CocNumber : string;
  }

  export class GetOrganizationUnitNotes extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrganizationUnitNotesResponse> {
    OrganizationUnitID : number; // Int32
  }

  export class GetOrganizationUnitNotesResponse extends EVA.API.ResponseMessage {
    Notes : string;
  }

  export class GetOrganizationUnitOpeningHoursForPeriod extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrganizationUnitOpeningHoursForPeriodResponse> {
    OrganizationUnitID : number; // Int32
    From : string; // DateTime
    To : string; // DateTime
  }

  export class GetOrganizationUnitOpeningHoursForPeriodResponse extends EVA.API.ResponseMessage {
    OpeningHours : { [ key : string ] : EVA.Core.Services.GetOrganizationUnitOpeningHoursForPeriodResponseOrganizationUnitOpeningHours };
  }

  export class GetOrganizationUnitResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.OrganizationUnitDto;
  }

  export class GetOrganizationUnitSettings extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrganizationUnitSettingsResponse> {
    OrganizationUnitID : number; // Int32
  }

  export class GetOrganizationUnitSettingsResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    ParentID? : number; // Int32, nullable
    BackendID : string;
    BackendRelationID : string;
    BackendCompanyID : string;
    BranchNumber : string;
    GlobalLocationNumber : string;
    RegisterCashLimit? : number; // Decimal, nullable
    SafeCashLimit? : number; // Decimal, nullable
    CashHandlerID? : number; // Int32, nullable
    CashHandlerName : string;
    TypeID : number; // Int32
    Subnet : string;
    UseForAccounting : boolean;
    AttachedToUserID? : number; // Int32, nullable
    IpAddress : string;
    CountryID : string;
    LanguageID : string;
    CurrencyID : string;
    CostPriceCurrencyID : string;
    TimeZone : string;
    AssortmentID? : number; // Int32, nullable
    AssortmentName : string;
    RoleSetID : number; // Int32
    RoleSetName : string;
  }

  export class GetOrganizationUnitsForUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrganizationUnitsForUserResponse> {
    IncludeNonLoginOrganizationUnits : boolean;
    UserTypeFilter : EVA.Framework.UserTypes;
  }

  export class GetOrganizationUnitsForUserResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.OrganizationUnitDto[];
  }

  export class GetOrganizationUnitTree extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetOrganizationUnitTreeResponse> {
    OrganizationUnitID : number; // Int32
  }

  export class GetOrganizationUnitTreeResponse extends EVA.API.GetResponse<EVA.Core.Services.OrganizationUnitTreeDto> {
  }

  export class GetPaymentTransaction extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetPaymentTransactionResponse> {
    PaymentTransactionID : number; // Int32
  }

  export class GetPaymentTransactionResponse extends EVA.API.ResponseMessage {
    PaymentTransaction : EVA.Core.PaymentTransactionDto;
  }

  export class GetPaymentTransactionsForInvoice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetPaymentTransactionsResponse> {
    InvoiceID : number; // Int32
  }

  export class GetPaymentTransactionsForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetPaymentTransactionsResponse> {
    OrderID : number; // Int32
  }

  export class GetPaymentTransactionsResponse extends EVA.API.ResponseMessage {
    PaymentTransactions : EVA.Core.Services.GetPaymentTransactionsResponsePaymentTransaction[];
  }

  export class GetPickProductDiscountOptionsForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetPickProductDiscountOptionsForOrderResponse> {
    OrderID : number; // Int32
  }

  export class GetPickProductDiscountOptionsForOrderLine extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetPickProductDiscountOptionsForOrderLineResponse> {
    OrderLineID : number; // Int32
  }

  export class GetPickProductDiscountOptionsForOrderLineResponse extends EVA.API.ResponseMessage {
    BaseAmount : number; // Decimal
    Options : number[];
    Tiers : EVA.Core.Services.PickProductTierOptions[];
    CurrentSelection? : number; // Int32, nullable
    CurrentTier : string;
  }

  export class GetPickProductDiscountOptionsForOrderResponse extends EVA.API.ResponseMessage {
    OptionsPerLine : { [ key : number ] : EVA.Core.Services.GetPickProductDiscountOptionsForOrderResponsePickProductDiscountOptions };
  }

  export class GetPotentialBundleProductsForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetPotentialBundleProductsForOrderResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    IncludedFields : string[];
    ProductIDs : number[];
  }

  export class GetPotentialBundleProductsForOrderResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.GetPotentialBundleProductsForOrderResponseBundleProduct[];
  }

  export class GetPotentialDiscountsForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetPotentialDiscountsResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    ProductID? : number; // Int32, nullable
  }

  export class GetPotentialDiscountsForProductSearch extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetPotentialDiscountsResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    SearchProductsRequest : EVA.Core.Services.SearchProducts;
  }

  export class GetPotentialDiscountsResponse extends EVA.API.ResponseMessage {
    OrderDiscounts : EVA.Core.Services.PotentialDiscountDto[];
    ProductDiscounts : { [ key : number ] : EVA.Core.Services.PotentialDiscountDto[] };
  }

  export class GetProductAvailability extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductAvailabilityResponse> {
    Products : EVA.Core.Services.GetProductAvailabilityProduct[];
    OrganizationUnitID? : number; // Int32, nullable
    Options : EVA.Core.Services.GetProductAvailabilityAvailabilityOptions;
  }

  export class GetProductAvailabilityData extends EVA.API.GetRequestGeneric<EVA.Core.Services.GetProductAvailabilityDataResponse> {
  }

  export class GetProductAvailabilityDataResponse extends EVA.API.GetResponse<EVA.Core.ProductAvailabilityDataDto> {
  }

  export class GetProductAvailabilityResponse extends EVA.API.ResponseMessage {
    Products : EVA.Core.Services.GetProductAvailabilityResponseProductAvailabilityResult[];
  }

  export class GetProductBundle extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductBundleResponse> {
    ID : number; // Int32
    IncludedFields : string[];
  }

  export class GetProductBundleLineDto {
    ID : number; // Int32
    Description : string;
    BackendID : string;
    Type : EVA.Core.ProductBundleLineTypes;
    DefaultProduct : EVA.Core.Services.ProductBundlesProductInfo;
    Options : EVA.Core.Services.GetProductBundleLineOptionDto[];
  }

  export class GetProductBundleLineOptionDto {
    ID : number; // Int32
    Sequence : number; // Int32
    Quantity : number; // Int32
    Product : EVA.Core.Services.ProductBundlesProductInfo;
  }

  export class GetProductBundleResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    BackendID : string;
    BundleProduct : EVA.Core.Services.ProductBundlesProductInfo;
    BundlePricing : EVA.Core.Services.BundleProductPriceInfo;
    Lines : EVA.Core.Services.GetProductBundleLineDto[];
  }

  export class GetProductDetail extends EVA.API.GetRequestGeneric<EVA.Core.Services.GetProductDetailResponse> {
  }

  export class GetProductDetailResponse extends EVA.API.GetResponse<any> {
  }

  export class GetProductPrices extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductPricesResponse> {
    ProductIDs : number[];
  }

  export class GetProductPricesResponse extends EVA.API.ResponseMessage {
    Prices : EVA.Core.Services.PriceInfo[];
  }

  export class GetProductPricing extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductPricingResponse> {
    ProductID : number; // Int32
  }

  export class GetProductPricingResponse extends EVA.API.ResponseMessage {
    UnitPrice : number; // Decimal
    OriginalUnitPrice? : number; // Decimal, nullable
    TaxRate : number; // Decimal
    UnitPriceInTax : number; // Decimal
    OriginalUnitPriceInTax? : number; // Decimal, nullable
    CurrencyID : string;
    UnitCost? : number; // Decimal, nullable
    CostPriceCurrencyID : string;
  }

  export class GetProductRequirementByID extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductRequirementByIDResponse> {
    ID : number; // Int32
  }

  export class GetProductRequirementByIDResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    ProductID : number; // Int32
    ProductCustomID : string;
    ProductName : string;
    Name : string;
    DataType : EVA.Core.ProductRequirementDataTypes;
    IsArray : boolean;
    IsRequired : boolean;
    Data : any;
  }

  export class GetProductRequirementValuesForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductRequirementValuesForOrderResponse> {
    OrderID : number; // Int32
  }

  export class GetProductRequirementValuesForOrderLine extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductRequirementValuesForOrderLineResponse> {
    OrderLineID : number; // Int32
  }

  export class GetProductRequirementValuesForOrderLineResponse extends EVA.API.ResponseMessage {
    Values : { [ key : number ] : any };
  }

  export class GetProductRequirementValuesForOrderResponse extends EVA.API.ResponseMessage {
    Values : { [ key : number ] : { [ key : number ] : any } };
  }

  export class GetProductRunRates extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductRunRatesResponse> {
    ProductIDs : number[];
    WarehouseOrganizationUnitID : number; // Int32
    Since : string; // DateTime
  }

  export class GetProductRunRatesResponse extends EVA.API.ResponseMessage {
    TotalQuantity : number; // Int32
    DailyRunRate : number; // Double
    MonthlyRunRate : number; // Double
    RunRates : EVA.Core.Services.GetProductRunRatesResponseRunRate[];
  }

  export class GetProducts extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductsResponse> {
    ProductIDs : number[];
    IncludedFields : string[];
  }

  export class GetProductSearchSuggestions extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductSearchSuggestionsResponse> {
    Text : string;
    MaxSuggestions? : number; // Int32, nullable
  }

  export class GetProductSearchSuggestionsResponse extends EVA.API.ResponseMessage {
    Suggestions : EVA.Core.SuggestionModel[];
  }

  export class GetProductsResponse extends EVA.API.ResponseMessage {
    Products : { [ key : number ] : any };
  }

  export class GetProductStructure extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductStructureResponse> {
    Code : string;
    LanguageID : string;
    CountryID : string;
  }

  export class GetProductStructureResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    Code : string;
    Name : string;
    LanguageID : string;
    CountryID : string;
    Definition : EVA.Core.ProductStructureDefinition;
  }

  export class GetProductSupplierInfoForProducts extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductSupplierInfoForProductsResponse> {
    ProductIDs : number[];
    OrganizationUnitID? : number; // Int32, nullable
  }

  export class GetProductSupplierInfoForProductsResponse extends EVA.API.ResponseMessage {
    ProductSupplierInfos : EVA.Core.Services.GetProductSupplierInfoForProductsResponseProductSupplierInfo[];
  }

  export class GetProductUnitOfMeasureQuantities extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetProductUnitOfMeasureQuantitiesResponse> {
    Products : EVA.Core.Services.GetProductUnitOfMeasureQuantitiesModel[];
  }

  export class GetProductUnitOfMeasureQuantitiesResponse extends EVA.API.ResponseMessage {
    Results : EVA.Core.Services.GetProductUnitOfMeasureQuantitiesResponseModel[];
  }

  export class GetPurchaseOrderShipment extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetPurchaseOrderShipmentResponse> {
    ShipmentID : number; // Int32
  }

  export class GetPurchaseOrderShipmentResponse extends EVA.API.ResponseMessage {
    Shipment : EVA.Core.PurchaseOrderShipmentDto;
  }

  export class GetQuantityOnHandForProducts extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetQuantityOnHandForProductsResponse> {
    OrganizationUnitID : number; // Int32
    ProductIDs : number[];
  }

  export class GetQuantityOnHandForProductsResponse extends EVA.API.GetResponse<{ [ key : number ] : number }> {
  }

  export class GetRelatedOrderLines extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetRelatedOrderLinesResponse> {
    OrderLineID : number; // Int32
  }

  export class GetRelatedOrderLinesResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.GetRelatedOrderLinesResponseModel[];
  }

  export class GetRelatedOrders extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetRelatedOrdersResponse> {
    OrderID : number; // Int32
  }

  export class GetRelatedOrdersResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.GetRelatedOrdersResponseModel[];
  }

  export class GetRequiredDataForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetRequiredDataForOrderResponse> {
    OrderID : number; // Int32
    RequiredFor : EVA.Core.RequiredFor;
  }

  export class GetRequiredDataForOrderResponse extends EVA.API.ResponseMessage {
    RequiredData : EVA.Core.RequiredData;
  }

  export class GetRequiredOrganizationUnitFields extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetRequiredOrganizationUnitFieldsResponse> {
  }

  export class GetRequiredOrganizationUnitFieldsResponse extends EVA.API.ResponseMessage {
    RequiredFields : string[];
  }

  export class GetReturnableStatusForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetReturnableStatusForOrderResponse> {
    OrderID : number; // Int32
  }

  export class GetReturnableStatusForOrderResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.ReturnableStatusForOrderLine[];
    ReturnSets : EVA.Core.Services.OrderLinesReturnSet[];
  }

  export class GetReturnToSupplierData extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetReturnToSupplierDataResponse> {
    OrderID : number; // Int32
  }

  export class GetReturnToSupplierDataResponse extends EVA.API.ResponseMessage {
    Reason : EVA.Framework.EnumDto;
  }

  export class GetSalesTaxEstimateForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.SalesTaxEstimateForOrderResponse> {
    OrderID : number; // Int32
  }

  export class GetShipmentDetails extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetShipmentDetailsResponse> {
    ID? : number; // Int32, nullable
    BackendID : string;
    OrganizationUnitID? : number; // Int32, nullable
  }

  export class GetShipmentDetailsResponse extends EVA.API.ResponseMessage {
    ReceiveMethod : EVA.Core.ShipmentReceiveMethods;
    IsCompleted : boolean;
    WorkSet : EVA.Core.ReceiveShipmentWorkSet;
  }

  export class GetShipmentExportByID extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetShipmentExportByIDResponse> {
    ID : number; // Int32
  }

  export class GetShipmentExportByIDResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    ShipmentID : number; // Int32
    Name : string;
    Status : EVA.Core.TransputJobStatuses;
    ShippedFromOrganizationUnitID? : number; // Int32, nullable
    ShippedFromOrganizationUnitName : string;
    ShippedToOrganizationUnitID : number; // Int32
    ShippedToOrganizationUnitName : string;
    CreationTime : string; // DateTime
    LastModificationTime? : string; // DateTime, nullable
  }

  export class GetShipmentExportDocuments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetShipmentExportDocumentsResponse> {
    ID : number; // Int32
  }

  export class GetShipmentExportDocumentsResponse extends EVA.API.ResponseMessage {
    RequestDocuments : EVA.Core.TransputJobDocument[];
    ResponseDocuments : EVA.Core.TransputJobDocument[];
  }

  export class GetShipmentLines extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetShipmentLinesResponse> {
    ShipmentID : number; // Int32
  }

  export class GetShipmentLinesResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.GetShipmentLinesResponseModel[];
  }

  export class GetShipmentReceipt extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetShipmentReceiptResponse> {
    ShipmentReceiptID : number; // Int32
  }

  export class GetShipmentReceiptResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    BackendID : string;
    BackendSystemID : string;
    TotalQuantityReceived : number; // Int32
    Lines : EVA.Core.Services.GetShipmentReceiptResponseLineDto[];
  }

  export class GetShipmentSettings extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetShipmentSettingsResponse> {
    OrganizationUnitID? : number; // Int32, nullable
  }

  export class GetShipmentSettingsResponse extends EVA.API.ResponseMessage {
    OrganizationUnitID : number; // Int32
    DefaultReceiveMethod : EVA.Core.ShipmentReceiveMethods;
  }

  export class GetShippingMethodsForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetShippingMethodsForOrderResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
  }

  export class GetShippingMethodsForOrderResponse extends EVA.API.ResponseMessage {
    ShippingMethods : EVA.Core.ShippingMethodByOrderLineDto[];
  }

  export class GetShoppingCart extends EVA.API.RequestMessageGeneric<EVA.Core.ShoppingCartResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    ProductProperties : string[];
    // By default only confirmed payments are returned, enabling this flag will return all PaymentTransactions
    IncludeAllPayments? : boolean;
  }

  export class GetShoppingCartInfo extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetShoppingCartInfoResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
  }

  export class GetShoppingCartInfoResponse extends EVA.API.ResponseMessage {
    OrderID : number; // Int32
    QuantityOrdered : number; // Int32
    TotalAmount : number; // Decimal
    // Obsolete
    ForeignTotalAmount : number; // Decimal
    CurrencyID : string;
  }

  export class GetShopsByProximity extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetShopsByProximityResponse> {
    // Amount of stores to return, defaults to 10, max 100
    Limit? : number; // Int32, nullable
    // Range around the coordinates to look for shops, in meters, defaults to setting `DefaultShopProximityRange` / 50000, max 250000
    Range? : number; // Int32, nullable
    // Filter only stores with available stock
    HasStock : boolean;
    Status : EVA.Core.OrganizationUnitStatus;
    ProductID? : number; // Int32, nullable
    Latitude : number; // Double
    Longitude : number; // Double
  }

  export class GetShopsByProximityResponse extends EVA.API.ResponseMessage {
    Shops : EVA.Core.Services.GetShopsByProximityResponseShopInfo[];
  }

  export class GetStation extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetStationResponse> {
    ID : number; // Int32
  }

  export class GetStationResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.StationDto;
  }

  export class GetStockAvailabilityEstimateForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetStockAvailabilityEstimateForOrderResponse> {
    OrderID : number; // Int32
    OrderLines : EVA.Core.Services.GetStockAvailabilityEstimateForOrderOrderLine[];
  }

  export class GetStockAvailabilityEstimateForOrderResponse extends EVA.API.ResponseMessage {
    OrderLines : EVA.Core.Services.GetStockAvailabilityEstimateForOrderResponseOrderLine[];
  }

  export class GetStockAvailabilityEstimateForProducts extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetStockAvailabilityEstimateForProductsResponse> {
    OrganizationUnitID? : number; // Int32, nullable
    Products : EVA.Core.Services.GetStockAvailabilityEstimateForProductsProduct[];
    // If set true the service will also return reserved OrderLines
    IncludeReservedOrders : boolean;
    // If set to true the service will also return purchase OrderLines meant for shops
    IncludeShopReplenishments : boolean;
  }

  export class GetStockAvailabilityEstimateForProductsResponse extends EVA.API.ResponseMessage {
    Products : EVA.Core.Services.GetStockAvailabilityEstimateForProductsResponseProduct[];
  }

  export class GetStockAvailabilityTimeline extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetStockAvailabilityTimelineResponse> {
    OrganizationUnitID? : number; // Int32, nullable
    ProductIDs : number[];
    FromDate? : string; // DateTime, nullable
    ToDate? : string; // DateTime, nullable
    Type : EVA.Core.Services.AvailabilityTimelineItemTypes;
  }

  export class GetStockAvailabilityTimelineResponse extends EVA.API.ResponseMessage {
    TimelineItems : EVA.Core.Services.GetStockAvailabilityTimelineResponseTimelineItem[];
  }

  export class GetStockByStockLabelForProducts extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetStockByStockLabelForProductsResponse> {
    OrganizationUnitID : number; // Int32
    ProductIDs : number[];
    StockLabelIDs : number[];
  }

  export class GetStockByStockLabelForProductsResponse extends EVA.API.ResponseMessage {
    Stock : { [ key : number ] : EVA.Core.Services.GetStockByStockLabelForProductsResponseStockLabelStock[] };
  }

  export class GetStockDetailsForProduct extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetStockDetailsForProductResponse> {
    ProductID : number; // Int32
  }

  export class GetStockDetailsForProductResponse extends EVA.API.ResponseMessage {
    PromisedDeliveryDate? : string; // DateTime, nullable
    PromisedDeliveryStatus? : EVA.Core.ProductPromisedDeliveryStatuses;
    QuantityOnHand : number; // Int32
    SellableQuantityAvailable : number; // Int32
    StockPerLabel : { [ key : number ] : number };
    StockInTransit : EVA.Core.InTransit[];
    SellableStockInStoresWithinApplication : number; // Int32
    SellableStockInWarehouses : EVA.Core.OrganizationUnitWithStock[];
  }

  export class GetStockLabels extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetStockLabelsResponse> {
  }

  export class GetStockLabelsResponse extends EVA.API.ResponseMessage {
    StockLabels : EVA.Core.Services.GetStockLabelsResponseStockLabelDto[];
  }

  export class GetStockNotification extends EVA.API.RequestMessageGeneric<EVA.Core.Services.StockNotificationResponse> {
    ProductID : number; // Int32
    OrganizationUnitID : number; // Int32
    EmailAddress : string;
  }

  export class GetStockNotificationForCurrentUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.StockNotificationResponse> {
    ProductID : number; // Int32
    OrganizationUnitID? : number; // Int32, nullable
  }

  export class GetStockResource extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetStockResourceResponse> {
    ResourceID : number; // Int32
  }

  export class GetStockResourceResponse extends EVA.API.ResponseMessage {
    Resource : EVA.Core.Services.StockResourceDto;
  }

  export class GetStringTranslation extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetStringTranslationResponse> {
    Key : string;
    LanguageID : string;
    CountryID : string;
  }

  export class GetStringTranslationResponse extends EVA.API.ResponseMessage {
    Key : string;
    LanguageID : string;
    CountryID : string;
    Value : string;
  }

  export class GetSuppliersForOrganizationUnit extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetSuppliersForOrganizationUnitResponse> {
    OrganizationUnitID : number; // Int32
  }

  export class GetSuppliersForOrganizationUnitResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.GetSuppliersForOrganizationUnitResponseModel[];
  }

  export class GetSupplierStockForProduct extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetSupplierStockForProductResponse> {
    OrganizationUnitID : number; // Int32
    SupplierID : number; // Int32
    ProductID : number; // Int32
  }

  export class GetSupplierStockForProductResponse extends EVA.API.ResponseMessage {
    AvailableStock : number; // Int32
  }

  export class GetTaxRate extends EVA.API.GetRequest implements EVA.API.IRequestRespondsAs<EVA.Core.Services.GetTaxRateResponse> {
  }

  export class GetTaxRateResponse extends EVA.API.GetResponse<EVA.Core.TaxRateModel> {
  }

  export class GetTokenInfo extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetTokenInfoResponse> {
    Authorization : string;
  }

  export class GetTokenInfoResponse extends EVA.API.ResponseMessage {
    UserID : number; // Int32
    ExpirationDate? : string; // DateTime, nullable
    OrganizationUnitID? : number; // Int32, nullable
    ApplicationID? : number; // Int32, nullable
    LanguageID : string;
    TemporaryAccessType : string;
    TemporaryAccessData : any;
  }

  export class GetTransportOrderLineData extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetTransportOrderLineDataResponse> {
    OrderLineID : number; // Int32
  }

  export class GetTransportOrderLineDataResponse extends EVA.API.ResponseMessage {
    TransportOrderLineData : EVA.Core.TransportOrderLineData;
  }

  export class GetUser extends EVA.API.GetRequestGeneric<EVA.Core.Services.GetUserResponse> {
  }

  export class GetUserBySocialSecurityNumber extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetUserBySocialSecurityNumberResponse> {
    SocialSecurityNumber : string;
    AsEmployee? : boolean;
  }

  export class GetUserBySocialSecurityNumberResponse extends EVA.API.ResponseMessage {
    UserID? : number; // Int32, nullable
  }

  export class GetUserConsignment extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetUserConsignmentResponse> {
    UserID : number; // Int32
  }

  export class GetUserConsignmentResponse extends EVA.API.ResponseMessage {
    UseConsignment : boolean;
  }

  export class GetUserDebtorData extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetUserDebtorDataResponse> {
    UserID : number; // Int32
  }

  export class GetUserDebtorDataResponse extends EVA.API.ResponseMessage {
    PaymentTerms : string;
    CreditLimit? : number; // Decimal, nullable
    ColloPrice? : number; // Decimal, nullable
    PalletPrice? : number; // Decimal, nullable
    OversizedPrice? : number; // Decimal, nullable
    AssignedToUser : EVA.Core.Services.AssignedToUser;
    IsTaxExempt : boolean;
  }

  export class GetUserGroupByID extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetUserGroupByIDResponse> {
    ID : number; // Int32
  }

  export class GetUserGroupByIDResponse extends EVA.API.ResponseMessage {
    Name : string;
  }

  export class GetUserIdentificationByID extends EVA.API.GetRequestGeneric<EVA.Core.Services.GetUserIdentificationByIDResponse> {
  }

  export class GetUserIdentificationByIDResponse extends EVA.API.GetResponse<EVA.Core.Services.IdentificationDto> {
  }

  export class GetUserInfoBySocialSecurityNumber extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetUserInfoBySocialSecurityNumberResponse> {
    CountryID : string;
    SocialSecurityNumber : string;
  }

  export class GetUserInfoBySocialSecurityNumberResponse extends EVA.API.ResponseMessage {
    Data : EVA.Core.UserDto;
    Address : EVA.Core.AddressDto;
  }

  export class GetUserPhoneNumbers extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetUserPhoneNumbersResponse> {
    UserID? : number; // Int32, nullable
  }

  export class GetUserPhoneNumbersResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.UserPhoneNumberModel[];
  }

  export class GetUserResponse extends EVA.API.GetResponse<EVA.Core.UserDto> {
  }

  export class GetUserSubscriptions extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetUserSubscriptionsResponse> {
    UserID? : number; // Int32, nullable
  }

  export class GetUserSubscriptionsResponse extends EVA.API.ResponseMessage {
    Subscriptions : EVA.Core.Services.GetUserSubscriptionsResponseUserSubscriptionDto[];
  }

  export class GetWarehouseOrderData extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetWarehouseOrderDataResponse> {
    OrderID : number; // Int32
  }

  export class GetWarehouseOrderDataResponse extends EVA.API.ResponseMessage {
    WarehouseOrderData : EVA.Core.WarehouseOrderData;
  }

  export class GetWebshops extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetWebshopsResponse> {
  }

  export class GetWebshopsResponse extends EVA.API.ResponseMessage {
    Webshops : EVA.Core.Services.GetWebshopsResponseWebshopDto[];
  }

  export class GetWishList extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetWishListResponse> {
    OrderID : number; // Int32
    // Required if you are not the owner of the wishlist.
    AccessToken : string;
    IncludedProperties : string[];
    ShowUnconfirmedFundings : boolean;
  }

  export class GetWishListOrderLineData extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetWishListOrderLineDataResponse> {
    OrderID : number; // Int32
  }

  export class GetWishListOrderLineDataResponse extends EVA.API.ResponseMessage {
    Lines : EVA.Core.Services.GetWishListOrderLineDataResponseWishListOrderLineDataDto[];
  }

  export class GetWishListResponse extends EVA.API.GetResponse<EVA.Core.Services.WishListDto> {
  }

  export class GetWishListsForUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.GetWishListsForUserResponse> {
    ID? : number; // Int32, nullable
    ShowClosedOrders : boolean;
    ShowUnconfirmedFundings : boolean;
    HasOrderLines : boolean;
    IncludedProperties : string[];
  }

  export class GetWishListsForUserResponse extends EVA.API.GetResponse<EVA.Core.Services.WishListDto[]> {
  }

  export class GiftWrap {
    Message : string;
    GreetingCardProductID? : number; // Int32, nullable
    Lines : EVA.Core.Services.WrapLine[];
  }

  export class GiftWrappingLineAvailability {
    OrderLineID : number; // Int32
    QuantityWrapped : number; // Int32
    QuantityAvailable : number; // Int32
    TotalQuantityWrappable : number; // Int32
  }

  export class IdentificationDto {
    ID : number; // Int32
    Type : EVA.Core.IdentificationTypes;
    Number : string;
    ValidTo : string; // DateTime
    IssuingDate? : string; // DateTime, nullable
    IssuingCity : string;
    IssuingCountryID : string;
    OriginatingCountryID : string;
    DocumentID : string;
  }

  export class InterbranchOrganizationUnit {
    ID : number; // Int32
    Name : string;
  }

  export class CreateInvoicesForOrderResponseInvoice {
    ID : number; // Int32
    InvoiceNumber : string;
    TypeID : number; // Int32
    StatusID : number; // Int32
  }

  export class ListInvoicesForOrderResponseInvoice {
    ID : number; // Int32
    InvoiceNumber : string;
    InvoiceDate? : string; // DateTime, nullable
    CreatedByID : number; // Int32
    CreationTime : string; // DateTime
    TotalAmount : number; // Decimal
    PaidAmount : number; // Decimal
    OpenAmount : number; // Decimal
    Payments : EVA.Core.Services.ListInvoicesForOrderResponseInvoicePayment[];
  }

  export class GetInvoiceAdditionalAmountsForInvoiceResponseInvoiceAdditionalAmountDto {
    ID : number; // Int32
    TypeID : number; // Int32
    TypeName : string;
    OriginalAmount : number; // Decimal
    Amount : number; // Decimal
    OriginalAmountInTax : number; // Decimal
    AmountInTax : number; // Decimal
    TaxRate : number; // Decimal
    TaxCodeID : number; // Int32
    TaxCodeName : string;
  }

  export class GetInvoiceAdditionalAmountTypesResponseInvoiceAdditionalAmountTypeDto {
    ID : number; // Int32
    Name : string;
    Description : string;
    LedgerClassID : string;
  }

  export class GetInvoiceDisputesForInvoiceResponseInvoiceDisputeDto {
    ID : number; // Int32
    InvoiceLineID? : number; // Int32, nullable
    InvoiceAdditionalAmountID? : number; // Int32, nullable
    ReasonID : number; // Int32
    ReasonName : string;
    Amount : number; // Decimal
    Description : string;
    IsResolved : boolean;
    ResolvedAmount : number; // Decimal
    Type? : EVA.Core.InvoiceDisputeTypes;
    ResolveActions : EVA.Core.InvoiceDisputeResolveActionDto[];
  }

  export class GetInvoiceDisputeReasonsResponseInvoiceDisputeReasonDto {
    ID : number; // Int32
    Name : string;
    Description : string;
    LedgerClassID : string;
    AutoResolve : boolean;
  }

  export class ListInvoiceExportsForInvoiceResponseInvoiceExportDto {
    ID : number; // Int32
    Name : string;
    Status : EVA.Core.TransputJobStatuses;
    CreationTime : string; // DateTime
    LastModificationTime? : string; // DateTime, nullable
  }

  export class ListInvoiceLedgerResponseInvoiceLedgerDto {
    InvoiceID : number; // Int32
    InvoiceLineID? : number; // Int32, nullable
    InvoiceDisputeID? : number; // Int32, nullable
    TypeID : number; // Int32
    TypeName : string;
    OldValue : string;
    NewValue : string;
    Description : string;
    CreatedByID : number; // Int32
    CreatedByFullName : string;
    CreationTime : string; // DateTime
  }

  export class GetInvoicePaymentsResponseInvoicePayment {
    PaymentTransactionID : number; // Int32
    InvoiceID? : number; // Int32, nullable
    Amount : number; // Decimal
    TypeName : string;
    TypeCode : string;
    MethodName : string;
    MethodCode : string;
  }

  export class CreateShipmentReceiptLine {
    ShipmentLineID : number; // Int32
    StockLabelID? : number; // Int32, nullable
    QuantityReceived : number; // Int32
    Resource : EVA.Core.Services.CreateShipmentReceiptResource;
    CompletesShipmentLine : boolean;
  }

  export class ShipOrderLinesLine {
    ID : number; // Int32
    Quantity : number; // Int32
    BackendReference : string;
  }

  export class GetShipmentReceiptResponseLineDto {
    QuantityReceived : number; // Int32
    ShipmentLine : EVA.Core.Services.GetShipmentReceiptResponseLineDtoShipmentLineDto;
    StockLabel : EVA.Framework.EnumDto;
  }

  export class ListAddressBook extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListAddressBookResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListAddressBookFilter>;
    UserID? : number; // Int32, nullable
  }

  export class ListAddressBookResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.AddressBookDto> {
  }

  export class ListApplications extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListApplicationsResponse> {
  }

  export class ListApplicationsResponse extends EVA.API.GetResponse<EVA.Core.Services.ApplicationDto[]> {
  }

  export class ListAvailableRecurringTasks extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListAvailableRecurringTasksResponse> {
  }

  export class ListAvailableRecurringTasksResponse extends EVA.API.ResponseMessage {
    Tasks : EVA.Core.Services.ListAvailableRecurringTasksResponseTaskPluginDto[];
  }

  export class ListAvailableShippingMethods extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListAvailableShippingMethodsResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    OrderLineIDs : number[];
  }

  export class ListAvailableShippingMethodsResponse extends EVA.API.ResponseMessage {
    AvailableShippingMethods : EVA.Core.ShippingMethodByOrderLineDto[];
  }

  export class ListAvailableTimeZones extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListAvailableTimeZonesResponse> {
  }

  export class ListAvailableTimeZonesResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.ListAvailableTimeZonesResponseModel[];
  }

  export class ListBlobsForFinancialPeriod extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListBlobsForFinancialPeriodResponse> {
    FinancialPeriodID : number; // Int32
  }

  export class ListBlobsForFinancialPeriodResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.FinancialPeriodBlobDto[];
  }

  export class ListBlobsForInvoice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListBlobsForInvoiceResponse> {
    InvoiceID : number; // Int32
  }

  export class ListBlobsForInvoiceResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.ListBlobsForInvoiceResponseModel[];
  }

  export class ListBlobsForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListBlobsForOrderResponse> {
    OrderID : number; // Int32
  }

  export class ListBlobsForOrderResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.OrderBlobDto[];
  }

  export class ListBookings extends EVA.API.PagedResultRequest<EVA.Core.Services.ListBookingsResponse> {
  }

  export class ListBookingsResponse extends EVA.API.PagedResultResponse<EVA.Core.GeneralLedgerDto> {
  }

  export class ListBrands extends EVA.API.PagedResultRequest<EVA.Core.Services.ListBrandsResponse> {
  }

  export class ListBrandsResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListBrandsResponseBrandDto> {
  }

  export class ListCashDeposits extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListCashDepositsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListCashDepositsFilter>;
  }

  export class ListCashDepositsResponse extends EVA.API.PagedResultResponse<EVA.Core.ListCashDepositsItem> {
  }

  export class ListCashExpenses extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListCashExpensesResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListCashExpensesFilter>;
  }

  export class ListCashExpensesResponse extends EVA.API.PagedResultResponse<EVA.Core.ListCashExpensesItem> {
  }

  export class ListCashTransactionLedger extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListCashTransactionLedgerResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListCashTransactionLedgerFilter>;
  }

  export class ListCashTransactionLedgerGroups extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListCashTransactionLedgerGroupsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListCashTransactionLedgerFilter>;
  }

  export class ListCashTransactionLedgerGroupsResponse extends EVA.API.PagedResultResponse<EVA.Core.ListCashTransactionLedgerGroup> {
  }

  export class ListCashTransactionLedgerResponse extends EVA.API.PagedResultResponse<EVA.Core.ListCashTransactionLedgerItem> {
  }

  export class ListCommittedOrderLines extends EVA.API.PagedResultRequest<EVA.Core.Services.ListCommittedOrderLinesResponse> {
    ProductID : number; // Int32
  }

  export class ListCommittedOrderLinesResponse extends EVA.API.PagedResultResponse<EVA.Core.CommittedOrderLine> {
  }

  export class ListCountries extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListCountriesResponse> {
    FetchAll : boolean;
  }

  export class ListCountriesResponse extends EVA.API.GetResponse<EVA.Core.Services.CountryDto[]> {
  }

  export class ListCurrencies extends EVA.API.FilteredPagedResultRequest<EVA.Core.Services.ListCurrenciesFilter, EVA.Core.Services.ListCurrenciesResponse> {
  }

  export class ListCurrenciesFilter {
    ID : string;
    Name : string;
  }

  export class ListCurrenciesResponse extends EVA.API.PagedResultResponse<EVA.Core.CurrencyDto> {
  }

  export class ListDevices extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListDevicesResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListDevicesFilter>;
  }

  export class ListDevicesResponse extends EVA.API.PagedResultResponse<EVA.Core.ListDevicesModel> {
  }

  export class ListEntityTranslations extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListEntityTranslationsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListEntityTranslationsFilter>;
  }

  export class ListEntityTranslationsResponse extends EVA.API.PagedResultResponse<EVA.Core.ListEntityTranslation> {
  }

  export class ListEventLedger extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListEventLedgerResponse> {
    Query : string;
    PageConfig : EVA.Framework.ScrollablePageConfig<EVA.Core.EventLedgerFilters>;
  }

  export class ListEventLedgerResponse extends EVA.API.ResponseMessage {
    Result : EVA.Framework.ScrollablePagedResult<EVA.Core.EventLedgerDocument>;
  }

  export class ListExternalOrderStatusForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListExternalOrderStatusForOrderResponse> {
    OrderID : number; // Int32
  }

  export class ListExternalOrderStatusForOrderResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.ListExternalOrderStatusForOrderResponseExternalOrderStatus[];
  }

  export class ListFeedSubscriptions extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListFeedSubscriptionsResponse> {
  }

  export class ListFeedSubscriptionsResponse extends EVA.API.GetResponse<EVA.Core.Services.FeedSubscriptionDto[]> {
  }

  export class ListFinancialEvents extends EVA.API.PagedRequestMessage<EVA.Core.ListFinancialEventsFilter, EVA.Core.Services.ListFinancialEventsResponse> {
  }

  export class ListFinancialEventsResponse extends EVA.API.PagedResponseMessage<EVA.Core.ListFinancialEventRow> {
  }

  export class ListFinancialPeriodAudits extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListFinancialPeriodAuditsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListAuditsFilter>;
  }

  export class ListFinancialPeriodAuditsResponse extends EVA.API.PagedResultResponse<EVA.Core.FinancialPeriodAuditDto> {
  }

  export class ListFinancialPeriodExports extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListFinancialPeriodExportsResponse> {
    FinancialPeriodID : number; // Int32
  }

  export class ListFinancialPeriodExportsResponse extends EVA.API.ResponseMessage {
    Results : EVA.Core.Services.ListFinancialPeriodExportsResponseModel[];
  }

  export class ListFinancialPeriods extends EVA.API.PagedResultRequest<EVA.Core.Services.ListFinancialPeriodsResponse> {
  }

  export class ListFinancialPeriodsResponse extends EVA.API.PagedResultResponse<EVA.Core.FinancialPeriodDto> {
  }

  export class ListGeneralLedgers extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListGeneralLedgersResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListGeneralLedgersFilter>;
  }

  export class ListGeneralLedgersResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListGeneralLedgersResponseGeneralLedger> {
  }

  export class ListInterbranchOrganizationUnitForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListInterbranchOrganizationUnitForOrderResponse> {
    OrderID? : number; // Int32, nullable
    SessionID : string;
    ExcludeClosed : boolean;
  }

  export class ListInterbranchOrganizationUnitForOrderResponse extends EVA.API.ResponseMessage {
    OrganizationUnits : EVA.Core.Services.InterbranchOrganizationUnit[];
  }

  export class ListInvoiceExportsForInvoice extends EVA.API.PagedResultRequest<EVA.Core.Services.ListInvoiceExportsForInvoiceResponse> {
    InvoiceID : number; // Int32
  }

  export class ListInvoiceExportsForInvoiceResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListInvoiceExportsForInvoiceResponseInvoiceExportDto> {
  }

  export class ListInvoiceLedger extends EVA.API.FilteredPagedResultRequest<EVA.Core.ListInvoiceLedgerFilter, EVA.Core.Services.ListInvoiceLedgerResponse> {
  }

  export class ListInvoiceLedgerResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListInvoiceLedgerResponseInvoiceLedgerDto> {
  }

  export class ListInvoices extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListInvoicesResponse> {
    // Obsolete. Please use the PageConfig.Filter.
    InvoiceNumber : string;
    // Obsolete. Please use the PageConfig.Filter.
    Type : EVA.Core.InvoiceTypes;
    // Obsolete. Please use the PageConfig.Filter.
    StartDate? : string; // DateTime, nullable
    // Obsolete. Please use the PageConfig.Filter.
    EndDate? : string; // DateTime, nullable
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListInvoiceFilter>;
  }

  export class ListInvoicesForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListInvoicesForOrderResponse> {
    OrderID : number; // Int32
  }

  export class ListInvoicesForOrderResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.ListInvoicesForOrderResponseInvoice[];
  }

  export class ListInvoicesResponse extends EVA.API.PagedResultResponse<EVA.Core.ListInvoicesDto> {
  }

  export class ListManualDiscounts extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListManualDiscountsResponse> {
    // Defaults to Sales
    OrderType : EVA.Core.OrderTypes;
  }

  export class ListManualDiscountsResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.ListManualDiscountsResponseManualDiscountDto[];
  }

  export class ListMessageQueueErrors extends EVA.API.FilteredPagedResultRequest<EVA.Core.ListMessageQueueErrorsFilter, EVA.Core.Services.ListMessageQueueErrorsResponse> {
  }

  export class ListMessageQueueErrorsResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.MessageQueueErrorDto> {
  }

  export class ListOrderExportsForOrder extends EVA.API.PagedResultRequest<EVA.Core.Services.ListOrderExportsForOrderResponse> {
    OrderID : number; // Int32
  }

  export class ListOrderExportsForOrderResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListOrderExportsForOrderResponseOrderExportDto> {
  }

  export class ListOrderLedgerForOrder extends EVA.API.FilteredPagedResultRequest<EVA.Core.ListOrderLedgerFilter, EVA.Core.Services.ListOrderLedgerForOrderResponse> {
    OrderID : number; // Int32
  }

  export class ListOrderLedgerForOrderResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListOrderLedgerForOrderResponseOrderLedgerDto> {
  }

  export class ListOrderLines extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListOrderLinesResponse> {
    OrderID : number; // Int32
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListOrderLinesFilter>;
    ProductProperties : string[];
  }

  export class ListOrderLinesInvoiceSummary extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListOrderLinesInvoiceSummaryResponse> {
    OrderID : number; // Int32
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListOrderLinesFilter>;
  }

  export class ListOrderLinesInvoiceSummaryResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListOrderLinesInvoiceSummaryResponseModel> {
  }

  export class ListOrderLinesResponse extends EVA.API.PagedResultResponse<EVA.Core.OrderLineDto> {
  }

  export class ListOrdersForCustomer extends EVA.API.FilteredPagedResultRequest<EVA.Core.ListOrdersForCustomerFilter, EVA.Core.Services.ListOrdersForCustomerResponse> {
    ID : number; // Int32
  }

  export class ListOrdersForCustomerResponse extends EVA.API.PagedResultResponse<EVA.Core.OrderDto> {
  }

  export class ListOrderShipments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListOrderShipmentsResponse> {
    OrderID : number; // Int32
  }

  export class ListOrderShipmentsResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.ListOrderShipmentsResponseModel[];
  }

  export class ListOrdersWithCustomerReferences extends EVA.API.PagedResultRequest<EVA.Core.Services.ListOrdersWithCustomerReferencesResponse> {
  }

  export class ListOrdersWithCustomerReferencesResponse extends EVA.API.PagedResultResponse<EVA.Core.OrderWithCustomerReferences> {
  }

  export class ListOrganizationUnitByProximity extends EVA.API.PagedResultRequest<EVA.Core.Services.ListOrganizationUnitByProximityResponse> {
    Latitude : number; // Double
    Longitude : number; // Double
  }

  export class ListOrganizationUnitByProximityResponse extends EVA.API.PagedResultResponse<EVA.Core.OrganizationUnitDto> {
  }

  export class ListOrganizationUnits extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListOrganizationUnitsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListOrganizationUnitsFilter>;
  }

  export class ListOrganizationUnitsForEnrollment extends EVA.API.PagedResultRequest<EVA.Core.Services.ListOrganizationUnitsForEnrollmentResponse> {
  }

  export class ListOrganizationUnitsForEnrollmentResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.OrganizationUnitEnrollmentDto[];
  }

  export class ListOrganizationUnitsResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListOrganizationUnitsResponseOrganizationUnit> {
  }

  export class ListOrganizationUnitSuppliers extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListOrganizationUnitSuppliersResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListOrganizationUnitSuppliersFilter>;
  }

  export class ListOrganizationUnitSuppliersResponse extends EVA.API.PagedResultResponse<EVA.Core.ListOrganizationUnitSuppliersModel> {
  }

  export class ListProductAvailabilityData extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListProductAvailabilityDataResponse> {
  }

  export class ListProductAvailabilityDataResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.ProductAvailabilityDataDto[];
  }

  export class ListProductBundles extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListProductBundlesResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListProductBundlesFilter>;
    IncludedFields : string[];
  }

  export class ListProductBundlesResponse extends EVA.API.ResponseMessage {
    Result : EVA.Framework.PagedResultGeneric<EVA.Core.Services.ListProductBundlesResponseResult>;
  }

  export class ListProductBundlesResponseResult {
    ID : number; // Int32
    BackendID : string;
    BundleProduct : EVA.Core.Services.ProductBundlesProductInfo;
    BundlePricing : EVA.Core.Services.BundleProductPriceInfo;
  }

  export class ListProductRequirements extends EVA.API.PagedResultRequest<EVA.Core.Services.ListProductRequirementsResponse> {
  }

  export class ListProductRequirementsResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ProductRequirementDto> {
  }

  export class ListProductStructures extends EVA.API.PagedResultRequest<EVA.Core.Services.ListProductStructuresResponse> {
  }

  export class ListProductStructuresResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.GetProductStructureResponse> {
  }

  export class ListPurchaseOrderShipmentLines extends EVA.API.PagedResultRequest<EVA.Core.Services.ListPurchaseOrderShipmentLinesResponse> {
    ShipmentID : number; // Int32
  }

  export class ListPurchaseOrderShipmentLinesResponse extends EVA.API.PagedResultResponse<EVA.Core.PurchaseOrderShipmentLineDto> {
  }

  export class ListPurchaseOrderShipments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListPurchaseOrderShipmentsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListPurchaseOrderShipmentsFilter>;
    OrganizationUnitID? : number; // Int32, nullable
    BackendID : string;
    TrackingCode : string;
    IsCompleted? : boolean;
  }

  export class ListPurchaseOrderShipmentsResponse extends EVA.API.PagedResultResponse<EVA.Core.PurchaseOrderShipmentDto> {
  }

  export class ListRecurringTasks extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListRecurringTasksResponse> {
  }

  export class ListRecurringTasks2 extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListRecurringTasks2Response> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.Services.ListRecurringTasks2ListRecurringTasksFilter>;
  }

  export class ListRecurringTasks2Response extends EVA.API.PagedResultResponse<EVA.Framework.RecurringTask> {
  }

  export class ListRecurringTasks2ListRecurringTasksFilter {
    ID : string;
    TypeName : string;
    Query : string;
  }

  export class ListRecurringTasksResponse extends EVA.API.ResponseMessage {
    Tasks : EVA.Framework.RecurringTask[];
  }

  export class ListRequiredStockResourceTypes extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListRequiredStockResourceTypesResponse> {
    ProductID : number; // Int32
  }

  export class ListRequiredStockResourceTypesResponse extends EVA.API.ResponseMessage {
    RequiredStockResourceTypes : EVA.Core.StockResourceTypeDto[];
  }

  export class ListReturnableSuppliersForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListReturnableSuppliersForOrderResponse> {
    OrderID : number; // Int32
  }

  export class ListReturnableSuppliersForOrderResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.ListReturnableSuppliersForOrderResponseModel[];
  }

  export class ListShipmentExportsForShipment extends EVA.API.PagedResultRequest<EVA.Core.Services.ListShipmentExportsForShipmentResponse> {
    ShipmentID : number; // Int32
  }

  export class ListShipmentExportsForShipmentResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListShipmentExportsForShipmentResponseShipmentExportDto> {
  }

  export class ListShipmentLines extends EVA.API.FilteredPagedResultRequest<EVA.Core.ListShipmentLinesFilter, EVA.Core.Services.ListShipmentLinesResponse> {
  }

  export class ListShipmentLinesResponse extends EVA.API.PagedResultResponse<EVA.Core.ShipmentLineDto> {
  }

  export class ListShipmentLinesToInvoice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListShipmentLinesToInvoiceResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListShipmentLinesToInvoiceFilter>;
  }

  export class ListShipmentLinesToInvoiceResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListShipmentLinesToInvoiceResponseModel> {
  }

  export class ListShipmentsToInvoice extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListShipmentsToInvoiceResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListShipmentsToInvoiceFilter>;
  }

  export class ListShipmentsToInvoiceResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListShipmentsToInvoiceResponseModel> {
  }

  export class ListShopsInArea extends EVA.API.PagedResultRequest<EVA.Core.Services.ListShopsInAreaResponse> {
    NorthWest : EVA.Core.Services.ListShopsInAreaCoordinate;
    SouthEast : EVA.Core.Services.ListShopsInAreaCoordinate;
    Status : EVA.Core.OrganizationUnitStatus;
  }

  export class ListShopsInAreaResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListShopsInAreaResponseShopInfo> {
  }

  export class ListStationsForOrganizationUnit extends EVA.API.PagedResultRequest<EVA.Core.Services.ListStationsForOrganizationUnitResponse> {
    OrganizationUnitID : number; // Int32
    DeviceTypeID? : number; // Int32, nullable
  }

  export class ListStationsForOrganizationUnitResponse extends EVA.API.PagedResultResponse<EVA.Core.StationDto> {
  }

  export class ListStockAllocationRules extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListStockAllocationRulesResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListStockAllocationRulesFilter>;
  }

  export class ListStockAllocationRulesResponse extends EVA.API.PagedResultResponse<EVA.Core.ListStockAllocationRulesItem> {
  }

  export class ListStockMutations extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListStockMutationsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListStockMutationsFilter>;
  }

  export class ListStockMutationsResponse extends EVA.API.ResponseMessage {
    Result : EVA.Framework.PagedResultGeneric<EVA.Core.StockMutationDto>;
  }

  export class ListStockResourcesByProduct extends EVA.API.PagedResultRequest<EVA.Core.Services.ListStockResourcesByProductResponse> {
    ProductID : number; // Int32
    OrganizationUnitIDs : number[];
  }

  export class ListStockResourcesByProductResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ProductWithResourceDto> {
  }

  export class ListStockResourceStockMutations extends EVA.API.PagedResultRequest<EVA.Core.Services.ListStockResourceStockMutationsResponse> {
  }

  export class ListStockResourceStockMutationsResponse extends EVA.API.PagedResultResponse<EVA.Core.StockMutationDto> {
  }

  export class ListStockResourceTypes extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListStockResourceTypesResponse> {
  }

  export class ListStockResourceTypesResponse extends EVA.API.ResponseMessage {
    StockResourceTypes : EVA.Core.StockResourceTypeDto[];
  }

  export class ListStringTranslations extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListStringTranslationsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListStringTranslationsFilter>;
  }

  export class ListStringTranslationsResponse extends EVA.API.PagedResultResponse<EVA.Core.ListStringTranslation> {
  }

  export class ListSuspendedOrders extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListSuspendedOrdersResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListSuspendedOrdersFilter>;
  }

  export class ListSuspendedOrdersResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ListSuspendedOrdersResponseSuspendedOrderDto> {
  }

  export class ListTaxCodes extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListTaxCodesResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.Services.ListTaxCodesFilter>;
  }

  export class ListTaxCodesFilter {
    ID? : number; // Int32, nullable
    Name : string;
    // Only returns tax codes which currently have an active tax rate for your current country. Defaults to true.
    ActiveOnly : boolean;
  }

  export class ListTaxCodesResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.TaxCodeItem> {
  }

  export class ListTaxRates extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListTaxRatesResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Core.ListTaxRateModelFilters>;
  }

  export class ListTaxRatesResponse extends EVA.API.PagedResultResponse<EVA.Core.TaxRateModel> {
  }

  export class ListTransputJobs extends EVA.API.FilteredPagedResultRequest<EVA.Core.ListTransputJobsFilter, EVA.Core.Services.ListTransputJobsResponse> {
  }

  export class ListTransputJobsResponse extends EVA.API.PagedResultResponse<EVA.Core.TransputJobWithRelatedExportDataDto> {
  }

  export class ListUserGroups extends EVA.API.PagedResultRequest<EVA.Core.Services.ListUserGroupsResponse> {
  }

  export class ListUserGroupsForUser extends EVA.API.PagedResultRequest<EVA.Core.Services.ListUserGroupsForUserResponse> {
    UserID : number; // Int32
  }

  export class ListUserGroupsForUserResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.UserGroupDto> {
  }

  export class ListUserGroupsResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.UserGroupDto> {
  }

  export class ListUserIdentifications extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListUserIdentificationsResponse> {
    UserID : number; // Int32
  }

  export class ListUserIdentificationsResponse extends EVA.API.ResponseMessage {
    Identifications : EVA.Core.Services.IdentificationDto[];
  }

  export class ListUsersForUserGroup extends EVA.API.PagedResultRequest<EVA.Core.Services.ListUsersForUserGroupResponse> {
    UserGroupID : number; // Int32
  }

  export class ListUsersForUserGroupResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.SimpleUserDto> {
  }

  export class ListUsersWithBadgesByIDs extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ListUsersWithBadgesByIDsResponse> {
    UserIDs : number[];
  }

  export class ListUsersWithBadgesByIDsResponse extends EVA.API.ResponseMessage {
    Users : EVA.Core.UserDto[];
  }

  export class Login extends EVA.API.RequestMessageGeneric<EVA.Core.Services.LoginResponse> implements EVA.Core.ILoginRequest {
    Username : string;
    Password : string;
    OrganizationUnitID? : number; // Int32, nullable
    ConfirmationToken : string;
    AuthenticationToken : string;
    IdentificationCode : string;
    RegisterApiKey : boolean;
    SelectOrganizationByApplicationID : boolean;
    LanguageID : string;
    CustomAuthenticatorType : string;
    CustomAuthenticateData : any;
    ClientVersion : string;
    Context : string;
    PublicLogin : boolean;
    UserType : EVA.Framework.UserTypes;
    AsEmployee? : boolean;
  }

  export class LoginResponse extends EVA.API.ResponseMessage {
    Authentication : EVA.Framework.AuthenticationResults;
    OrganizationUnits : EVA.Core.OrganizationUnitDto[];
    User : EVA.Core.LoggedInUserDto;
    LoggedInOrganizationID? : number; // Int32, nullable
    IsCustomAuthenticateResult : boolean;
    AuthenticationToken : string;
    OrganizationUnitCurrencyID : string;
  }

  export class Logout extends EVA.API.RequestMessageGeneric<EVA.Core.Services.LogoutResponse> {
    ExpireAllSessions : boolean;
    ClockOut : boolean;
  }

  export class LogoutResponse extends EVA.API.ResponseMessage {
    LogoutSuccesful : boolean;
  }

  export class GetStockAvailabilityEstimateForOrderResponseOrderLineMadeToOrderStatusMadeToOrderPurchaseOrderLine {
    ID : number; // Int32
    OrderID : number; // Int32
    RequestedDate? : string; // DateTime, nullable
    IsOverdue : boolean;
    BackendID : string;
    QuantityToShip : number; // Int32
    QuantityShipped : number; // Int32
    QuantityDelivered : number; // Int32
    IsConfirmed : boolean;
    ShipFromOrganizationUnit : EVA.Core.Services.GetStockAvailabilityEstimateForOrderResponseOrderLineMadeToOrderStatusMadeToOrderShipFromOrganizationUnit;
  }

  export class GetStockAvailabilityEstimateForOrderResponseOrderLineMadeToOrderStatusMadeToOrderShipFromOrganizationUnit {
    ID : number; // Int32
    Name : string;
  }

  export class MakeUserPhoneNumberPrimary extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }

  export class ManualCustomer {
    FirstName : string;
    LastName : string;
    FiscalID : string;
  }

  export class ListManualDiscountsResponseManualDiscountDto {
    ID : number; // Int32
    BackendID : string;
    Description : string;
    MarketingDescription : string;
    Type : string;
    NeedsReason : boolean;
    FixedAmount? : number; // Decimal, nullable
    MaxAmount? : number; // Decimal, nullable
    CurrencyID : string;
  }

  export class ManualLine {
    ProductID? : number; // Int32, nullable
    Description : string;
    TaxRate : number; // Decimal
    Quantity : number; // Int32
    TotalAmountInTax : number; // Decimal
  }

  export class ManualTriggerRecurringTask extends EVA.API.RequestMessageWithEmptyResponse {
    Token : string;
  }

  export class MessageQueueErrorDto {
    ID : number; // Int32
    Status : EVA.Core.MessageQueueErrorStatuses;
    MessageID : string;
    MessageBody : string;
    MessageTypeName : string;
    ExceptionMessage : string;
    StackTrace : string;
    ErrorCode : string;
    HostInfo : string;
    Headers : string;
    Addresses : string;
    CreationTime : string; // DateTime
  }

  export class GetAvailablePaymentMethodsResponseMethodModel {
    Name : string;
    IsUsable : boolean;
    NotUsableError : EVA.Core.PaymentMethodNotUsableError;
    Types : EVA.Core.Services.GetAvailablePaymentMethodsResponseTypeModel[];
  }

  export class AddLineToPurchaseOrderResponseModel {
    ID : number; // Int32
    ProductID : number; // Int32
    Quantity : number; // Int32
    UnitPrice : number; // Decimal
    RequestedDate? : string; // DateTime, nullable
    Reference : string;
  }

  export class GetProductUnitOfMeasureQuantitiesResponseModel {
    ProductID : number; // Int32
    UnitOfMeasures : EVA.Core.Services.GetProductUnitOfMeasureQuantitiesResponseResult[];
  }

  export class GetProductUnitOfMeasureQuantitiesModel {
    ID : number; // Int32
    Quantity : number; // Int32
  }

  export class GetRelatedOrderLinesResponseModel extends EVA.Core.OrderLineDto {
    OrderType : EVA.Core.OrderTypes;
    SoldFromOrganizationUnit : EVA.Core.Services.GetRelatedOrderLinesResponseOrganizationUnit;
    ShipFromOrganizationUnit : EVA.Core.Services.GetRelatedOrderLinesResponseOrganizationUnit;
  }

  export class GetRelatedOrdersResponseModel {
    RelatedOrderID : number; // Int32
    BackendID : string;
    Description : string;
    CreationTime : string; // DateTime
    TypeID : number; // Int32
    SoldFromOrganizationUnit : EVA.Core.Services.GetRelatedOrdersResponseNamedDto;
    ShipFromOrganizationUnit : EVA.Core.Services.GetRelatedOrdersResponseNamedDto;
  }

  export class GetShipmentLinesResponseModel {
    ID : number; // Int32
    CustomID : string;
    ProductID : number; // Int32
    Description : string;
    BackendReference : string;
    QuantityShipped : number; // Int32
    QuantityDelivered : number; // Int32
    CurrencyID : string;
    UnitPrice : number; // Decimal
    // Obsolete
    ExchangeRate : number; // Decimal
    // Obsolete
    ForeignUnitPrice : number; // Decimal
    // Obsolete
    ForeignTotalAmount : number; // Decimal
    TotalAmount : number; // Decimal
    TotalAmountInTax : number; // Decimal
    UnitPriceInTax : number; // Decimal
    // Obsolete
    ForeignUnitPriceInTax : number; // Decimal
    // Obsolete
    ForeignTotalAmountInTax : number; // Decimal
    TaxRate : number; // Decimal
    DeliveryType : EVA.Core.ShipmentLineDeliveryTypes;
    OrderID : number; // Int32
    OrderLineID : number; // Int32
    IsCompleted : boolean;
  }

  export class GetSuppliersForOrganizationUnitResponseModel {
    ID : number; // Int32
    Name : string;
  }

  export class ListAvailableTimeZonesResponseModel {
    ID : string;
    CountryID : string;
    CountryName : string;
    Offset : number; // Int32
  }

  export class ListBlobsForInvoiceResponseModel {
    Name : string;
    MimeType : string;
    BlobID : string;
    CreationTime : string; // DateTime
  }

  export class ListFinancialPeriodExportsResponseModel {
    ID : number; // Int32
    Name : string;
    Trigger : EVA.Core.FinancialPeriodExportTrigger;
    Status : EVA.Core.TransputJobStatuses;
    CreationTime : string; // DateTime
    LastModificationTime? : string; // DateTime, nullable
  }

  export class ListOrderLinesInvoiceSummaryResponseModel extends EVA.Core.OrderLineDto {
    QuantityLeftToInvoice : number; // Int32
  }

  export class ListOrderShipmentsResponseModel {
    ID : number; // Int32
    BackendID : string;
    ShipmentDate : string; // DateTime
    CompletionTime? : string; // DateTime, nullable
    TrackingCode : string;
    TrackingLink : string;
    ShippedFromOrganizationUnit : EVA.Core.OrganizationUnitDto;
    ShippedToOrganizationUnit : EVA.Core.OrganizationUnitDto;
    TotalQuantityShipped : number; // Int32
    TotalQuantityDelivered : number; // Int32
  }

  export class ListReturnableSuppliersForOrderResponseModel {
    ID : number; // Int32
    BackendID : string;
    Name : string;
  }

  export class ListShipmentLinesToInvoiceResponseModel {
    ID : number; // Int32
    QuantityShipped : number; // Int32
    QuantityDelivered : number; // Int32
    QuantityInvoiced : number; // Int32
    QuantityAvailableForInvoice : number; // Int32
    CurrencyID : string;
    UnitPrice : number; // Decimal
    TaxRate : number; // Decimal
    TotalAmountInvoiced : number; // Decimal
    TotalAmountDelivered : number; // Decimal
    ProductID : number; // Int32
    CustomID : string;
    ProductName : string;
    SupplierProductBackendID : string;
    DeliveryType : EVA.Core.ShipmentLineDeliveryTypes;
  }

  export class ListShipmentsToInvoiceResponseModel {
    ID : number; // Int32
    OrderIDs : number[];
    OrderBackendIDs : string[];
    ShipmentDate : string; // DateTime
    LastDeliveryDate? : string; // DateTime, nullable
    CompletionTime? : string; // DateTime, nullable
    BackendID : string;
    TrackingCode : string;
    TotalQuantityInvoiced : number; // Int32
    TotalQuantityReceived : number; // Int32
    TotalAmountReceived : number; // Decimal
    TotalAmountInvoiced : number; // Decimal
  }

  export class ProduceShipmentDocumentsResponseModel {
    Type : string;
    Url : string;
  }

  export class ModifyLineActionType extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ModifyLineActionTypeResponse> {
    OrderID? : number; // Int32, nullable
    OrderLineID? : number; // Int32, nullable
    LineActionType? : EVA.Core.LineActionTypes;
  }

  export class ModifyLineActionTypeResponse extends EVA.Core.SimpleShoppingCartResponse {
    Success : boolean;
    Messages : { [ key : number ] : string };
  }

  export class ModifyOrderLinePrice extends EVA.API.RequestMessageGeneric<EVA.Core.SimpleShoppingCartResponse> {
    OrderLineID : number; // Int32
    UnitPriceInTax : number; // Decimal
    UnitCost? : number; // Decimal, nullable
  }

  export class ModifyPurchaseOrderLine extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    UnitPrice? : number; // Decimal, nullable
    RequestedDate? : string; // DateTime, nullable
    Reference : string;
  }

  export class ModifyQuantityOrdered extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ModifyQuantityOrderedResponse> {
    OrderLineID : number; // Int32
    NewQuantityOrdered : number; // Int32
  }

  export class ModifyQuantityOrderedResponse extends EVA.Core.SimpleShoppingCartResponse {
    Messages : EVA.Core.Services.ModifyQuantityOrderedResponseQuantityMutationResultMessage[];
  }

  export class ModifyQuantityShipped extends EVA.API.RequestMessageWithEmptyResponse {
    ShipmentID : number; // Int32
    Lines : EVA.Core.Services.ModifyQuantityShippedShipmentLine[];
  }

  export class MoveCash extends EVA.API.RequestMessageWithEmptyResponse {
    SourceDeviceID : number; // Int32
    DestinationDeviceID : number; // Int32
    // Will be required!
    CurrencyID : string;
    // Will be required!
    PaymentTypeID? : number; // Int32, nullable
    Coins : { [ key : number ] : number };
    BankNotes : { [ key : number ] : number };
  }

  export class MoveCommitments extends EVA.API.RequestMessageWithEmptyResponse {
    Movements : EVA.Core.Services.MoveCommitmentsCommitmentMovement[];
  }

  export class MoveStockMovement {
    BackendID : string;
    ProductID? : number; // Int32, nullable
    OrganizationUnitID : number; // Int32
    SourceStockLabelID : number; // Int32
    DestinationStockLabelID : number; // Int32
    StockResourceID? : number; // Int32, nullable
    StockMutationReasonID? : number; // Int32, nullable
    Quantity : number; // Int32
    Remark : string;
    ProductBackendID : string;
  }

  export class MoveStock extends EVA.API.RequestMessageWithEmptyResponse {
    ProductID? : number; // Int32, nullable
    OrganizationUnitID? : number; // Int32, nullable
    SourceLabel? : number; // Int32, nullable
    DestinationLabel? : number; // Int32, nullable
    ResourceID? : number; // Int32, nullable
    Reason? : number; // Int32, nullable
    Quantity? : number; // Int32, nullable
    Remark : string;
    BackendSystemID : string;
    Movements : EVA.Core.Services.MoveStockMovement[];
  }

  export class GetRelatedOrdersResponseNamedDto {
    ID : number; // Int32
    Name : string;
  }

  export class OpenFinancialPeriod extends EVA.API.RequestMessageWithEmptyResponse {
  }

  export class OrderBlobDto {
    OrderID : number; // Int32
    OrderLineID? : number; // Int32, nullable
    InvoiceID? : number; // Int32, nullable
    Type? : EVA.Core.OrderBlobTypes;
    Name : string;
    MimeType : string;
    BlobID : string;
    CreationTime : string; // DateTime
  }

  export class ListOrderExportsForOrderResponseOrderExportDto {
    ID : number; // Int32
    Name : string;
    Status : EVA.Core.TransputJobStatuses;
    CreationTime : string; // DateTime
    LastModificationTime? : string; // DateTime, nullable
  }

  export class GetOrderExportByIDResponseOrderExportLineDto {
    ID : number; // Int32
    OrderLineID : number; // Int32
    QuantityExported : number; // Int32
    QuantityCancelled : number; // Int32
    QuantityBackordered : number; // Int32
    BackendReference : string;
    CreationTime : string; // DateTime
    LastModificationTime? : string; // DateTime, nullable
  }

  export class ListOrderLedgerForOrderResponseOrderLedgerDto {
    ID : number; // Int32
    OrderID : number; // Int32
    OrderLineID? : number; // Int32, nullable
    Type : EVA.Framework.EnumDto;
    TypeID : number; // Int32
    OldValue : string;
    NewValue : string;
    Description : string;
    CreatedByID : number; // Int32
    CreationTime : string; // DateTime
    CreatedBy : EVA.Core.Services.ListOrderLedgerForOrderResponseUserDto;
  }

  export class GetStockAvailabilityEstimateForOrderResponseOrderLine {
    OrderLineID : number; // Int32
    ProductID : number; // Int32
    RequestedDate : string; // DateTime
    QuantityAvailable? : number; // Int32, nullable
    IsCommitted : boolean;
    ShipmentDate? : string; // DateTime, nullable
    CanBeFulfilled : boolean;
    AlternativeDates : EVA.Core.Services.GetStockAvailabilityEstimateForOrderResponseSuggestedAlternativeDate[];
    ExpectedFulfillmentDate? : string; // DateTime, nullable
    FulfillmentStatus? : EVA.Core.OrderLineFulfillmentStatus;
    CommitmentDate? : string; // DateTime, nullable
    ExportDate? : string; // DateTime, nullable
    MadeToOrderStatus : EVA.Core.Services.GetStockAvailabilityEstimateForOrderResponseOrderLineMadeToOrderStatus;
    DependsOnPurchaseOrderLines : EVA.Core.Services.GetStockAvailabilityEstimateForOrderResponseDependsOnPurchaseOrderLine[];
    ShouldBeSplit : boolean;
    ExportStatus : EVA.Core.OrderExportStatuses;
    CommitmentStatus? : EVA.Core.OrderLineCommitmentStatus;
    IsBlocked : boolean;
  }

  export class GetStockAvailabilityEstimateForOrderOrderLine {
    ID : number; // Int32
    RequestedDate? : string; // DateTime, nullable
  }

  export class ProduceShipmentDocumentsOrderLine {
    ID : number; // Int32
    QuantityToShip : number; // Int32
  }

  export class SetRequestedDateOrderLineDto {
    OrderLineID : number; // Int32
    Quantity? : number; // Int32, nullable
    RequestedDate? : string; // DateTime, nullable
  }

  export class GetStockAvailabilityEstimateForOrderResponseOrderLineMadeToOrderStatus {
    PurchaseOrderLine : EVA.Core.Services.GetStockAvailabilityEstimateForOrderResponseOrderLineMadeToOrderStatusMadeToOrderPurchaseOrderLine;
    HasBeenRequested : boolean;
    HasBeenCompleted : boolean;
  }

  export class OrderLinesReturnSet {
    OrderLineIDs : number[];
    RequiredOrderLineIDsToReturn : number[];
  }

  export class GetOrderSummaryForShippingResponseOrderLineSummary {
    ID : number; // Int32
    ProductID? : number; // Int32, nullable
    TotalQuantityToShip : number; // Int32
    QuantityShipped : number; // Int32
    QuantityOpen : number; // Int32
  }

  export class SalesTaxEstimateForOrderResponseOrderLineTaxCalculationModel {
    OrderLineID : number; // Int32
    TaxRate : number; // Decimal
    TaxAmount : number; // Decimal
  }

  export class SalesTaxEstimateForOrderResponseOrderLineTaxCalculationTaxAmountModel {
    TaxRate : number; // Decimal
    TaxAmount : number; // Decimal
  }

  export class CreateInvoicesForOrderOrderLineToInvoice {
    ID : number; // Int32
    Quantity : number; // Int32
  }

  export class GetRelatedOrderLinesResponseOrganizationUnit {
    ID : number; // Int32
    Name : string;
  }

  export class ListGeneralLedgersResponseOrganizationUnit {
    Name : string;
  }

  export class ListOrganizationUnitsResponseOrganizationUnit {
    ID : number; // Int32
    BackendID : string;
    ParentID? : number; // Int32, nullable
    Name : string;
    Description : string;
    EmailAddress : string;
    PhoneNumber : string;
    Type : EVA.Framework.OrganizationUnitTypes;
    Status : EVA.Core.OrganizationUnitStatus;
    Latitude? : number; // Double, nullable
    Longitude? : number; // Double, nullable
    Address : EVA.Core.AddressDto;
    UpcomingOpeningHours : EVA.Core.WeekOpeningsDto[];
    RegularOpeningHours : EVA.Core.WeekOpeningsDto[];
  }

  export class GetFlatOrganizationUnitTreeResponseOrganizationUnitDto {
    ID : number; // Int32
    Name : string;
    BackendID : string;
    ParentID : number; // Int32
  }

  export class OrganizationUnitEnrollmentDto {
    ID : number; // Int32
    Name : string;
    CountryID : string;
    BackendID : string;
  }

  export class GetOrganizationUnitOpeningHoursForPeriodResponseOrganizationUnitOpeningHours {
    StartTime? : any; // TimeSpan, nullable
    EndTime? : any; // TimeSpan, nullable
    SpecialReason : string;
    DayOfWeek? : System.Private.CoreLib.DayOfWeek;
  }

  export class OrganizationUnitTreeDto {
    ID : number; // Int32
    Name : string;
    Children : EVA.Core.Services.OrganizationUnitTreeDto[];
  }

  export class ParseBarcode extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ParseBarcodeResponse> {
    Barcode : string;
  }

  export class ParseBarcodeResponse extends EVA.API.ResponseMessage {
    Value : string;
    Type : string;
    Data : { [ key : string ] : any };
  }

  export enum PasswordValidationResults {
    Valid = 0,
    TooShort = 1,
    NoMatchWithOldPassword = 2,
    TooLong = 3,
  }

  export class GenerateTerminalResponsePayment {
    Description : string;
    Amount : number; // Decimal
  }

  export class ListInvoicesForOrderResponseInvoicePayment {
    PaymentTransactionID : number; // Int32
    Amount : number; // Decimal
  }

  export class GetAvailableRefundPaymentMethodsResponsePaymentMethod {
    Code : string;
    Transactions : EVA.Core.Services.GetAvailableRefundPaymentMethodsResponseRefundablePaymentTransaction[];
  }

  export class GenerateTerminalResponsePaymentPerUser {
    UserID : number; // Int32
    EmployeeNumber : string;
    Description : string;
    Amount : number; // Decimal
  }

  export class GetPaymentTransactionsResponsePaymentTransaction extends EVA.Core.PaymentTransactionDto {
    AvailableActions : EVA.Core.PaymentTransactionActions;
  }

  export class GetFinancialPeriodInformationResponsePaymentType {
    ID : number; // Int32
    Name : string;
  }

  export class GetCurrentCashJournalsResponsePaymentTypeDto {
    ID : number; // Int32
    Name : string;
    Code : string;
    CashJournalMethod : EVA.Core.PaymentCashJournalMethod;
  }

  export class StartOpenCashJournalResponsePaymentTypeDto {
    ID : number; // Int32
    Name : string;
    Code : string;
    CashJournalMethod : EVA.Core.PaymentCashJournalMethod;
  }

  export class GetFinancialPeriodInformationResponsePaymentTypeSummary {
    Type : EVA.Core.Services.GetFinancialPeriodInformationResponsePaymentType;
    TotalPaidAmount : number; // Decimal
  }

  export class GetPickProductDiscountOptionsForOrderResponsePickProductDiscountOptions {
    BaseAmount : number; // Decimal
    Options : number[];
    Tiers : EVA.Core.Services.PickProductTierOptions[];
    CurrentSelection? : number; // Int32, nullable
    CurrentTier : string;
  }

  export class PickProductTierOptions {
    ID : string;
    From : number; // Decimal
    Difference : number; // Decimal
    DefaultProductID? : number; // Int32, nullable
    Prompt : boolean;
    ProductIDs : number[];
    Description : string;
    IsCurrentTier : boolean;
  }

  export class GetProductAvailabilityPickupAvailability {
    // Include the expected date on which the provided products can be picked-up from a shop.
    AvailabilityDate? : boolean;
    // This can be optionally used to provide a list of shops for which you would like to check pick-up availability.
    OrganizationUnitIDs : number[];
    Type? : EVA.Core.Services.PickupTypes;
  }

  export class GetProductAvailabilityResponsePickupAvailabilityResult {
    AvailabilityDate? : string; // DateTime, nullable
    IsAvailable : boolean;
    QuantityAvailable? : number; // Int32, nullable
    // Indicates whether or not there is currently stock available for pick-up.
    HasStock : boolean;
  }

  export enum PickupTypes {
    FastestShop = 0,
    CurrentShop = 1,
  }

  export class Ping extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
  }

  export class PlaceOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.PlaceOrderResponse> {
    OrderID : number; // Int32
  }

  export class PlaceOrderResponse extends EVA.API.ResponseMessage {
    ValidationResult : EVA.Core.OrderExportValidationResult;
  }

  export class PollExternalOrderStatus extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    OrderID : number; // Int32
    Name : string;
  }

  export class PotentialDiscountDto {
    ID : number; // Int32
    BackendID : string;
    Description : string;
    MarketingDescription : string;
    AmountMissing? : number; // Decimal, nullable
    SecondaryProductIDs : number[];
    ActionProperties : any;
    IsAlreadyApplied : boolean;
  }

  export class GetCurrentCashJournalsResponsePreviousCashJournal {
    ID : number; // Int32
    OpeningTime : string; // DateTime
    ClosingTime? : string; // DateTime, nullable
    OpeningAmount : number; // Decimal
    ClosingAmount? : number; // Decimal, nullable
  }

  export class UpdateSimplePricesPrice {
    CustomID : string;
    BackendID : string;
    NewPrice? : number; // Decimal, nullable
  }

  export class PriceInfo {
    ProductID : number; // Int32
    PriceListID : number; // Int32
    PriceListUsageTypeID : number; // Int32
    PriceListUsageTypeName : string;
    CurrencyID : string;
    TaxRate : number; // Decimal
    Price : number; // Decimal
    PriceInTax : number; // Decimal
    OriginalPrice? : number; // Decimal, nullable
    OriginalPriceInTax? : number; // Decimal, nullable
  }

  export class PrintTerminalReport extends EVA.API.RequestMessageWithEmptyResponse {
    StationID : number; // Int32
    DocumentID : string;
  }

  export class ProcessUnprocessedFinancialEvents extends EVA.API.RequestMessageWithEmptyResponse {
    FinancialPeriodID? : number; // Int32, nullable
    Filter : EVA.Core.ListFinancialEventsFilter;
  }

  export class ProduceDocuments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ProduceDocumentsResponse> {
    PrintInvoice : boolean;
    EmailInvoice : boolean;
    PrintReceipt : boolean;
    DownloadInvoice : boolean;
    StationID? : number; // Int32, nullable
    OrderID : number; // Int32
    EmailAddress : string;
    InvoiceID? : number; // Int32, nullable
  }

  export class ProduceDocumentsResponse extends EVA.API.ResponseMessage {
    InvoiceUrl : string;
  }

  export class ProduceGiftReceipt extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ProduceGiftReceiptResponse> {
    OrderID : number; // Int32
    Lines : EVA.Core.Services.ProduceGiftReceiptLine[];
    StationID? : number; // Int32, nullable
    Name : string;
    Remark : string;
  }

  export class ProduceGiftReceiptLine {
    OrderLineID : number; // Int32
    Quantity : number; // Int32
  }

  export class ProduceGiftReceiptResponse extends EVA.API.ResponseMessage {
    PrintSuccessful : boolean;
  }

  export class ProduceInvoice extends EVA.API.RequestMessageGeneric<EVA.API.ResourceResponseMessage> {
    OrderID : number; // Int32
    EmailAddress : string;
    StationID? : number; // Int32, nullable
    EmailInvoice : boolean;
    DownloadInvoice : boolean;
    PrintInvoice : boolean;
    InvoiceID? : number; // Int32, nullable
  }

  export class ProduceOrderDocuments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ProduceOrderDocumentsResponse> {
    OrderID? : number; // Int32, nullable
    InvoiceID? : number; // Int32, nullable
    Type : EVA.Core.Services.DocumentTypes;
    Channel : EVA.Core.TemplateOutputChannel;
    EmailAddress : string;
    StationID? : number; // Int32, nullable
  }

  export class ProduceOrderDocumentsResponse extends EVA.API.ResponseMessage {
    Url : string;
  }

  export class ProducePackingSlip extends EVA.API.RequestMessageGeneric<EVA.API.ResourceResponseMessage> {
    StationID? : number; // Int32, nullable
    Download : boolean;
    Print : boolean;
    ShipmentID : number; // Int32
  }

  export class ProducePickSlip extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ProducePickSlipResponse> {
    StationID? : number; // Int32, nullable
    Download : boolean;
    Print : boolean;
    OrderID? : number; // Int32, nullable
    OrderIDs : number[];
  }

  export class ProducePickSlipResponse extends EVA.API.ResponseMessage {
    Url : string;
    Urls : string[];
  }

  export class ProducePurchaseOrderDocument extends EVA.API.RequestMessageGeneric<EVA.API.ResourceResponseMessage> {
    OrderID : number; // Int32
  }

  export class ProduceReceipt extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ProduceReceiptResponse> {
    OrderID : number; // Int32
    StationID? : number; // Int32, nullable
    InvoiceID? : number; // Int32, nullable
  }

  export class ProduceReceiptResponse extends EVA.API.ResponseMessage {
    PrintSuccessful : boolean;
  }

  export class ProduceShipmentDocuments extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ProduceShipmentDocumentsResponse> {
    OrderID? : number; // Int32, nullable
    ShipmentID? : number; // Int32, nullable
    LinesToShip : EVA.Core.Services.ProduceShipmentDocumentsOrderLine[];
    StationID? : number; // Int32, nullable
  }

  export class ProduceShipmentDocumentsResponse extends EVA.API.ResponseMessage {
    ShipmentDocuments : EVA.Core.Services.ProduceShipmentDocumentsResponseModel[];
  }

  export class ProduceTrackingInformation extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ProduceTrackingInformationResponse> {
    OrderID : number; // Int32
  }

  export class ProduceTrackingInformationResponse extends EVA.API.ResponseMessage {
    Result : EVA.Core.Services.ProduceTrackingInformationResponseTrackingInformation;
  }

  export class GetProductAvailabilityProduct {
    ID : number; // Int32
    QuantityRequested : number; // Int32
    ShippingMethodID? : number; // Int32, nullable
  }

  export class GetStockAvailabilityEstimateForProductsResponseProduct {
    ID : number; // Int32
    AvailabilityDates : EVA.Core.Services.GetStockAvailabilityEstimateForProductsResponseAvailabilityDate[];
    WarehouseQuantityOnHand : number; // Int32
    WarehouseQuantityCommitted : number; // Int32
    WarehouseQuantityAvailable : number; // Int32
    QuantityToShipOnOrder : number; // Int32
    SalesOrderLines : EVA.Core.Services.GetStockAvailabilityEstimateForProductsResponseSalesOrderLine[];
    PurchaseOrderLines : EVA.Core.Services.GetStockAvailabilityEstimateForProductsResponsePurchaseOrderLine[];
    ReservedOrderLines : EVA.Core.Services.GetStockAvailabilityEstimateForProductsResponseReservedOrderLine[];
    ShopReplenishments : EVA.Core.Services.GetStockAvailabilityEstimateForProductsResponseShopReplenishment[];
  }

  export class GetStockAvailabilityEstimateForProductsProduct {
    ID : number; // Int32
    RequestedDate? : string; // DateTime, nullable
  }

  export class GetProductAvailabilityResponseProductAvailabilityResult {
    ProductID : number; // Int32
    Delivery : EVA.Core.Services.GetProductAvailabilityResponseDeliveryAvailabilityResult;
    Pickup : EVA.Core.Services.GetProductAvailabilityResponsePickupAvailabilityResult;
  }

  export class ProductBundlesProductInfo {
    ID : number; // Int32
    CustomID : string;
    Content : any;
  }

  export class GenerateTerminalResponseProductGroup {
    Code : string;
    Amount : number; // Decimal
    Count : number; // Int32
  }

  export class ProductRequirementDto {
    ID : number; // Int32
    ProductID : number; // Int32
    ProductCustomID : string;
    ProductName : string;
    Name : string;
    DataType : EVA.Core.ProductRequirementDataTypes;
    IsArray : boolean;
    IsRequired : boolean;
    Data : any;
  }

  export class GetProductSupplierInfoForProductsResponseProductSupplierInfo {
    ProductID : number; // Int32
    BackendID : string;
    SupplierProductID : number; // Int32
    SupplierProductBackendID : string;
    PreferredMinimumOrderQuantity? : number; // Int32, nullable
    UnitCost : number; // Decimal
    Supplier : EVA.Core.Services.GetProductSupplierInfoForProductsResponseSupplier;
    UnitOfMeasures : EVA.Core.Services.GetProductSupplierInfoForProductsResponseUnitOfMeasure[];
    Barcodes : EVA.Core.Services.GetProductSupplierInfoForProductsResponseBarcode[];
  }

  export class ProductWithResourceDto {
    Product : any;
    StockLabelID : number; // Int32
    StockLabel : number; // Int32
    QuantityOnHand : number; // Int32
    ResourceID : number; // Int32
    Type : string;
    Value : string;
    CreationTime : string; // DateTime
    OrganizationUnit : EVA.Core.OrganizationUnitDto;
  }

  export class ProductWithStockDto extends EVA.Core.ProductDto {
    Stocks : EVA.Core.Services.StockDto[];
    TotalQuantityOnHand : number; // Int32
  }

  export class PropertyGroup {
    PropertyValue : any;
    TotalAmount : number; // Decimal
    TotalAmountInTax : number; // Decimal
    Quantity : number; // Int32
    ChildGroups : EVA.Core.Services.ConfigurableGroup[];
  }

  export class GetStockAvailabilityEstimateForOrderResponsePurchaseOrderLine {
    ID : number; // Int32
    OrderID : number; // Int32
    RequestedDate : string; // DateTime
    Quantity : number; // Int32
  }

  export class GetStockAvailabilityEstimateForProductsResponsePurchaseOrderLine {
    ID : number; // Int32
    OrderID : number; // Int32
    RequestedDate : string; // DateTime
    Quantity : number; // Int32
    IsOverdue : boolean;
    QuantityAvailable : number; // Int32
    IsConfirmed : boolean;
  }

  export class PushSalesOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.PushSalesOrderResponse> {
    BackendID : string;
    BackendSystemID : string;
    CreationTime? : string; // DateTime, nullable
    CurrencyID : string;
    Remark : string;
    AllowPartialFulfillment : boolean;
    SoldFromOrganizationUnitBackendID : string;
    PickupOrganizationUnitBackendID : string;
    Customer : EVA.Core.Services.PushSalesOrderPushSalesOrderCustomer;
    ShippingAddress : EVA.Core.Services.PushSalesOrderPushSalesOrderAddress;
    BillingAddress : EVA.Core.Services.PushSalesOrderPushSalesOrderAddress;
    Lines : EVA.Core.Services.PushSalesOrderPushSalesOrderLine[];
    Payments : EVA.Core.Services.PushSalesOrderPushSalesOrderPayment[];
    ShippingInformation : EVA.Core.Services.PushSalesOrderPushSalesOrderShippingInformation;
    CustomData : { [ key : string ] : any };
  }

  export class PushSalesOrderPushSalesOrderAddress {
    AddressedTo : string;
    Street : string;
    HouseNumber : string;
    Address1 : string;
    Address2 : string;
    ZipCode : string;
    City : string;
    Region : string;
    District : string;
    Subdistrict : string;
    CountryID : string;
  }

  export class PushSalesOrderPushSalesOrderCustomer {
    BackendID : string;
    FirstName : string;
    LastName : string;
    EmailAddress : string;
    PhoneNumber : string;
    LanguageID : string;
    CountryID : string;
    Gender : string;
  }

  export class PushSalesOrderPushSalesOrderLine {
    BackendID : string;
    CustomID : string;
    UnitPriceInTax : number; // Decimal
    TaxRate : number; // Decimal
    Quantity : number; // Int32
    Description : string;
    Type : string;
    Discounts : EVA.Core.Services.PushSalesOrderPushSalesOrderLineDiscount[];
    CustomData : any;
    RequestedDeliveryDate? : string; // DateTime, nullable
  }

  export class PushSalesOrderPushSalesOrderLineDiscount {
    BackendID : string;
    Description : string;
    Amount : number; // Decimal
  }

  export class PushSalesOrderPushSalesOrderPayment {
    BackendID : string;
    Method : string;
    Amount : number; // Decimal
    Data : string;
  }

  export class PushSalesOrderResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    CustomerID? : number; // Int32, nullable
    AlreadyExists : boolean;
  }

  export class PushSalesOrderPushSalesOrderShippingInformation {
    Method : string;
    UnitPriceInTax : number; // Decimal
    TaxRate : number; // Decimal
  }

  export class PushUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.PushUserResponse> {
    BackendSystemID : string;
    BackendRelationID : string;
    EmailAddress : string;
    Gender : string;
    Initials : string;
    FirstName : string;
    LastName : string;
    PhoneNumber : string;
    DateOfBirth? : string; // DateTime, nullable
    Nickname : string;
    LanguageID : string;
    CountryID : string;
    ShippingAddress : EVA.Core.AddressDataDto;
    BillingAddress : EVA.Core.AddressDataDto;
  }

  export class PushUserResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class ModifyQuantityOrderedResponseQuantityMutationResultMessage {
    Code : string;
    Message : string;
  }

  export class RaisePurchaseOrderImportedEvent extends EVA.API.RequestMessageWithEmptyResponse {
    PurchaseOrderID? : number; // Int32, nullable
    BackendID : string;
    BackendSystemID : string;
    ShipToOrganizationUnitID? : number; // Int32, nullable
  }

  export class ReceivePurchaseOrderShipment extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ReceivePurchaseOrderShipmentResponse> {
    ShipmentID : number; // Int32
    QuantityReceived : { [ key : number ] : number };
  }

  export class ReceivePurchaseOrderShipmentResponse extends EVA.API.ResponseMessage {
    Success : boolean;
  }

  export class ReceiveShipment extends EVA.API.RequestMessageWithEmptyResponse {
    WorkSet : EVA.Core.ReceiveShipmentWorkSet;
    CompleteShipment? : boolean;
  }

  export class RecoverShoppingCart extends EVA.API.RequestMessageGeneric<EVA.Core.ShoppingCartResponse> {
    ReminderToken : string;
    SessionID : string;
  }

  export class RefillStockAllocation extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    ValueOverride? : number; // Int32, nullable
  }

  export class GetAvailableRefundPaymentMethodsResponseRefundablePaymentTransaction {
    ID : number; // Int32
    BackendID : string;
    PaidAmount : number; // Decimal
    RefundableAmount : number; // Decimal
    ForeignPaidAmount : number; // Decimal
    ForeignRefundableAmount : number; // Decimal
    Type : string;
  }

  export class RemoveProductFromWishList extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    OrderID : number; // Int32
    WishListLineID : number; // Int32
    Quantity : number; // Int32
  }

  export class RemovePushNotificationDevice extends EVA.API.RequestMessageWithEmptyResponse {
    DeviceToken : string;
    BackendSystemID : string;
  }

  export class RemoveUserFromGroup extends EVA.API.RequestMessageWithEmptyResponse {
    UserID : number; // Int32
    GroupID : number; // Int32
  }

  export class RenderThermalPrintResult extends EVA.API.RequestMessageGeneric<EVA.Core.Services.RenderThermalPrintResultResponse> {
    // The output format. It's possible to provide both HTML and PDF. When Html is specified the response will contain the thermal print result inside the `Html` field.
    OutputFormat : EVA.Core.Services.RenderThermalPrintResultOutputFormat;
    // The blob that contains the result of the thermal print job. If an incorrect blob is specified, an error will be returned.
    BlobID : string;
  }

  export enum RenderThermalPrintResultOutputFormat {
    Html = 1,
    Pdf = 2,
    Png = 4,
  }

  export class RenderThermalPrintResultResponse extends EVA.API.ResponseMessage {
    Html : string;
    PdfUrl : string;
    PngUrl : string;
  }

  export class ReplaceEntityTranslation extends EVA.API.RequestMessageWithEmptyResponse {
    EntityID : number; // Int32
    EntityType : string;
    EntityField : string;
    LanguageID : string;
    CountryID : string;
    Value : string;
  }

  export class ReplaceStringTranslation extends EVA.API.RequestMessageWithEmptyResponse {
    Key : string;
    LanguageID : string;
    CountryID : string;
    Value : string;
  }

  export class RepostFinancialPeriod extends EVA.API.RequestMessageWithEmptyResponse {
    FinancialPeriodID : number; // Int32
  }

  export class ReprintThermalPrintResult extends EVA.API.RequestMessageWithEmptyResponse {
    // The blob that contains the result of the thermal print job. If an incorrect blob is specified, an error will be returned.
    BlobID : string;
    StationID : number; // Int32
  }

  export class RequestDeviceAuthenticationToken extends EVA.API.RequestMessageGeneric<EVA.Core.Services.RequestDeviceAuthenticationTokenResponse> {
  }

  export class RequestDeviceAuthenticationTokenResponse extends EVA.API.ResponseMessage {
    AuthenticationToken : string;
  }

  export class RequestPasswordResetToken extends EVA.API.RequestMessageWithEmptyResponse {
    EmailAddress : string;
    Context : string;
    AsEmployee? : boolean;
  }

  export class RequestPaymentUpdate extends EVA.API.RequestMessageGeneric<EVA.Core.Services.RequestPaymentUpdateResponse> {
    PaymentTransactionID : number; // Int32
  }

  export class RequestPaymentUpdateResponse extends EVA.API.ResponseMessage {
    PaymentTransaction : EVA.Core.PaymentTransactionDto;
  }

  export class RequestThirdPartyLogin extends EVA.API.RequestMessageGeneric<EVA.Core.Services.RequestThirdPartyLoginResponse> {
    Code : string;
    ReturnUrlSuccess : string;
    ReturnUrlError : string;
  }

  export class RequestThirdPartyLoginResponse extends EVA.API.ResponseMessage {
    RedirectUrl : string;
  }

  export class RequeueErrorMessage extends EVA.API.RequestMessageWithEmptyResponse {
    MessageQueueErrorID? : number; // Int32, nullable
    MessageQueueErrorIDs : number[];
  }

  export class ResendVerifyEmailAddress extends EVA.API.RequestMessageWithEmptyResponse {
    EmailAddress : string;
    AsEmployee? : boolean;
  }

  export class GetStockAvailabilityEstimateForProductsResponseReservedOrderLine {
    OrderLineID : number; // Int32
    OrderID : number; // Int32
    QuantityReserved : number; // Int32
    ShopName : string;
  }

  export class ReserveOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    // Station to print the receipt on
    StationID? : number; // Int32, nullable
  }

  export class ResetFinancialEvents extends EVA.API.RequestMessageWithEmptyResponse {
    Filter : EVA.Core.ListFinancialEventsFilter;
  }

  export class ResetUserPassword extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ResetUserPasswordResponse> {
    Token : string;
    NewPassword : string;
  }

  export class ResetUserPasswordResponse extends EVA.API.ResponseMessage {
    EmailAddress : string;
  }

  export class CreateShipmentReceiptResource {
    ResourceID? : number; // Int32, nullable
    Resources : { [ key : string ] : string };
  }

  export class GetProductUnitOfMeasureQuantitiesResponseResult {
    Value : EVA.Framework.EnumDto;
    Quantity : number; // Int32
  }

  export class RetryFinancialPeriodExport extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Force : boolean;
  }

  export class RetryInvoiceExport extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Force : boolean;
  }

  export class RetryOrderExport extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Force : boolean;
  }

  export class RetryShipmentExport extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Force : boolean;
  }

  export class ReturnableStatusForOrderLine {
    OrderLineID : number; // Int32
    ReturnableQuantity : number; // Int32
    // When present, this OrderLine can only be returned when the OrderLines specified in this collection are also being returned.
    MustBeReturnedWithOrderLineIDs : number[];
    IsReturnable : boolean;
  }

  export class RewriteUrl extends EVA.API.RequestMessageGeneric<EVA.Core.Services.RewriteUrlResponse> {
    Url : string;
  }

  export class RewriteUrlResponse extends EVA.API.ResponseMessage {
    Url : string;
  }

  export class GetAvailableServiceDetailsResponseRoute {
    Method : string;
    Path : string;
  }

  export class GetProductRunRatesResponseRunRate {
    ProductID : number; // Int32
    TotalQuantity : number; // Int32
    DailyRunRate : number; // Double
    MonthlyRunRate : number; // Double
    SoldFromOrganizationUnitID : number; // Int32
    SoldFromOrganizationUnitName : string;
  }

  export class GetStockAvailabilityEstimateForProductsResponseSalesOrderLine {
    OrderLineID : number; // Int32
    OrderID : number; // Int32
    Quantity : number; // Int32
    ExportStatus : EVA.Core.OrderExportStatuses;
    CommitmentStatus? : EVA.Core.OrderLineCommitmentStatus;
    CommitmentDate? : string; // DateTime, nullable
    FulfillmentStatus? : EVA.Core.OrderLineFulfillmentStatus;
    ExportDate? : string; // DateTime, nullable
    RequestedDate : string; // DateTime
    OrderType : EVA.Core.OrderTypes;
  }

  export class SalesTaxEstimateForOrderResponse extends EVA.API.ResponseMessage {
    IsSuccess : boolean;
    TotalTaxAmount : number; // Decimal
    TaxTable : EVA.Core.Services.SalesTaxEstimateForOrderResponseOrderLineTaxCalculationTaxAmountModel[];
    OrderLines : EVA.Core.Services.SalesTaxEstimateForOrderResponseOrderLineTaxCalculationModel[];
  }

  export class ScanStation extends EVA.API.RequestMessageGeneric<EVA.Core.Services.SelectStationResponse> {
    Barcode : string;
  }

  export class SearchBrands extends EVA.API.RequestMessageGeneric<EVA.Core.Services.SearchBrandsResponse> {
    PageSize? : number; // Int32, nullable
    Query : string;
  }

  export class SearchBrandsResponse extends EVA.API.ResponseMessage {
    Brands : EVA.Core.BrandNameInfo[];
  }

  export class SearchOrders extends EVA.API.PagedResultRequest<EVA.Core.Services.SearchOrdersResponse> {
    Query : string;
    PaymentStatus : EVA.Core.PaymentStatus;
    IsConfirmed? : boolean;
    IsPlaced? : boolean;
    IsShipped? : boolean;
    IsCompleted? : boolean;
    HasShipLines? : boolean;
    HasDeliveryLines? : boolean;
    HasReserveLines? : boolean;
    HasOrderLines? : boolean;
    StartTime? : string; // DateTime, nullable
    EndTime? : string; // DateTime, nullable
    StartRequestedDate? : string; // DateTime, nullable
    EndRequestedDate? : string; // DateTime, nullable
    StartShipmentDate? : string; // DateTime, nullable
    EndShipmentDate? : string; // DateTime, nullable
    StartConfirmationDate? : string; // DateTime, nullable
    EndConfirmationDate? : string; // DateTime, nullable
    OrderIDs : number[];
    OrderLineID? : number; // Int32, nullable
    InvoiceNumber : string;
    CompanyName : string;
    ProductID? : number; // Int32, nullable
    IsReserved? : boolean;
    IsOrder? : boolean;
    IsInvoiced? : boolean;
    IsEmpty? : boolean;
    IsExported? : boolean;
    PaymentTypeID? : number; // Int32, nullable
    PaymentTypeName : string;
    OrganizationUnitID? : number; // Int32, nullable
    MinTotalAmountInTax? : number; // Decimal, nullable
    MaxTotalAmountInTax? : number; // Decimal, nullable
    ProductVariation : { [ key : string ] : string[] };
    Data : { [ key : string ] : EVA.Core.OrderSearchDataFilterModel };
    HasReturns? : boolean;
    HasCustomer? : boolean;
    OrderType : EVA.Core.OrderTypes;
    OrderStatus : EVA.Core.OrderStatus;
    ShipFromOrganizationUnitID? : number; // Int32, nullable
    CustomerID? : number; // Int32, nullable
    CreatedByID? : number; // Int32, nullable
    LastModifiedByID? : number; // Int32, nullable
    CustomerReference : string;
    ShipToOrganizationUnitID? : number; // Int32, nullable
    SoldFromOrganizationUnitID? : number; // Int32, nullable
    SoldToOrganizationUnitID? : number; // Int32, nullable
    OriginatingOrganizationUnitID? : number; // Int32, nullable
    PickupOrganizationUnitID? : number; // Int32, nullable
    ShippingOrganizationUnitID? : number; // Int32, nullable
    IncludeChildOrganizationUnits : boolean;
    Properties : number[];
    CustomStatus : number[];
    UserAgentApplication : string[];
    FulfillmentStatus : EVA.Core.OrderSearchFulfillmentStatusFilterModel;
    CarrierID? : number; // Int32, nullable
    ShippingMethodID? : number; // Int32, nullable
  }

  export class SearchOrdersResponse extends EVA.API.ResponseMessage {
    Result : EVA.Framework.PagedResultGeneric<EVA.Core.OrderSearchResultItem>;
    ProductVariations : { [ key : string ] : { [ key : string ] : number } };
    UserAgents : { [ key : string ] : { [ key : string ] : number } };
  }

  export class SearchProducts extends EVA.API.RequestMessageGeneric<EVA.Core.Services.SearchProductsResponse> {
    Query : string;
    Filters : { [ key : string ] : EVA.Core.FilterModel };
    AggregationState : string;
    AggregationOptions : { [ key : string ] : EVA.Core.AggregationFilterModel };
    PageSize? : number; // Int32, nullable
    Page? : number; // Int32, nullable
    Sort : EVA.Framework.SortFieldDescriptor[];
    SearchStrategyCode : string;
    IncludedFields : string[];
    UserTypeOverride : EVA.Framework.UserTypes;
  }

  export class SearchProductsResponse extends EVA.API.ResponseMessage {
    Products : any[];
    AggregationState : string;
    Aggregations : any;
    AggregationOptions : { [ key : string ] : EVA.Core.AggregationFilterModel };
    Page : number; // Int32
    PageSize : number; // Int32
    Total : number; // Int64
    Sort : EVA.Framework.SortFieldDescriptor[];
  }

  export class SearchStockByFields extends EVA.API.PagedResultRequest<EVA.Core.Services.SearchStockResponse> {
    Query : string;
    ProductID? : number; // Int32, nullable
    BackendID : string;
    CustomID : string;
  }

  export class SearchStockResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.ProductWithStockDto> {
  }

  export class SearchUsers extends EVA.API.PagedResultRequest<EVA.Core.Services.SearchUsersResponse> {
    UserIDs : number[];
    EmailAddress : string;
    Name : string;
    SearchQuery : string;
    Types : EVA.Framework.UserTypes;
    ZipCode : string;
    PhoneNumber : string;
    EmployeeNumber : string;
    PrimaryOrganizationUnitID? : number; // Int32, nullable
    AssignedEmployeeID? : number; // Int32, nullable
  }

  export class SearchUsersResponse extends EVA.API.PagedResultResponse<EVA.Core.Services.SearchUsersResponseUserSearchDto> {
  }

  export class GetAvailableServiceDetailsResponseSecurityInfo {
    RequiresAuthentication : boolean;
    RequiredFunctionalities : EVA.Core.Services.GetAvailableServiceDetailsResponseFunctionalityInfo[];
    RequiredUserType : EVA.Framework.UserTypes;
    AllowPublic : boolean;
  }

  export class SelectStation extends EVA.API.RequestMessageGeneric<EVA.Core.Services.SelectStationResponse> {
    StationID : number; // Int32
  }

  export class SelectStationResponse extends EVA.API.ResponseMessage {
    Station : EVA.Core.StationDto;
    // Obsolete: Use Station.HasPrinterDevice
    HasPrinterDevice : boolean;
    // Obsolete: Use Station.HasPinDevice
    HasPinDevice : boolean;
    // Obsolete: Use Station.HasReceiptPrinterDevice
    HasReceiptPrinterDevice : boolean;
  }

  export class SendConfigurationPage extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID? : number; // Int32, nullable
  }

  export class SendContactForm extends EVA.API.RequestMessageWithEmptyResponse {
    Type : string;
    Properties : { [ key : string ] : string };
  }

  export class SendPushNotificationBatch extends EVA.API.RequestMessageWithEmptyResponse {
    Title : string;
    Message : string;
    UserIDs : number[];
    Priority : EVA.Core.PushNotificationPriority;
    TimeToLive? : number; // Int32, nullable
    Sound : string;
    SilentNotification : boolean;
    Payload : any;
  }

  export class GetAvailableServicesResponseService {
    Name : string;
    Type : string;
    Namespace : string;
    AllowPublic : boolean;
  }

  export class SetCustomerReferencesOnOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    CustomerReference : string;
    CustomerOrderID : string;
  }

  export class SetDefaultBillingAddress extends EVA.API.RequestMessageWithEmptyResponse {
    AddressBookID : number; // Int32
  }

  export class SetDefaultShippingAddress extends EVA.API.RequestMessageWithEmptyResponse {
    AddressBookID : number; // Int32
  }

  export class SetDeliveryOrderData extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    OrderID : number; // Int32
    DeliveryOrderData : EVA.Core.DeliveryOrderData;
  }

  export class SetFiscalOrderData extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    FiscalID : string;
    VatNumber : string;
  }

  export class SetGiftWrappingOptionsOnOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    WrapOrder : boolean;
    WrapIndividually : boolean;
    GiftWraps : EVA.Core.Services.GiftWrap[];
    Message : string;
    GreetingCardProductID? : number; // Int32, nullable
  }

  export class SetOrganizationUnitNotes extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID : number; // Int32
    Notes : string;
  }

  export class SetPickProductDiscountOptionsForOrderLine extends EVA.API.RequestMessageWithEmptyResponse {
    OrderLineID : number; // Int32
    Selection? : number; // Int32, nullable
  }

  export class SetPickupOrganizationUnit extends EVA.API.RequestMessageGeneric<EVA.Core.SimpleShoppingCartResponse> {
    OrderID? : number; // Int32, nullable
    SessionID : string;
    OrganizationUnitID : number; // Int32
  }

  export class SetRemarkOnOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    Remark : string;
  }

  export class SetRequestedDate extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    OrderLines : EVA.Core.Services.SetRequestedDateOrderLineDto[];
    RequestedDate? : string; // DateTime, nullable
  }

  export class SetShipmentSettings extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID? : number; // Int32, nullable
    DefaultReceiveMethod : EVA.Core.ShipmentReceiveMethods;
  }

  export class SetShippingMethod extends EVA.API.RequestMessageGeneric<EVA.Core.SimpleShoppingCartResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    OrderLineID? : number; // Int32, nullable
    OrderLineIDs : number[];
    ShippingMethodID : number; // Int32
    RequestedDeliveryDate? : string; // DateTime, nullable
  }

  export class SetTransportOrderLineData extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    OrderLineID : number; // Int32
    OrderLineIDs : number[];
    TransportOrderLineData : EVA.Core.TransportOrderLineData;
  }

  export class SetUserConsignment extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    UserID : number; // Int32
    UseConsignment : boolean;
  }

  export class SetWarehouseOrderData extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    OrderID : number; // Int32
    WarehouseOrderData : EVA.Core.WarehouseOrderData;
  }

  export class SetWishListOrderLineData extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    OrderID : number; // Int32
    OrderLineID : number; // Int32
    IsHidden : boolean;
  }

  export class ShipExternalOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ShipExternalOrderResponse> {
    // ID of the order that is being shipped - required when `BackendID` and `BackendSystemID` are omitted
    ID? : number; // Int32, nullable
    // Reference to the order that is being shipped - required when `ID` is omitted
    BackendID : string;
    // Reference to the system from which the order originated - required when `ID` is omitted
    BackendSystemID : string;
    Shipments : EVA.Core.Services.ShipExternalOrderShipment[];
    // Indicates if this is the last shipment. If this is set to true and there are still lines that are not shipped, the lines will be cancelled
    FinalShipment : boolean;
  }

  export class ShipExternalOrderResponse extends EVA.API.ResponseMessage {
    ShipmentIDs : number[];
  }

  export class ShipExternalOrderShipment {
    // Reference number of the shipment
    BackendID : string;
    // Identifier of the system that created the shipment
    BackendSystemID : string;
    // Optional tracking code that is stored on the shipment.
    TrackingCode : string;
    // Optional tracking link that is stored on the shipment
    TrackingLink : string;
    Lines : EVA.Core.Services.ShipExternalOrderShipmentLine[];
  }

  export class ListShipmentExportsForShipmentResponseShipmentExportDto {
    ID : number; // Int32
    Name : string;
    Status : EVA.Core.TransputJobStatuses;
    CreationTime : string; // DateTime
    LastModificationTime? : string; // DateTime, nullable
  }

  export class ModifyQuantityShippedShipmentLine {
    ShipmentLineID : number; // Int32
    QuantityShipped : number; // Int32
  }

  export class ShipExternalOrderShipmentLine {
    // Reference to the order line that has been shipped. Either this or the Barcode property has to be filled. This is used to match the orderline
    BackendID : string;
    // Barcode of the product that has been shipped. Either this or the BackendID property has to be filled. This is used to match the orderline
    Barcode : string;
    // Number of products that have been shipped
    Quantity : number; // Int32
  }

  export class GetShipmentReceiptResponseLineDtoShipmentLineDto {
    OrderID : number; // Int32
    OrderLineID : number; // Int32
    QuantityShipped : number; // Int32
    QuantityDelivered : number; // Int32
    BackendReference : string;
    DeliveryType : EVA.Core.ShipmentLineDeliveryTypes;
  }

  export class ShipOrderShipmentOrderLine {
    OrderLineID : number; // Int32
    QuantityShipped? : number; // Int32, nullable
    DeliveryNoteNumber : string;
    ShipmentBackendID : string;
    TrackingCode : string;
    TrackingLink : string;
  }

  export class ValidateOrderShipmentShipmentOrderLine {
    OrderLineID : number; // Int32
    QuantityShipped? : number; // Int32, nullable
  }

  export class ShipOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ShipOrderResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    Lines : EVA.Core.Services.ShipOrderShipmentOrderLine[];
    Force : boolean;
    FinalShipment : boolean;
  }

  export class ShipOrderLines extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ShipOrderLinesResponse> {
    ShipmentBackendID : string;
    TrackingCode : string;
    ShipmentDate : string; // DateTime
    Lines : EVA.Core.Services.ShipOrderLinesLine[];
  }

  export class ShipOrderLinesResponse extends EVA.API.ResponseMessage {
    ShipmentID? : number; // Int32, nullable
  }

  export class ShipOrderResponse extends EVA.API.ResponseMessage {
    ShipmentIDs : number[];
    ShippedOrderLineIDs : number[];
    Messages : EVA.Core.ShipmentResultMessage[];
  }

  export class ShipPurchaseOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ShipPurchaseOrderResponse> {
    OrderID : number; // Int32
    BackendID : string;
    TrackingCode : string;
    ShipmentDate : string; // DateTime
    Lines : EVA.Core.Services.ShipPurchaseOrderLine[];
  }

  export class ShipPurchaseOrderLine {
    OrderLineID : number; // Int32
    QuantityToShip : number; // Int32
  }

  export class ShipPurchaseOrderResponse extends EVA.API.ResponseMessage {
    ShipmentID : number; // Int32
  }

  export class GetShopsByProximityResponseShopInfo {
    ID : number; // Int32
    Name : string;
    Address : EVA.Core.AddressDto;
    PhoneNumber : string;
    Latitude : number; // Double
    Longitude : number; // Double
    Distance : number; // Int32
  }

  export class ListShopsInAreaResponseShopInfo {
    ID : number; // Int32
    Name : string;
    Address : EVA.Core.AddressDto;
    PhoneNumber : string;
    Latitude : number; // Double
    Longitude : number; // Double
    UpcomingOpeningHours : EVA.Core.WeekOpeningsDto[];
    RegularOpeningHours : EVA.Core.WeekOpeningsDto[];
  }

  export class GetStockAvailabilityEstimateForProductsResponseShopReplenishment {
    OrderLineID : number; // Int32
    OrderID : number; // Int32
    Quantity : number; // Int32
    RequestedDate : string; // DateTime
    IsConfirmed : boolean;
  }

  export class SimpleOrderLine {
    OrderLineID : number; // Int32
    ProductID? : number; // Int32, nullable
    Properties : any;
    Description : string;
    Quantity : number; // Int32
    TotalAmount : number; // Decimal
    TotalAmountInTax : number; // Decimal
  }

  export class SimpleUserDto {
    ID : number; // Int32
    FirstName : string;
    LastName : string;
  }

  export class SplitOrderLine extends EVA.API.RequestMessageGeneric<EVA.Core.Services.SplitOrderLineResponse> {
    OrderLineID : number; // Int32
    QuantityToSplit : number; // Int32
  }

  export class SplitOrderLineResponse extends EVA.API.ResponseMessage {
    OrderLineID : number; // Int32
  }

  export class StartCloseCashJournal extends EVA.API.RequestMessageGeneric<EVA.Core.Services.StartCloseCashJournalResponse> {
    DeviceID : number; // Int32
    // Will be required!
    CurrencyID : string;
    // Will be required!
    PaymentTypeID? : number; // Int32, nullable
  }

  export class StartCloseCashJournalResponse extends EVA.API.ResponseMessage {
    CashJournalDetails : EVA.Core.CashJournalDetailsModel;
  }

  export class StartOpenCashJournal extends EVA.API.RequestMessageGeneric<EVA.Core.Services.StartOpenCashJournalResponse> {
    DeviceID : number; // Int32
    // Will be required!
    CurrencyID : string;
    // Will be required!
    PaymentTypeID? : number; // Int32, nullable
  }

  export class StartOpenCashJournalResponse extends EVA.API.ResponseMessage {
    CurrencyID : string;
    CountryID : string;
    AvailableCoins : number[];
    AvailableBankNotes : number[];
    Type : EVA.Core.CashJournalTypes;
    PaymentType : EVA.Core.Services.StartOpenCashJournalResponsePaymentTypeDto;
    PreviousCashJournal : EVA.Core.Services.StartOpenCashJournalResponseCashJournal;
  }

  export class StockDto {
    ProductID : number; // Int32
    OrganizationUnitID : number; // Int32
    StockLabel : number; // Int32
    StockLabelID : number; // Int32
    QuantityOnHand : number; // Int32
    QuantityAvailable : number; // Int32
    Remark : string;
  }

  export class GetStockLabelsResponseStockLabelDto {
    ID : number; // Int32
    Name : string;
    Description : string;
  }

  export class GetStockByStockLabelForProductsResponseStockLabelStock {
    StockLabelID : number; // Int32
    QuantityOnHand : number; // Int32
  }

  export class CreateStockMutationsStockMutation {
    ProductBackendID : string;
    Timestamp : string; // DateTime
    Quantity : number; // Int32
    Reason : string;
    Remark : string;
    Delta : boolean;
  }

  export class StockNotificationResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class StockResourceDto {
    ID : number; // Int32
    Lines : EVA.Core.Services.StockResourceLineDto[];
  }

  export class StockResourceLineDto {
    Type : string;
    Value : string;
  }

  export class StoreAndAttachBlobToOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.StoreAndAttachBlobToOrderResponse> {
    Name : string;
    Type? : EVA.Core.OrderBlobTypes;
    OrderID? : number; // Int32, nullable
    OrderLineID? : number; // Int32, nullable
    Category : string;
    OriginalName : string;
    MimeType : string;
    Data : string;
  }

  export class StoreAndAttachBlobToOrderResponse extends EVA.API.ResponseMessage {
    Guid : string;
    Url : string;
  }

  export class SubscribeToFeed extends EVA.API.RequestMessageGeneric<EVA.Core.Services.SubscribeToFeedResponse> {
    Name : string;
    WebhookUrl : string;
  }

  export class SubscribeToFeedResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }

  export class SubscribeUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.SubscribeUserResponse> {
    UserID? : number; // Int32, nullable
    SubscriptionID : number; // Int32
  }

  export class SubscribeUserResponse extends EVA.API.ResponseMessage {
    Status : EVA.Core.SubscriptionStatus;
  }

  export class GetAvailableSubscriptionsResponseSubscriptionDto {
    ID : number; // Int32
    Name : string;
    ConfirmationRequired : boolean;
    Default : boolean;
    UserField : string;
    BackendID : string;
  }

  export class GetUserSubscriptionsResponseSubscriptionDto {
    ID : number; // Int32
    BackendID : string;
    Name : string;
    ConfirmationRequired : boolean;
    Default : boolean;
    UserField : string;
  }

  export class GetStockAvailabilityEstimateForOrderResponseSuggestedAlternativeDate {
    Date : string; // DateTime
    QuantityAvailable? : number; // Int32, nullable
    PurchaseOrderLines : EVA.Core.Services.GetStockAvailabilityEstimateForOrderResponsePurchaseOrderLine[];
  }

  export class GetProductSupplierInfoForProductsResponseSupplier {
    ID : number; // Int32
    BackendID : string;
    Name : string;
  }

  export class SupplierCreatePurchaseOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.CreatePurchaseOrderResponse> {
    ShipFromOrganizationUnitBackendID : string;
    ShipToOrganizationUnitBackendID : string;
    BackendID : string;
    BackendSystemID : string;
    ExpectedDeliveryDate? : string; // DateTime, nullable
    Lines : EVA.Core.Services.SupplierCreatePurchaseOrderSupplierCreatePurchaseOrderLine[];
  }

  export class SupplierCreatePurchaseOrderSupplierCreatePurchaseOrderLine {
    CustomID : string;
    Quantity : number; // Int32
  }

  export class SupplierShipPurchaseOrder extends EVA.API.RequestMessageWithEmptyResponse {
    ID? : number; // Int32, nullable
    BackendID : string;
    BackendSystemID : string;
    ShipToOrganizationUnitBackendID : string;
    Confirmations : EVA.Core.Services.SupplierShipPurchaseOrderConfirmation[];
  }

  export class SupplierShipPurchaseOrderConfirmation {
    BackendID : string;
    TrackingCode : string;
    TrackingLink : string;
    ExpectedDeliveryDate? : string; // DateTime, nullable
    Lines : EVA.Core.Services.SupplierShipPurchaseOrderConfirmationLine[];
  }

  export class SupplierShipPurchaseOrderConfirmationLine {
    CustomID : string;
    Quantity : number; // Int32
  }

  export class SupplierUpdatePurchaseOrder extends EVA.API.RequestMessageWithEmptyResponse {
    BackendID : string;
    BackendSystemID : string;
    ShipToOrganizationUnitBackendID : string;
    Lines : EVA.Core.Services.SupplierUpdatePurchaseOrderSupplierUpdatePurchaseOrderLine[];
  }

  export class SupplierUpdatePurchaseOrderSupplierUpdatePurchaseOrderLine {
    CustomID : string;
    Quantity : number; // Int32
  }

  export class ListSuspendedOrdersResponseSuspendedOrderDto {
    OrderID : number; // Int32
    Description : string;
    TotalAmount : number; // Decimal
    TotalAmountInTax : number; // Decimal
    CurrencyID : string;
    CustomerName : string;
    SuspendedByName : string;
    SuspensionTime : string; // DateTime
  }

  export class SuspendOrder extends EVA.API.RequestMessageWithEmptyResponse {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    Description : string;
    StationID? : number; // Int32, nullable
    PrintReceipt : boolean;
  }

  export class ListAvailableRecurringTasksResponseTaskPluginDto {
    Name : string;
    FullName : string;
    Description : string;
    AvailableSettings : EVA.Core.Services.TaskPluginSettings[];
    DefaultName : string;
    DefaultCron : string;
  }

  export class TaskPluginSettings {
    Key : string;
    Description : string;
    Required : boolean;
    Default : any;
  }

  export class GenerateTerminalResponseTax {
    Code : string;
    Rate : number; // Decimal
    Amount : number; // Decimal
  }

  export class TaxCodeItem {
    ID : number; // Int32
    Name : string;
    Description : string;
    LedgerClassID : string;
    BackendID : string;
  }

  export class GetStockAvailabilityTimelineResponseTimelineItem {
    OrganizationUnitID : number; // Int32
    OrganizationUnitName : string;
    Type : EVA.Core.Services.AvailabilityTimelineItemTypes;
    Date : string; // DateTime
    OrderID? : number; // Int32, nullable
    OrderLineID? : number; // Int32, nullable
    ProductID : number; // Int32
    DeltaQuantityOnHand : number; // Int32
    DeltaQuantityCommitted : number; // Int32
    CumulativeSumQuantityCommitted : number; // Int32
    CumulativeSumQuantityOnHand : number; // Int32
    CumulativeSumQuantityAvailable : number; // Int32
    RequestedDate? : string; // DateTime, nullable
    OrderBackendID : string;
  }

  export class ProduceTrackingInformationResponseTrackingInformation {
    Link : string;
    Code : string;
  }

  export class TransferOrder extends EVA.API.RequestMessageWithEmptyResponse {
    SessionID : string;
    OrderID? : number; // Int32, nullable
  }

  export class TransferOrderToOrganizationUnit extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
  }

  export class TriggerRecurringTask extends EVA.API.RequestMessageGeneric<EVA.Core.Services.TriggerRecurringTaskResponse> {
    ID : string;
  }

  export class TriggerRecurringTaskResponse extends EVA.API.ResponseMessage {
    JobId : string;
  }

  export class GetAvailableServiceDetailsResponseTypeDefinition {
    Name : string;
    Description : string;
    Namespace : string;
    Type : string;
    Optional : boolean;
    Fields : EVA.Core.Services.GetAvailableServiceDetailsResponseTypeDefinition[];
  }

  export class GetAvailablePaymentMethodsResponseTypeModel {
    ID : number; // Int32
    Name : string;
    Code : string;
    Data : any;
  }

  export class UncommitOrderLines extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    OrderLineIDs : number[];
  }

  export class GetProductSupplierInfoForProductsResponseUnitOfMeasure {
    ID : number; // Int32
    Name : string;
    Quantity : number; // Int32
  }

  export class UnsubscribeFromFeed extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    ID : number; // Int32
  }

  export class UnsubscribeUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.UnsubscribeUserResponse> {
    UserID? : number; // Int32, nullable
    SubscriptionID : number; // Int32
  }

  export class UnsubscribeUserResponse extends EVA.API.ResponseMessage {
    Status : EVA.Core.SubscriptionStatus;
  }

  export class UpdateAddress extends EVA.API.RequestMessageWithEmptyResponse {
    UserID : number; // Int32
    BillToShipping : boolean;
    ShipToAddress : EVA.Core.AddressDataDto;
    BillToAddress : EVA.Core.AddressDataDto;
  }

  export class UpdateAddressBookItem extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Description : string;
    Address : EVA.Core.AddressDataDto;
  }

  export class UpdateCashExpenseType extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Description : string;
    LedgerClassID : string;
    BackendID : string;
    AmountType : EVA.Core.CashExpenseAmountTypes;
    OrganizationUnitSetID? : number; // Int32, nullable
    TaxCodeID? : number; // Int32, nullable
  }

  export class UpdateCompanyForUser extends EVA.API.RequestMessageWithEmptyResponse {
    UserID : number; // Int32
    Name : string;
    RegistrationNumber : string;
    RegistrationCity : string;
    RegistrationCountryID : string;
    VatNumber : string;
    LegalFormID : number; // Int32
    EstablishedDate? : string; // DateTime, nullable
    ContactEmailAddress : string;
    ContactPhoneNumber : string;
    AccountHolderName : string;
    IBAN : string;
    BIC : string;
    DeliveryAddress : EVA.Core.AddressDto;
    InvoiceAddress : EVA.Core.AddressDto;
    ReturnsAddress : EVA.Core.AddressDto;
    VisitorsAddress : EVA.Core.AddressDto;
  }

  export class UpdateContractNumber extends EVA.API.RequestMessageWithEmptyResponse {
    OrderLineID : number; // Int32
    ContractNumber : string;
  }

  export class UpdateCurrency extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string;
    Name : string;
    Precision : number; // Int16
  }

  export class UpdateInterbranchOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    OrganizationUnitID : number; // Int32
    // The date when the shipment is expected in the other store
    ExpectedDeliveryDate? : string; // DateTime, nullable
  }

  export class UpdateInvoice extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    InvoiceDate : string; // DateTime
    PaymentTermStartDate? : string; // DateTime, nullable
    PaymentTermDueDate? : string; // DateTime, nullable
    InvoiceNumber : string;
    Description : string;
    OrganizationUnitID : number; // Int32
    SupplierOrganizationUnitID? : number; // Int32, nullable
    HoldStatusID? : number; // Int32, nullable
    Blobs : EVA.Core.InvoiceBlobDto[];
    OriginalTotalAmount? : number; // Decimal, nullable
    FiscalID : string;
    TaxReverseCharge : boolean;
  }

  export class UpdateInvoiceAdditionalAmount extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    TypeID : number; // Int32
    OriginalAmount : number; // Decimal
    Amount : number; // Decimal
    TaxRate? : number; // Decimal, nullable
    TaxCodeID : number; // Int32
  }

  export class UpdateInvoiceAdditionalAmountType extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Description : string;
    LedgerClassID : string;
  }

  export class UpdateInvoiceDispute extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    ReasonID : number; // Int32
    Amount : number; // Decimal
    Description : string;
    Type? : EVA.Core.InvoiceDisputeTypes;
  }

  export class UpdateInvoiceDisputeReason extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Description : string;
    LedgerClassID : string;
    AutoResolve : boolean;
  }

  export class UpdateInvoiceDisputeResolveAction extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Amount : number; // Decimal
    Description : string;
    LedgerClassID : string;
  }

  export class UpdateInvoiceHoldStatus extends EVA.API.RequestMessageWithEmptyResponse {
    InvoiceID : number; // Int32
    HoldStatusID? : number; // Int32, nullable
  }

  export class UpdateInvoiceLine2 {
    InvoiceLineID : number; // Int32
    Quantity : number; // Int32
    ExpectedQuantity? : number; // Int32, nullable
    UnitPrice : number; // Decimal
    TaxRate : number; // Decimal
  }

  export class UpdateInvoiceLines2 extends EVA.API.RequestMessageWithEmptyResponse {
    InvoiceID : number; // Int32
    Lines : EVA.Core.Services.UpdateInvoiceLine2[];
  }

  export class UpdateOrderAddresses extends EVA.API.RequestMessageGeneric<EVA.Core.Services.UpdateOrderAddressesResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    CopyShippingAddressFromCustomer : boolean;
    CopyBillingAddressFromCustomer : boolean;
    ShipToAddress : EVA.Core.AddressDataDto;
    BillToAddress : EVA.Core.AddressDataDto;
  }

  export class UpdateOrderAddressesResponse extends EVA.API.ResponseMessage {
    CreditcardAllowed : boolean;
    ShipToAddress : EVA.Core.AddressDto;
    BillToAddress : EVA.Core.AddressDto;
  }

  export class UpdateOrderAddressResponse extends EVA.API.ResponseMessage {
    ShippingAddress : EVA.Core.AddressDto;
    BillingAddress : EVA.Core.AddressDto;
  }

  export class UpdateOrderBillingAddress extends EVA.API.RequestMessageGeneric<EVA.Core.Services.UpdateOrderAddressResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    Address : EVA.Core.AddressDto;
    AddressBookID? : number; // Int32, nullable
  }

  export class UpdateOrderCurrency extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID? : number; // Int32, nullable
    SessionID : string;
    CurrencyID : string;
  }

  export class UpdateOrderLineStockLabel extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID? : number; // Int32, nullable
    OrderLineID? : number; // Int32, nullable
    StockLabelID : number; // Int32
  }

  export class UpdateOrderOptions extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    IgnoreDiscounts? : boolean;
    IgnoreShippingCosts? : boolean;
    IgnoreGiftWrappingCosts? : boolean;
    AllowPartialFulfillment? : boolean;
  }

  export class UpdateOrderShippingAddress extends EVA.API.RequestMessageGeneric<EVA.Core.Services.UpdateOrderAddressResponse> {
    SessionID : string;
    OrderID? : number; // Int32, nullable
    Address : EVA.Core.AddressDto;
    AddressBookID? : number; // Int32, nullable
  }

  export class UpdateOrganizationOpeningHours extends EVA.API.RequestMessageGeneric<EVA.Core.Services.UpdateOrganizationOpeningHoursResponse> {
    openingHoursDto : EVA.Core.OpeningHoursDto[];
  }

  export class UpdateOrganizationOpeningHoursResponse extends EVA.API.ResponseMessage {
    Success : boolean;
  }

  export class UpdateOrganizationUnit extends EVA.API.UpdateRequest<EVA.Core.OrganizationUnitDto> implements EVA.API.IRequestRespondsAs<EVA.API.EmptyResponseMessage> {
    OrganizationUnits : EVA.Core.OrganizationUnitDto[];
  }

  export class UpdateOrganizationUnit2 extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Name : string;
    Description : string;
    StatusID : number; // Int32
    Latitude? : number; // Double, nullable
    Longitude? : number; // Double, nullable
    BankAccount : string;
    RegistrationNumber : string;
    VatNumber : string;
    EmailAddress : string;
    PhoneNumber : string;
    CompanyID? : number; // Int32, nullable
    OpeningHours : EVA.Core.OpeningHoursDataDto[];
    Address : EVA.Core.AddressDataDto;
    CocNumber : string;
  }

  export class UpdateOrganizationUnitSettings extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    ParentID? : number; // Int32, nullable
    BackendID : string;
    BackendRelationID : string;
    BackendCompanyID : string;
    BranchNumber : string;
    GlobalLocationNumber : string;
    RegisterCashLimit? : number; // Decimal, nullable
    SafeCashLimit? : number; // Decimal, nullable
    CashHandlerID? : number; // Int32, nullable
    TypeID : number; // Int32
    Subnet : string;
    UseForAccounting : boolean;
    AttachedToUserID? : number; // Int32, nullable
    IpAddress : string;
    CountryID : string;
    LanguageID : string;
    CurrencyID : string;
    CostPriceCurrencyID : string;
    TimeZone : string;
    AssortmentID? : number; // Int32, nullable
    RoleSetID : number; // Int32
  }

  export class UpdateOrganizationUnitSupplier extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Type : EVA.Core.OrganizationUnitSupplierTypes;
  }

  export class UpdateProductAvailabilityData extends EVA.API.UpdateRequest<EVA.Core.ProductAvailabilityDataDto> implements EVA.API.IRequestRespondsAs<EVA.API.EmptyResponseMessage> {
  }

  export class UpdateProductBundle extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    BackendID : string;
    Lines : EVA.Core.Services.UpdateProductBundleLine[];
  }

  export class UpdateProductBundleLine {
    // Can be left null for new lines to be added to the bundle.
    ID? : number; // Int32, nullable
    Description : string;
    DefaultProductID? : number; // Int32, nullable
    BackendID : string;
    Type : EVA.Core.ProductBundleLineTypes;
    Options : EVA.Core.Services.UpdateProductBundleLineOption[];
  }

  export class UpdateProductBundleLineOption {
    ProductID : number; // Int32
  }

  export class UpdateProductRequirement extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    ProductID : number; // Int32
    Name : string;
    DataType : EVA.Core.ProductRequirementDataTypes;
    IsArray : boolean;
    IsRequired : boolean;
    Data : any;
  }

  export class UpdateProductRequirementValuesForOrderLine extends EVA.API.RequestMessageWithEmptyResponse {
    OrderLineID : number; // Int32
    Values : { [ key : number ] : any };
  }

  export class UpdateRecurringTask extends EVA.API.RequestMessageWithEmptyResponse {
    ID : string;
    FullName : string;
    Cron : string;
    Arguments : { [ key : string ] : string };
  }

  export class UpdateReturnToSupplierOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    ReasonID? : number; // Int32, nullable
    ShipToOrganizationUnitID? : number; // Int32, nullable
  }

  export class UpdateSerialNumber extends EVA.API.RequestMessageWithEmptyResponse {
    OrderLineID : number; // Int32
    SerialNumber : string;
  }

  export class UpdateShipment extends EVA.API.RequestMessageWithEmptyResponse {
    ShipmentID : number; // Int32
    ReceiveMethod : EVA.Core.ShipmentReceiveMethods;
  }

  export class UpdateSimplePrices extends EVA.API.RequestMessageWithEmptyResponse {
    PriceListID? : number; // Int32, nullable
    PriceListBackendID : string;
    PriceListBackendSystemID : string;
    Prices : EVA.Core.Services.UpdateSimplePricesPrice[];
  }

  export class UpdateStock extends EVA.API.RequestMessageWithEmptyResponse {
    OrganizationUnitID? : number; // Int32, nullable
    Stock : { [ key : string ] : number };
    Identifier : EVA.Core.Services.UpdateStockIdentifier;
  }

  export class UpdateStockAllocationRule extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Value? : number; // Int32, nullable
    ValueType : EVA.Core.StockAllocationRuleValueTypes;
    RefillPeriodInDays? : number; // Int32, nullable
    StartDate? : string; // DateTime, nullable
    EndDate? : string; // DateTime, nullable
  }

  export enum UpdateStockIdentifier {
    ID = 0,
    BackendID = 1,
  }

  export class UpdateTaxCode extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Name : string;
    Description : string;
    BackendID : string;
    LedgerClassID : string;
  }

  export class UpdateTaxRate extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    ID : number; // Int32
    CountryID : string;
    TaxCodeID : number; // Int32
    Rate : number; // Decimal
    StartDate? : string; // DateTime, nullable
    EndDate? : string; // DateTime, nullable
  }

  export class UpdateUser extends EVA.API.RequestMessageGeneric<EVA.Core.Services.UpdateUserResponse> {
    ID : number; // Int32
    BackendRelationID : string;
    Initials : string;
    FirstName : string;
    LastName : string;
    DateOfBirth? : string; // DateTime, nullable
    PlaceOfBirth : string;
    Gender : string;
    LanguageID : string;
    CountryID : string;
    Nickname : string;
    BankAccount : string;
    PhoneNumber : string;
    TimeZone : string;
    FiscalID : string;
    SocialSecurityNumber : string;
  }

  export class UpdateUserDebtorData extends EVA.API.RequestMessageWithEmptyResponse {
    UserID : number; // Int32
    PaymentTerms : string;
    CreditLimit? : number; // Decimal, nullable
    AssignedToUserID? : number; // Int32, nullable
    ColloPrice? : number; // Decimal, nullable
    PalletPrice? : number; // Decimal, nullable
    OversizedPrice? : number; // Decimal, nullable
    IsTaxExempt : boolean;
  }

  export class UpdateUserEmailAddress extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    NewEmailAddress : string;
  }

  export class UpdateUserGroup extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    Name : string;
  }

  export class UpdateUserPhoneNumber extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    PhoneNumber : string;
    Type : EVA.Core.PhoneNumberTypes;
    Description : string;
  }

  export class UpdateUserResponse extends EVA.API.ResponseMessage {
  }

  export class UpdateWishList extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    OrderID : number; // Int32
    Name : string;
    Data : any;
    SortedWishListLineIDs : number[];
  }

  export class UpdateWishListFunding extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    Name : string;
    Remark : string;
  }

  export class ListOrderLedgerForOrderResponseUserDto {
    ID : number; // Int32
    FullName : string;
  }

  export class UserGroupDto {
    ID : number; // Int32
    Name : string;
  }

  export class UserPhoneNumberModel {
    ID : number; // Int32
    PhoneNumber : string;
    Description : string;
    Type : EVA.Core.PhoneNumberTypes;
    IsPrimary : boolean;
  }

  export class SearchUsersResponseUserSearchDto {
    ID : number; // Int32
    CompanyName : string;
    BackendRelationID : string;
    EmailAddress : string;
    FirstName : string;
    LastName : string;
    FullName : string;
    ShippingAddress : EVA.Core.AddressDto;
    BillingAddress : EVA.Core.AddressDto;
    Type : EVA.Framework.UserTypes;
    PhoneNumber : string;
    GravatarHash : string;
    Data : { [ key : string ] : string };
    EmployeeNumber : string;
    PrimaryOrganizationUnitID? : number; // Int32, nullable
    PrimaryOrganizationUnitName : string;
  }

  export class GetUserSubscriptionsResponseUserSubscriptionDto {
    Status : EVA.Core.SubscriptionStatus;
    Subscription : EVA.Core.Services.GetUserSubscriptionsResponseSubscriptionDto;
  }

  export class ValidateExportSchedule extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ValidateExportScheduleResponse> {
    OrderID : number; // Int32
    OrderLineIDs : number[];
  }

  export class ValidateExportScheduleResponse extends EVA.API.ResponseMessage {
    ValidationResult : EVA.Core.OrderExportValidationResult;
  }

  export class ValidateIdentificationPin extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ValidateIdentificationPinResponse> {
    Pin : string;
  }

  export class ValidateIdentificationPinResponse extends EVA.API.ResponseMessage {
    IsValid : boolean;
  }

  export class ValidateInvoiceNumber extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ValidateInvoiceNumberResponse> {
    InvoiceNumber : string;
    OrganizationUnitID : number; // Int32
    Type : EVA.Core.InvoiceTypes;
  }

  export class ValidateInvoiceNumberResponse extends EVA.API.ResponseMessage {
    IsValid : boolean;
    Invoices : EVA.Core.InvoiceDto[];
  }

  export class ValidateOrderShipment extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ValidateOrderShipmentResponse> {
    OrderID : number; // Int32
    Lines : EVA.Core.Services.ValidateOrderShipmentShipmentOrderLine[];
  }

  export class ValidateOrderShipmentResponse extends EVA.API.ResponseMessage {
    PaidAmount : number; // Decimal
    OpenAmountForShipment : number; // Decimal
    IsValid : boolean;
  }

  export class ValidateRequiredDataForOrder extends EVA.API.RequestMessageGeneric<EVA.Core.Services.ValidateRequiredDataForOrderResponse> {
    OrderID : number; // Int32
    RequiredFor : EVA.Core.RequiredFor;
  }

  export class ValidateRequiredDataForOrderResponse extends EVA.API.ResponseMessage {
    ValidatedData : EVA.Core.RequiredDataValidationResult;
  }

  export class VerifyCustomer extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
    VerificationCode : string;
    ManualRelease : boolean;
    IdentificationCode : string;
  }

  export class VerifyEmailAddress extends EVA.API.RequestMessageGeneric<EVA.Core.Services.VerifyEmailAddressResponse> {
    Token : string;
  }

  export class VerifyEmailAddressResponse extends EVA.API.ResponseMessage {
    Authentication : EVA.Framework.AuthenticationResults;
    AuthenticationToken : string;
  }

  export class VerifyOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID : number; // Int32
  }

  export class GetWebshopsResponseWebshopDto {
    ID : number; // Int32
    Name : string;
    CountryID : string;
  }

  export class WishListDto {
    ID : string;
    Name : string;
    Data : any;
    IsCompleted : boolean;
    Customer : EVA.Core.Services.WishListUserDto;
    Lines : EVA.Core.Services.WishListLineDto[];
    Fundings : EVA.Core.Services.WishListFundingDto[];
    OrderID : number; // Int32
    AccessToken : string;
  }

  export class WishListFundingDto {
    ID : number; // Int32
    Type : EVA.Core.WishListFundingType;
    IsConfirmed : boolean;
    Name : string;
    Remark : string;
    Amount : number; // Decimal
    CurrencyID : string;
    Quantity? : number; // Int32, nullable
    OrderID? : number; // Int32, nullable
    OrderLineID? : number; // Int32, nullable
    QuantityShipped? : number; // Int32, nullable
    ParentID? : number; // Int32, nullable
  }

  export class WishListLineDto {
    ID : number; // Int32
    Quantity : number; // Int32
    CurrencyID : string;
    TotalAmount : number; // Decimal
    Product : EVA.Core.Services.WishListProductDto;
    Fundings : EVA.Core.Services.WishListFundingDto[];
    IsHidden : boolean;
    Children : EVA.Core.Services.WishListLineDto[];
    RequestedDate? : string; // DateTime, nullable
    UnitPrice : number; // Decimal
    FundedAmount : number; // Decimal
    FundedAmountAsPayment : number; // Decimal
    FundedQuantityAsPayment : number; // Int32
    FundedQuantityAsDelivery : number; // Int32
    FundedQuantityShipped : number; // Int32
    OpenAmount : number; // Decimal
    OpenQuantity : number; // Int32
  }

  export class GetWishListOrderLineDataResponseWishListOrderLineDataDto {
    OrderID : number; // Int32
    OrderLineID : number; // Int32
    IsHidden : boolean;
  }

  export class WishListPaymentTransactionDto {
    ID : number; // Int32
    Amount : number; // Decimal
    PaymentName : string;
    CurrencyID : string;
    ExchangeRate : number; // Decimal
    ForeignAmount : number; // Decimal
    Description : string;
  }

  export class WishListProductDto {
    ID : number; // Int32
    BackendID : string;
    CustomID : string;
    Name : string;
    Properties : any;
    Type : EVA.Core.ProductTypes;
  }

  export class WishListUserDto {
    ID : number; // Int32
    EmailAddress : string;
    FullName : string;
  }

  export class WrapLine {
    OrderLineID : number; // Int32
    Quantity : number; // Int32
  }

}