using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;

namespace UnifiedPOS.VideoCapture.V1_4
{
    [ServiceContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public interface VideoCapture
    {
        #region Version 1.4

        //
        // Common Properties
        //

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetAutoDisable", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetAutoDisableResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        //bool GetAutoDisable(string ConsumerID);

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetAutoDisable", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetAutoDisableResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        //void SetAutoDisable(string ConsumerID, bool AutoDisable);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapCompareFirmwareVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapCompareFirmwareVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapCompareFirmwareVersion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPowerReporting", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPowerReportingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        PowerReporting GetCapPowerReporting(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapStatisticsReporting", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapStatisticsReportingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapStatisticsReporting(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapUpdateFirmware", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapUpdateFirmwareResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapUpdateFirmware(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapUpdateStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapUpdateStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapUpdateStatistics(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCheckHealthText", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCheckHealthTextResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetCheckHealthText(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetClaimed", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetClaimedResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetClaimed(string ConsumerID);

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDataCount", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDataCountResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        //int GetDataCount(string ConsumerID);

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDataEventEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDataEventEnabledResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        //bool GetDataEventEnabled(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetDataEventEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetDataEventEnabledResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetDataEventEnabled(string ConsumerID, bool DataEventEnabled);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDeviceEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDeviceEnabledResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetDeviceEnabled(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetDeviceEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetDeviceEnabledResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetDeviceEnabled(string ConsumerID, bool DeviceEnabled);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetFreezeEvents", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetFreezeEventsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetFreezeEvents(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetFreezeEvents", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetFreezeEventsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetFreezeEvents(string ConsumerID, bool FreezeEvents);

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetOutputID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetOutputIDResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        //int GetOutputID(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPowerNotify", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPowerNotifyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        PowerNotification GetPowerNotify(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetPowerNotify", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetPowerNotifyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetPowerNotify(string ConsumerID, PowerNotification PowerNotify);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPowerState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPowerStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        PowerState GetPowerState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        ControlState GetState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDeviceControlDescription", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDeviceControlDescriptionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetDeviceControlDescription(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDeviceControlVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDeviceControlVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        UposVersion GetDeviceControlVersion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDeviceServiceDescription", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDeviceServiceDescriptionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetDeviceServiceDescription(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDeviceServiceVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetDeviceServiceVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        UposVersion GetDeviceServiceVersion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhysicalDeviceDescription", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhysicalDeviceDescriptionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetPhysicalDeviceDescription(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhysicalDeviceName", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhysicalDeviceNameResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetPhysicalDeviceName(string ConsumerID);

        //
        // Specific Properties
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapAssociatedHardTotalsDevice", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapAssociatedHardTotalsDeviceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetCapAssociatedHardTotalsDevice(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapAutoExposure", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapAutoExposureResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapAutoExposure(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapAutoFocus", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapAutoFocusResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapAutoFocus(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapAutoGain", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapAutoGainResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapAutoGain(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapAutoWhiteBalance", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapAutoWhiteBalanceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapAutoWhiteBalance(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapBrightness", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapBrightnessResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapBrightness(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapContrast", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapContrastResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapContrast(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapExposure", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapExposureResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapExposure(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapGain", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapGainResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapGain(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapHorizontalFlip", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapHorizontalFlipResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapHorizontalFlip(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapHue", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapHueResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapHue(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPhoto", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPhotoResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapPhoto(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPhotoColorSpace", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPhotoColorSpaceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapPhotoColorSpace(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPhotoFrameRate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPhotoFrameRateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapPhotoFrameRate(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPhotoResolution", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPhotoResolutionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapPhotoResolution(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPhotoType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapPhotoTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapPhotoType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapSaturation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapSaturationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapSaturation(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapStorage", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapStorageResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        CapStorage GetCapStorage(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVerticalFlip", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVerticalFlipResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapVerticalFlip(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVideo", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVideoResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapVideo(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVideoColorSpace", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVideoColorSpaceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapVideoColorSpace(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVideoFrameRate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVideoFrameRateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapVideoFrameRate(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVideoResolution", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVideoResolutionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapVideoResolution(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVideoType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetCapVideoTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetCapVideoType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetAutoExposure", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetAutoExposureResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetAutoExposure(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetAutoExposure", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetAutoExposureResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetAutoExposure(string ConsumerID, bool AutoExposure);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetAutoFocus", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetAutoFocusResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetAutoFocus(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetAutoFocus", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetAutoFocusResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetAutoFocus(string ConsumerID, bool AutoFocus);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetAutoGain", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetAutoGainResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetAutoGain(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetAutoGain", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetAutoGainResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetAutoGain(string ConsumerID, bool AutoGain);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetAutoWhiteBalance", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetAutoWhiteBalanceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetAutoWhiteBalance(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetAutoWhiteBalance", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetAutoWhiteBalanceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetAutoWhiteBalance(string ConsumerID, bool AutoWhiteBalance);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetBrightness", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetBrightnessResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetBrightness(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetBrightness", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetBrightnessResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetBrightness(string ConsumerID, int Brightness);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetContrast", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetContrastResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetContrast(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetContrast", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetContrastResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetContrast(string ConsumerID, int Contrast);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetExposure", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetExposureResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetExposure(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetExposure", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetExposureResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetExposure(string ConsumerID, int Exposure);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetGain", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetGainResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetGain(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetGain", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetGainResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetGain(string ConsumerID, int Gain);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetHorizontalFlip", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetHorizontalFlipResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetHorizontalFlip(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetHorizontalFlip", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetHorizontalFlipResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetHorizontalFlip(string ConsumerID, bool HorizontalFlip);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetHue", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetHueResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetHue(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetHue", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetHueResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetHue(string ConsumerID, int Hue);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoColorSpace", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoColorSpaceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetPhotoColorSpace(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetPhotoColorSpace", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetPhotoColorSpaceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetPhotoColorSpace(string ConsumerID, string PhotoColorSpace);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoColorSpaceList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoColorSpaceListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        PhotoColorSpaceList GetPhotoColorSpaceList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoFrameRate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoFrameRateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetPhotoFrameRate(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetPhotoFrameRate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetPhotoFrameRateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetPhotoFrameRate(string ConsumerID, int PhotoFrameRate);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoMaxFrameRate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoMaxFrameRateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetPhotoMaxFrameRate(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoResolution", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoResolutionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetPhotoResolution(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetPhotoResolution", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetPhotoResolutionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetPhotoResolution(string ConsumerID, string PhotoResolution);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoResolutionList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoResolutionListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        PhotoResolutionList GetPhotoResolutionList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetPhotoType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetPhotoType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetPhotoTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetPhotoType(string ConsumerID, string PhotoType);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoTypeList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetPhotoTypeListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        PhotoTypeList GetPhotoTypeList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetRemainingRecordingTimeInSec", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetRemainingRecordingTimeInSecResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetRemainingRecordingTimeInSec(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetSaturation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetSaturationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetSaturation(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetSaturation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetSaturationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetSaturation(string ConsumerID, int Saturation);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetStorage", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetStorageResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        Storage GetStorage(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetStorage", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetStorageResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetStorage(string ConsumerID, Storage Storage);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVerticalFlip", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVerticalFlipResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        bool GetVerticalFlip(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVerticalFlip", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVerticalFlipResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetVerticalFlip(string ConsumerID, bool VerticalFlip);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoCaptureMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoCaptureModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        VideoCaptureMode GetVideoCaptureMode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVideoCaptureMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVideoCaptureModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetVideoCaptureMode(string ConsumerID, VideoCaptureMode VideoCaptureMode);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoColorSpace", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoColorSpaceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetVideoColorSpace(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVideoColorSpace", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVideoColorSpaceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetVideoColorSpace(string ConsumerID, string VideoColorSpace);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoColorSpaceList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoColorSpaceListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        VideoColorSpaceList GetVideoColorSpaceList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoFrameRate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoFrameRateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetVideoFrameRate(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVideoFrameRate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVideoFrameRateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetVideoFrameRate(string ConsumerID, int VideoFrameRate);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoMaxFrameRate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoMaxFrameRateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetVideoMaxFrameRate(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoResolution", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoResolutionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetVideoResolution(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVideoResolution", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVideoResolutionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetVideoResolution(string ConsumerID, string VideoResolution);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoResolutionList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoResolutionListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        VideoResolutionList GetVideoResolutionList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetVideoType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVideoType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetVideoTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetVideoType(string ConsumerID, string VideoType);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoTypeList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetVideoTypeListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        VideoTypeList GetVideoTypeList(string ConsumerID);

        //
        // Common Methods
        //

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/Open", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/OpenResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        //void Open(string ConsumerID, string EndpointAddress);

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/Close", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/CloseResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        //void Close(string ConsumerID, string EndpointAddress);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/Claim", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/ClaimResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void Claim(string ConsumerID, int Timeout);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/Release", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/ReleaseResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void Release(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/CheckHealth", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/CheckHealthResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void CheckHealth(string ConsumerID, HealthCheckLevel Level);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/ClearInput", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/ClearInputResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void ClearInput(string ConsumerID);

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/ClearInputProperties", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/ClearInputPropertiesResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        //void ClearInputProperties(string ConsumerID);

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/ClearOutput", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/ClearOutputResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        //void ClearOutput(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/DirectIO", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/DirectIOResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        DirectIOData DirectIO(string ConsumerID, int Command, int Data, object Obj);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/CompareFirmwareVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/CompareFirmwareVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        CompareFirmwareResult CompareFirmwareVersion(string ConsumerID, string FirmwareFileName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/ResetStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/ResetStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void ResetStatistics(string ConsumerID, StatisticList StatisticsBuffer);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/RetrieveStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/RetrieveStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string RetrieveStatistics(string ConsumerID, StatisticList StatisticsBuffer);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UpdateFirmware", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UpdateFirmwareResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void UpdateFirmware(string ConsumerID, string FirmwareFileName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UpdateStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UpdateStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void UpdateStatistics(string ConsumerID, StatisticList StatisticsBuffer);

        //
        // Specific Methods
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/StartVideo", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/StartVideoResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void StartVideo(string ConsumerID, string FileName, bool OverWrite, int RecordingTime);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/StopVideo", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/StopVideoResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void StopVideo(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/TakePhoto", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/TakePhotoResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void TakePhoto(string ConsumerID, string FileName, bool OverWrite, int Timeout);

        //
        // Session Management
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetWSPOSVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetWSPOSVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        UposVersion GetWSPOSVersion();

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GenerateConsumerID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GenerateConsumerIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GenerateConsumerID();

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/OpenSession", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/OpenSessionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void OpenSession(string ConsumerID, string EndpointAddress);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/CloseSession", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/CloseSessionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void CloseSession(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetProviderSessionTimeout", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetProviderSessionTimeoutResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        int GetProviderSessionTimeout(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/KeepAlive", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/KeepAliveResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void KeepAlive(string ConsumerID);

        //
        // Device Control
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/OpenDevice", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/OpenDeviceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void OpenDevice(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/CloseDevice", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/CloseDeviceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void CloseDevice(string ConsumerID);

        //
        // Event Polling
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/PollForUPOSEvent", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/PollForUPOSEventResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        VideoCaptureEvent PollForUPOSEvent(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetEventResponse", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetEventResponseResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        void SetEventResponse(string ConsumerID, VideoCaptureEventResponse EventResponse);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetEncryptedClaimedConsumerID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/GetEncryptedClaimedConsumerIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        string GetEncryptedClaimedConsumerID();

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetEventRequestProperties", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/SetEventRequestPropertiesResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/UposException", Name = "UposException")]
        //void SetEventRequestProperties(string ConsumerID, PropertyNameList list);

        #endregion Version 1.4
    }

    #region Version 1.4

    //
    // Common Data Types
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class DirectIOData
    {
        [DataMember]
        public int Data { get; set; }

        [DataMember]
        public object Obj { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class UposException
    {
        [DataMember]
        public ErrorCode ErrorCode { get; set; }

        [DataMember]
        public int ErrorCodeExtended { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class UposVersion
    {
        [DataMember]
        public int Major { get; set; }

        [DataMember]
        public int Minor { get; set; }

        [DataMember]
        public int Build { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class Statistic
    {
        [DataMember]
        public string Name { get; set; }

        [DataMember]
        public string Value { get; set; }
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/", ItemName = "Statistic")]
    public class StatisticList : List<Statistic>
    {
    }

    //
    // Common Enumerations
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum CompareFirmwareResult
    {
        [EnumMember]
        CFV_FIRMWARE_OLDER,

        [EnumMember]
        CFV_FIRMWARE_SAME,

        [EnumMember]
        CFV_FIRMWARE_NEWER,

        [EnumMember]
        CFV_FIRMWARE_DIFFERENT,

        [EnumMember]
        CFV_FIRMWARE_UNKNOWN,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum ControlState
    {
        [EnumMember]
        S_CLOSED,

        [EnumMember]
        S_IDLE,

        [EnumMember]
        S_BUSY,

        [EnumMember]
        S_ERROR,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum ErrorCode
    {
        [EnumMember]
        E_CLOSED,

        [EnumMember]
        E_CLAIMED,

        [EnumMember]
        E_NOTCLAIMED,

        [EnumMember]
        E_NOSERVICE,

        [EnumMember]
        E_DISABLED,

        [EnumMember]
        E_ILLEGAL,

        [EnumMember]
        E_NOHARDWARE,

        [EnumMember]
        E_OFFLINE,

        [EnumMember]
        E_NOEXIST,

        [EnumMember]
        E_EXISTS,

        [EnumMember]
        E_FAILURE,

        [EnumMember]
        E_TIMEOUT,

        [EnumMember]
        E_BUSY,

        [EnumMember]
        E_EXTENDED,

        [EnumMember]
        E_DEPRECATED,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum HealthCheckLevel
    {
        [EnumMember]
        CH_INTERNAL,

        [EnumMember]
        CH_EXTERNAL,

        [EnumMember]
        CH_INTERACTIVE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum PowerNotification
    {
        [EnumMember]
        PN_DISABLED,

        [EnumMember]
        PN_ENABLED,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum PowerReporting
    {
        [EnumMember]
        PR_NONE,

        [EnumMember]
        PR_STANDARD,

        [EnumMember]
        PR_ADVANCED,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum PowerState
    {
        [EnumMember]
        PS_UNKNOWN,

        [EnumMember]
        PS_ONLINE,

        [EnumMember]
        PS_OFF,

        [EnumMember]
        PS_OFFLINE,

        [EnumMember]
        PS_OFF_OFFLINE,
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum StatisticCategories
    {
        [EnumMember]
        All,
        [EnumMember]
        Manufacturer,
        [EnumMember]
        Upos,
    }
    */

    public class StatisticCategories
    {
        public const string All = "";
        public const string Manufacturer = "M_";
        public const string Upos = "U_";
    }

    //
    // Specific Data Types
    //

    //
    // Specific Enumerations
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum CapStorage
    {
        [EnumMember]
        VCAP_CST_HOST_ONLY,

        [EnumMember]
        VCAP_CST_HARDTOTALS_ONLY,

        [EnumMember]
        VCAP_CST_ALL,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum Storage
    {
        [EnumMember]
        VCAP_ST_HOST,

        [EnumMember]
        VCAP_ST_HARDTOTALS,

        [EnumMember]
        VCAP_ST_HOST_HARDTOTALS,
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/", ItemName = "PhotoColorSpace")]
    public class PhotoColorSpaceList : List<string>
    {
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/", ItemName = "PhotoResolution")]
    public class PhotoResolutionList : List<string>
    {
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/", ItemName = "PhotoType")]
    public class PhotoTypeList : List<string>
    {
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/", ItemName = "VideoColorSpace")]
    public class VideoColorSpaceList : List<string>
    {
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/", ItemName = "VideoResolution")]
    public class VideoResolutionList : List<string>
    {
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/", ItemName = "VideoType")]
    public class VideoTypeList : List<string>
    {
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum VideoCaptureMode
    {
        [EnumMember]
        VCAP_VCMODE_PHOTO,

        [EnumMember]
        VCAP_VCMODE_VIDEO,
    }

    //
    // Constants
    //

    public class ExtendedError
    {
        public const int EVCAP_NOROOM = 201;
        public const int EFIRMWARE_BAD_FILE = 281;
        public const int ESTATS_ERROR = 280;
        public const int ESTATS_DEPENDENCY = 282;
    }

    public class StatisticProperties
    {
        public const string CommunicationErrorCount = "CommunicationErrorCount";
        public const string DeviceCategory = "DeviceCategory";
        public const string FirmwareRevision = "FirmwareRevision";
        public const string HoursPoweredCount = "HoursPoweredCount";
        public const string InstallationDate = "InstallationDate";
        public const string Interface = "Interface";
        public const string ManufactureDate = "ManufactureDate";
        public const string ManufacturerName = "ManufacturerName";
        public const string MechanicalRevision = "MechanicalRevision";
        public const string ModelName = "ModelName";
        public const string SerialNumber = "SerialNumber";
        public const string UnifiedPOSVersion = "UnifiedPOSVersion";
    }

    public class Wait
    {
        public const int FOREVER = -1;
    }

    //
    // Event Polling
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class VideoCaptureEvent
    {
        //[DataMember]
        //public DataEvent DataEvent { get; set; }
        [DataMember]
        public DirectIOEvent DirectIOEvent { get; set; }

        [DataMember]
        public ErrorEvent ErrorEvent { get; set; }

        //[DataMember]
        //public OutputCompleteEvent OutputCompleteEvent { get; set; }
        [DataMember]
        public StatusUpdateEvent StatusUpdateEvent { get; set; }

        //[DataMember]
        //public DataContainedEvent DataContainedEvent { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class VideoCaptureEventResponse
    {
        //[DataMember]
        //public DataEventResponse DataEventResponse { get; set; }
        //[DataMember]
        //public DataContainedEventResponse DataContainedEventResponse { get; set; }
        [DataMember]
        public DirectIOEventResponse DirectIOEventResponse { get; set; }

        [DataMember]
        public ErrorEventResponse ErrorEventResponse { get; set; }

        //[DataMember]
        //public OutputCompleteEventResponse OutputCompleteEventResponse { get; set; }
        [DataMember]
        public StatusUpdateEventResponse StatusUpdateEventResponse { get; set; }
    }

    //[DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    //public class DataEvent
    //{
    //    [DataMember]
    //    public string Source { get; set; }
    //    [DataMember]
    //    public int EventID { get; set; }
    //    [DataMember]
    //    public DateTime TimeStamp { get; set; }
    //    [DataMember]
    //    public int Status { get; set; }
    //}

    //[DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    //public class DataEventResponse
    //{
    //    [DataMember]
    //    public int EventID { get; set; }
    //}

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class DirectIOEvent
    {
        [DataMember]
        public string Source { get; set; }

        [DataMember]
        public int EventID { get; set; }

        [DataMember]
        public DateTime TimeStamp { get; set; }

        [DataMember]
        public int EventNumber { get; set; }

        [DataMember]
        public int Data { get; set; }

        [DataMember]
        public object Obj { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class DirectIOEventResponse
    {
        [DataMember]
        public int EventID { get; set; }

        [DataMember]
        public DirectIOData DirectIOData { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class ErrorEvent
    {
        [DataMember]
        public string Source { get; set; }

        [DataMember]
        public int EventID { get; set; }

        [DataMember]
        public DateTime TimeStamp { get; set; }

        [DataMember]
        public ErrorCode ErrorCode { get; set; }

        [DataMember]
        public int ErrorCodeExtended { get; set; }

        [DataMember]
        public ErrorLocus ErrorLocus { get; set; }

        [DataMember]
        public ErrorResponse ErrorResponse { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class ErrorEventResponse
    {
        [DataMember]
        public int EventID { get; set; }

        [DataMember]
        public ErrorResponse ErrorResponse { get; set; }
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class OutputCompleteEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        int OutputID { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class OutputCompleteEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }
    */

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class StatusUpdateEvent
    {
        [DataMember]
        public string Source { get; set; }

        [DataMember]
        public int EventID { get; set; }

        [DataMember]
        public DateTime TimeStamp { get; set; }

        [DataMember]
        public int Status { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public class StatusUpdateEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum ErrorLocus
    {
        [EnumMember]
        EL_INPUT,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    public enum ErrorResponse
    {
        [EnumMember]
        ER_CLEAR,

        [EnumMember]
        ER_RETRY,
    }

    //[CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/", ItemName = "PropertyName")]
    //public class PropertyNameList : List<string>
    //{
    //}

    //[CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/", ItemName = "Parameter")]
    //public class ParameterList : Dictionary<string, object>
    //{
    //}

    //[DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    //public class DataContainedEvent
    //{
    //    [DataMember]
    //    public string Source { get; set; }
    //    [DataMember]
    //    public int EventID { get; set; }
    //    [DataMember]
    //    public DateTime TimeStamp { get; set; }
    //    [DataMember]
    //    public int Status { get; set; }
    //    [DataMember]
    //    public ParameterList Parameters { get; set; }
    //}

    //[DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    //public class DataContainedEventData
    //{
    //    [DataMember]
    //    public int EventID { get; set; }
    //    [DataMember]
    //    public bool SetDataEventEnabled { get; set; }
    //    [DataMember]
    //    public bool CallClearInputProperties { get; set; }
    //}

    //[DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/VideoCapture/")]
    //public class DataContainedEventResponse
    //{
    //    [DataMember]
    //    public int EventID { get; set; }
    //    [DataMember]
    //    public bool SetDataEventEnabled { get; set; }
    //    [DataMember]
    //    public bool CallClearInputProperties { get; set; }
    //}

    #endregion Version 1.4
}