<?xml version="1.0"?>
<Domain xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns="http://www.soti.net/connect-definitions">
  <Imports>
    <xi:include href="./base-rest-protocol.xml" parse="xml" />
  </Imports>

  <Messages>
    <Message id="Device_GetDeviceState" />
    <Message id="Device_GetDeviceState_Async" />
    <Message id="Device_GetDeviceInfo" />
    <Message id="Device_GetDeviceFiles" />
    <Message id="Device_GetDeviceLightInfo" />
    <Message id="Device_DiscoverDevices" />
    <Message id="Device_PrintTestPage" />
    <Message id="Device_RebootDevice" />
    <Message id="Device_SearchDevices" />
    <Message id="Device_ShutdownDevice" />
	<Message id="Device_UpdateWebhook">
	<Object id="Resource">	
		<Segment id="cert" type="file" />	
	</Object>
	</Message>

    <Message id="Device_InstallFirmwareUpdate">
      <Object id="Resource">
        <Segment id="Url" type="filestore" />
      </Object>
    </Message>

    <Message id="Device_InstallFirmwareUpdatePartial">
      <Object id="Resource">
        <Segment id="Url" type="filestore" />
      </Object>
    </Message>

    <Message id="Device_DownloadFile">
      <Object id="Resource">
        <Segment id="Url" type="filestore" />
      </Object>
    </Message>

    <Message id="Device_FactoryReset">
      <Object id="Resource">
        <Segment id="Configuration" type="string" />
      </Object>
    </Message>

    <Message id="Device_UpdateCertificates">
      <Object id="Resource">
        <Segment id="CaUrl" type="filestore" />
        <Segment id="ClientUrl" type="filestore" />
        <Segment id="ClientKeyUrl" type="filestore" />
        <Segment id="ClientKeyPassword" type="string" />
      </Object>
    </Message>
	
	<Message id="Device_UpdateCertificates_Ethernet">
      <Object id="Resource">
        <Segment id="CaUrl" type="filestore" />
        <Segment id="ClientUrl" type="filestore" />
        <Segment id="ClientKeyUrl" type="filestore" />
        <Segment id="ClientKeyPassword" type="string" />
      </Object>
    </Message>
	
	<Message id="Device_UpdateCertificates_PFX">
      <Object id="Resource">
        <Segment id="CaUrl" type="filestore" />
        <Segment id="ClientUrl" type="filestore" />
        <Segment id="Password" type="string" />
      </Object>
    </Message>
	<Message id="Device_UpdateCertificates_PFX_Base64">
      <Object id="Resource">
        <Segment id="EncodedCert" type="file" />
        <Segment id="Password" type="string" />
      </Object>
    </Message>

    <Message id="Device_UpdateConnectRootCertificate">
      <Object id="Resource">
        <Segment id="Url" type="filestore" />
        <Segment id="Password" type="string" />
      </Object>
    </Message>
	
	<Message id="Device_InstallCert">
            <Object id="Resource">
                <Segment id="File" type="file" />
            </Object>
        </Message>

    <Message id="Device_ChangeSettings">
      <Object id="Resource">
        <Segment id="Darkness" type="integer" />
        <Segment id="PrintSpeed" type="float" />
        <Segment id="FeedSpeed" type="double" />
        <Segment id="LabelWidth" type="float" />
        <Segment id="LabelLength" type="float" />
        <Segment id="PowerOffTimeout" type="double" />
        <Segment id="ShutDownTemperatureMax" type="double" />
        <Segment id="ShutDownTemperatureMin" type="double" />
        <Segment id="HeadResolution" type="double" />
        <Segment id="EnableUserLabel" type="boolean" />
        <Segment id="UsePeeler" type="boolean" />
        <Segment id="RibbonActive" type="boolean" />
        <Segment id="RfidEnabled" type="boolean" />
        <Segment id="SensorMark" type="string" />
      </Object>
    </Message>

    <Message id="Device_ChangeAllowedTypes">
      <Object id="Resource">
        <Segment id="AllowedTypes" type="string" isArray="true" />
      </Object>
    </Message>

    <Message id="ChangeSettingsResponse">
      <Object id="Resource">
        <Object id="Settings">
          <DataPointReference id="Darkness" path="PrintDarkness#darkness" />
          <DataPointReference id="PrintSpeed" path="PrintQuality#printing-speed" />
          <DataPointReference id="FeedSpeed" path="printerSim-Settings#FeedSpeed" />
          <DataPointReference id="LabelLength" path="LabelSettings#label-length" />
          <DataPointReference id="LabelWidth" path="LabelSettings#label-width" />
          <DataPointReference id="PowerOffTimeout" path="printerSim-Settings#PowerOffTimeout" />
          <DataPointReference id="ShutDownTemperatureMax" path="printerSim-Settings#ShutDownTemperatureMax" />
          <DataPointReference id="ShutDownTemperatureMin" path="printerSim-Settings#ShutDownTemperatureMin" />
          <DataPointReference id="HeadResolution" path="printerSim-Settings#HeadResolution" />
          <DataPointReference id="EnableUserLabel" path="printerSim-Settings#EnableUserLabel" />
          <DataPointReference id="UsePeeler" path="printerSim-Settings#UsePeeler" />
          <DataPointReference id="RibbonActive" path="printerSim-Settings#RibbonActive" />
          <DataPointReference id="RfidEnabled" path="printerSim-Settings#RfidEnabled" />
          <DataPointReference id="SensorMark" path="printerSim-Settings#SensorMark" />
        </Object>

        <Object id="Error">
          <DataPointReference id="ErrorId" path="printerSim-Warning#ErrorId" />
          <DataPointReference id="ErrorMessage" path="printerSim-Warning#ErrorMessage" />
        </Object>
      </Object>
    </Message>

    <Message id="DeviceStateResponse">
      <Object id="Resource">
        <Object id="Device">
          <Object id="GeneralInfo">
            <DataPointReference id="DeviceName" path="base-module#device-name" />
            <DataPointReference id="DeviceId" path="base-module#device-id" />
            <DataPointReference id="DeviceType" path="base-module#model-id" />
            <DataPointReference id="Firmware" path="base-module#version" />
            <DataPointReference id="Manufacturer" path="base-module#manufacturer" />
            <DataPointReference id="Serial" path="GenericDeviceState#serial-number" />
            <DataPointReference id="FirmwareDate" path="printerSim-General#FirmwareDate" />
            <DataPointReference id="MemorySize" path="printerSim-General#MemorySize" />
            <DataPointReference id="FQDN" path="generic-fqdn#fqdn" />
            <DataPointReference id="Connected" path="printerSim-ConnectionStatus#connected" />
          </Object>

          <Object id="Status">
            <DataPointReference id="LabelTaken" path="printerSim-Status#LabelTaken" />
            <DataPointReference id="Uptime" path="printerSim-Status#Uptime" />
            <DataPointReference id="RibbonPercent" path="printerSim-Status#RibbonPercent" />
            <DataPointReference id="TotalMediaDistance" path="printerSim-Status#TotalMediaDistance" />
            <DataPointReference id="TotalLabelCount" path="printerSim-Status#TotalLabelCount" />
            <DataPointReference id="PrinterHeadLife" path="printerSim-Status#PrinterHeadLife" />
            <DataPointReference id="HeadWidth" path="printerSim-Status#HeadWidth" />
          </Object>

          <Object id="Networking">
            <Object id="Lan">
              <DataPointReference id="NetworkMode" path="GenericNetworkIP4Lan#generic-network-mode" />
              <DataPointReference id="AutoObtainIpAddress" path="GenericNetworkIP4Lan#automatically_obtain_ip_address" />
              <DataPointReference id="IpAddress" path="GenericNetworkIP4Lan#generic-network-ipaddress" />
              <DataPointReference id="SubnetMask" path="GenericNetworkIP4Lan#generic-network-subnet-mask" />
              <DataPointReference id="NetworkGateway" path="GenericNetworkIP4Lan#generic-network-gateway" />
              <DataPointReference id="DnsIpAddress" path="GenericNetworkIP4Lan#primary_dns_server_ip_address" />
              <DataPointReference id="MacAddress" path="GenericNetworkIP4Lan#generic-network-mac" />
            </Object>

            <Object id="WLan">
              <DataPointReference id="NetworkMode" path="GenericNetworkIP4WLan#generic-network-mode" />
              <DataPointReference id="AutoObtainIpAddress" path="GenericNetworkIP4WLan#automatically_obtain_ip_address" />
              <DataPointReference id="IpAddress" path="GenericNetworkIP4WLan#generic-network-ipaddress" />
              <DataPointReference id="SubnetMask" path="GenericNetworkIP4WLan#generic-network-subnet-mask" />
              <DataPointReference id="NetworkGateway" path="GenericNetworkIP4WLan#generic-network-gateway" />
              <DataPointReference id="DnsIpAddress" path="GenericNetworkIP4WLan#primary_dns_server_ip_address" />
              <DataPointReference id="MacAddress" path="GenericNetworkIP4WLan#generic-network-mac" />
            </Object>

            <DataPointReference id="BluetoothAddress" path="GenericNetworkBluetooth#bluetooth-device-address" />
            <DataPointReference id="SSID" path="GenericWIFI#ssid" />
            <DataPointReference id="WifiEnabled" path="printerSim-Network#WifiEnabled" />
          </Object>

          <Object id="Settings">
            <DataPointReference id="Darkness" path="PrintDarkness#darkness" />
            <DataPointReference id="PrintSpeed" path="PrintQuality#printing-speed" />
            <DataPointReference id="FeedSpeed" path="printerSim-Settings#FeedSpeed" />
            <DataPointReference id="LabelLength" path="LabelSettings#label-length" />
            <DataPointReference id="LabelWidth" path="LabelSettings#label-width" />
            <DataPointReference id="PowerOffTimeout" path="printerSim-Settings#PowerOffTimeout" />
            <DataPointReference id="ShutDownTemperatureMax" path="printerSim-Settings#ShutDownTemperatureMax" />
            <DataPointReference id="ShutDownTemperatureMin" path="printerSim-Settings#ShutDownTemperatureMin" />
            <DataPointReference id="HeadResolution" path="printerSim-Settings#HeadResolution" />
            <DataPointReference id="EnableUserLabel" path="printerSim-Settings#EnableUserLabel" />
            <DataPointReference id="UsePeeler" path="printerSim-Settings#UsePeeler" />
            <DataPointReference id="RibbonActive" path="printerSim-Settings#RibbonActive" />
            <DataPointReference id="RfidEnabled" path="printerSim-Settings#RfidEnabled" />
            <DataPointReference id="SensorMark" path="printerSim-Settings#SensorMark" />
          </Object>

          <Object id="PrintModule">
           <DataPointReference id="MainChecksum" path="printerSim-PrintModule#MainChecksum" />
           <DataPointReference id="BootDate" path="printerSim-PrintModule#BootDate" />
           <DataPointReference id="MainDate" path="printerSim-PrintModule#MainDate" />
           <DataPointReference id="BootVersion" path="printerSim-PrintModule#BootVersion" />
           <DataPointReference id="MainVersion" path="printerSim-PrintModule#MainVersion" /> 
           <DataPointReference id="BootChecksum" path="printerSim-PrintModule#BootChecksum" />
          </Object>
            
          <Object id="PrintSettings">
			<DataPointReference id="RowOffset" path="printerSim-PrintSettings#RowOffset" />
			<DataPointReference id="ColumnOffset" path="printerSim-PrintSettings#ColumnOffset" />
			<DataPointReference id="PrintMode" path="printerSim-PrintSettings#PrintMode" />
			<DataPointReference id="MediaHandling" path="printerSim-PrintSettings#MediaHandling" />
			<DataPointReference id="DarknessLevel" path="printerSim-PrintSettings#DarknessLevel" />
			<DataPointReference id="SensorType" path="printerSim-PrintSettings#SensorType" />
			<DataPointReference id="DarknessRange" path="printerSim-PrintSettings#DarknessRange" />
			<DataPointReference id="BackfeedMode" path="printerSim-PrintSettings#BackfeedMode" />
			<DataPointReference id="HeadCheck" path="printerSim-PrintSettings#HeadCheck" />
			<DataPointReference id="BackupDelay" path="printerSim-PrintSettings#BackupDelay" />
			<DataPointReference id="DotDensity" path="printerSim-PrintSettings#DotDensity" />
			<DataPointReference id="PrintQuality" path="printerSim-PrintSettings#PrintQuality" />
			<DataPointReference id="PaperType" path="printerSim-PrintSettings#PaperType" />
			<DataPointReference id="AutoCalibration" path="printerSim-PrintSettings#AutoCalibration" />
			<DataPointReference id="ReprintLastLabel" path="printerSim-PrintSettings#ReprintLastLabel" />
			<DataPointReference id="PreheatTemperature" path="printerSim-PrintSettings#PreheatTemperature" />
			<DataPointReference id="CutterEnabled" path="printerSim-PrintSettings#CutterEnabled" />
			<DataPointReference id="ErrorHandlingMode" path="printerSim-PrintSettings#ErrorHandlingMode" />

			<Object id="LabelSettings">
				<DataPointReference id="LabelRotation" path="printerSim-LabelSettings#LabelRotation" />
				<DataPointReference id="CheckMediaSize" path="printerSim-LabelSettings#CheckMediaSize" />
				<DataPointReference id="AutoMeasure" path="printerSim-LabelSettings#AutoMeasure" />
				<DataPointReference id="HeadCheckMode" path="printerSim-LabelSettings#HeadCheckMode" />
				<DataPointReference id="HeadCheckPages" path="printerSim-LabelSettings#HeadCheckPages" />
				<DataPointReference id="ImageHorizontal" path="printerSim-LabelSettings#ImageHorizontal" />
				<DataPointReference id="ImageVertical" path="printerSim-LabelSettings#ImageVertical" />
			</Object>
		  </Object>

            <Object id ="SystemSettings">
                <Object id="GeneralNetworkSettings">
                    <DataPointReference id="ActiveInterface" path="printerSim-GeneralNetworkSettings#ActiveInterface" />
                    <DataPointReference id="SNMPEnable" path="printerSim-GeneralNetworkSettings#SNMPEnable" />
                    <DataPointReference id="TelnetEnable" path="printerSim-GeneralNetworkSettings#TelnetEnable" />
                    <DataPointReference id="HTTPServerEnable" path="printerSim-GeneralNetworkSettings#HTTPServerEnable" />
                    <DataPointReference id="LPDPrintEnable" path="printerSim-GeneralNetworkSettings#LPDPrintEnable" />
                    <DataPointReference id="TCPPrintEnable" path="printerSim-GeneralNetworkSettings#TCPPrintEnable" />
                    <DataPointReference id="SFTPServerEnable" path="printerSim-GeneralNetworkSettings#SFTPServerEnable" />
                    <DataPointReference id="SFTPServerPort" path="printerSim-GeneralNetworkSettings#SFTPServerPort" />
                    <DataPointReference id="SFTPServerUsername" path="printerSim-GeneralNetworkSettings#SFTPServerUsername" />
                    <DataPointReference id="SFTPServerDirectory" path="printerSim-GeneralNetworkSettings#SFTPServerDirectory" />
                    <DataPointReference id="FTPServerEnable" path="printerSim-GeneralNetworkSettings#FTPServerEnable" />
                    <DataPointReference id="FTPServerPort" path="printerSim-GeneralNetworkSettings#FTPServerPort" />
                    <DataPointReference id="FTPServerUsername" path="printerSim-GeneralNetworkSettings#FTPServerUsername" />
                    <DataPointReference id="FTPServerPassword" path="printerSim-GeneralNetworkSettings#FTPServerPassword" />
                    <DataPointReference id="FTPServerDirectory" path="printerSim-GeneralNetworkSettings#FTPServerDirectory" />
                    <DataPointReference id="SNMPTRAPIP" path="printerSim-GeneralNetworkSettings#SNMPTRAPIP" />
                </Object>

                <Object id="IOSettings">
                    <DataPointReference id="ManageIOEthernet" path="printerSim-IOSettings#ManageIOEthernet" />
                    <DataPointReference id="ManageIOWireless" path="printerSim-IOSettings#ManageIOWireless" />
                    <DataPointReference id="ManageIOBluetooth" path="printerSim-IOSettings#ManageIOBluetooth" />
                    <DataPointReference id="ManageIORFID" path="printerSim-IOSettings#ManageIORFID" />
                </Object>

                <Object id="DisplaySettings">
                    <DataPointReference id="Brightness" path="printerSim-DisplaySettings#Brightness" />
                    <DataPointReference id="Resolution" path="printerSim-DisplaySettings#Resolution" />
                    <DataPointReference id="BacklightAutoOnTimer" path="printerSim-DisplaySettings#BacklightAutoOnTimer" />
                    <DataPointReference id="BacklightMode" path="printerSim-DisplaySettings#BacklightMode" />
                    <DataPointReference id="MenuLanguage" path="printerSim-DisplaySettings#MenuLanguage" />
                    <DataPointReference id="MenuMode" path="printerSim-DisplaySettings#MenuMode" />
                    <DataPointReference id="TopLevelMenu" path="printerSim-DisplaySettings#TopLevelMenu" />
                    <DataPointReference id="DisplayBrightness" path="printerSim-DisplaySettings#DisplayBrightness" />
                    <DataPointReference id="IdleInformation" path="printerSim-DisplaySettings#IdleInformation" />
                    <DataPointReference id="TimeFormat" path="printerSim-DisplaySettings#TimeFormat" />
                    <DataPointReference id="DateFormat" path="printerSim-DisplaySettings#DateFormat" />
                    <DataPointReference id="MenuAccess" path="printerSim-DisplaySettings#MenuAccess" />
                    <DataPointReference id="InformationAccess" path="printerSim-DisplaySettings#InformationAccess" />
                    <DataPointReference id="ScreenTimeout" path="printerSim-DisplaySettings#ScreenTimeout" />
                    <DataPointReference id="FeedKeyAccess" path="printerSim-DisplaySettings#FeedKeyAccess" />
                    <DataPointReference id="DisplayLanguage" path="printerSim-DisplaySettings#DisplayLanguage" />
                    <DataPointReference id="DisplayLanguageWebPage" path="printerSim-DisplaySettings#DisplayLanguageWebPage" />
                    <DataPointReference id="KeyboardInput" path="printerSim-DisplaySettings#KeyboardInput" />
                </Object>

                <Object id="AudioSettings">
                    <DataPointReference id="Volume" path="printerSim-AudioSettings#Volume" />
                    <DataPointReference id="Mute" path="printerSim-AudioSettings#Mute" />
                    <DataPointReference id="BeepCtrlDuration" path="printerSim-AudioSettings#BeepCtrlDuration" />
                    <DataPointReference id="BeepCtrlQuantity" path="printerSim-AudioSettings#BeepCtrlQuantity" />
                    <DataPointReference id="Buzzer" path="printerSim-AudioSettings#Buzzer" />
                    <DataPointReference id="ChargerBeepEnable" path="printerSim-AudioSettings#ChargerBeepEnable" />
                    <DataPointReference id="AudioVolume" path="printerSim-AudioSettings#AudioVolume" />
                </Object>

                <Object id="PowerSettings">
                    <DataPointReference id="PowerMode" path="printerSim-PowerSettings#PowerMode" />
                    <DataPointReference id="BatteryLevel" path="printerSim-PowerSettings#BatteryLevel" />
                    <DataPointReference id="PowerButtonEnable" path="printerSim-PowerSettings#PowerButtonEnable" />
                    <DataPointReference id="PowerDownTime" path="printerSim-PowerSettings#PowerDownTime" />
                    <DataPointReference id="SleepTime" path="printerSim-PowerSettings#SleepTime" />
                    <DataPointReference id="RFPowerDownTimeout" path="printerSim-PowerSettings#RFPowerDownTimeout" />
                    <DataPointReference id="ShutdownTempHigh" path="printerSim-PowerSettings#ShutdownTempHigh" />
                    <DataPointReference id="ShutdownTempLow" path="printerSim-PowerSettings#ShutdownTempLow" />
                    <DataPointReference id="LegacyMode" path="printerSim-PowerSettings#LegacyMode" />
                    <DataPointReference id="PowerSleepTimer" path="printerSim-PowerSettings#PowerSleepTimer" />
                    <DataPointReference id="PowerShutdownTimer" path="printerSim-PowerSettings#PowerShutdownTimer" />
                </Object>

                <Object id="MediaSettings">
                    <DataPointReference id="PowerUpAction" path="printerSim-MediaSettings#PowerUpAction" />
                    <DataPointReference id="HeadDownAction" path="printerSim-MediaSettings#HeadDownAction" />
                    <DataPointReference id="HoldFeedButtonAction" path="printerSim-MediaSettings#HoldFeedButtonAction" />
                    <DataPointReference id="LabelCounter" path="printerSim-MediaSettings#LabelCounter" />
                    <DataPointReference id="LTSSensitivityLevel" path="printerSim-MediaSettings#LTSSensitivityLevel" />
                    <DataPointReference id="MediaOutImmediateStop" path="printerSim-MediaSettings#MediaOutImmediateStop" />
                </Object>

                <Object id="SOSSettings">
                    <DataPointReference id="SosAlarms" path="printerSim-SOSSettings#SosAlarms" />
                    <DataPointReference id="SosCounter" path="printerSim-SOSSettings#SosCounter" />
                    <DataPointReference id="SosCuts" path="printerSim-SOSSettings#SosCuts" />
                    <DataPointReference id="SosDay" path="printerSim-SOSSettings#SosDay" />
                    <DataPointReference id="SosMeters" path="printerSim-SOSSettings#SosMeters" />
                    <DataPointReference id="SosMode" path="printerSim-SOSSettings#SosMode" />
                    <DataPointReference id="SosPhone" path="printerSim-SOSSettings#SosPhone" />
                </Object>
                <Object id="XMLSettings">
                    <DataPointReference id="XMLPrintingPortNumber" path="printerSim-XMLSettings#XMLPrintingPortNumber" />
                    <DataPointReference id="XMLPrintingSecureCommunication" path="printerSim-XMLSettings#XMLPrintingSecureCommunication" />
                    <DataPointReference id="DeviceManagementSecureCommunication" path="printerSim-XMLSettings#DeviceManagementSecureCommunication" />
                </Object>
                <Object id="CommandSettings">
                    <DataPointReference id="CommandLanguage" path="printerSim-CommandSettings#CommandLanguage" />
                    <DataPointReference id="AlertNotificationMethod" path="printerSim-CommandSettings#AlertNotificationMethod" />
                    <DataPointReference id="UnitOfMeasure" path="printerSim-CommandSettings#UnitOfMeasure" />
                    <DataPointReference id="ZeroWithSlash" path="printerSim-CommandSettings#ZeroWithSlash" />
                    <DataPointReference id="LegacyMode" path="printerSim-CommandSettings#LegacyMode" />
                </Object>
                <Object id="FirewallSettings">
                    <DataPointReference id="AllowTcpSrc" path="printerSim-FirewallSettings#AllowTcpSrc" />
                    <DataPointReference id="AllowTcpDst" path="printerSim-FirewallSettings#AllowTcpDst" />
                    <DataPointReference id="AllowUdpSrc" path="printerSim-FirewallSettings#AllowUdpSrc" />
                    <DataPointReference id="AllowUdpDst" path="printerSim-FirewallSettings#AllowUdpDst" />
                    <DataPointReference id="AllowIcmpType" path="printerSim-FirewallSettings#AllowIcmpType" />
                    <DataPointReference id="AllowAdditionalTcpSrc" path="printerSim-FirewallSettings#AllowAdditionalTcpSrc" />
                    <DataPointReference id="AllowAdditionalTcpDst" path="printerSim-FirewallSettings#AllowAdditionalTcpDst" />
                    <DataPointReference id="AllowAdditionalUdpSrc" path="printerSim-FirewallSettings#AllowAdditionalUdpSrc" />
                    <DataPointReference id="AllowAdditionalUdpDst" path="printerSim-FirewallSettings#AllowAdditionalUdpDst" />
                    <DataPointReference id="AllowAdditionalIcmpType" path="printerSim-FirewallSettings#AllowAdditionalIcmpType" />
                </Object>
                <Object id="RegistrySettings">
                    <DataPointReference id="RestStartAuto" path="printerSim-RegistrySettings#RestStartAuto" />
                    <DataPointReference id="RestAutoUrl" path="printerSim-RegistrySettings#RestAutoUrl" />
                    <DataPointReference id="RestPushNot" path="printerSim-RegistrySettings#RestPushNot" />
                    <DataPointReference id="RestAllowFQDN" path="printerSim-RegistrySettings#RestAllowFQDN" />
                    <DataPointReference id="RestClientCert" path="printerSim-RegistrySettings#RestClientCert" />
                    <DataPointReference id="RestPassphraseEnable" path="printerSim-RegistrySettings#RestPassphraseEnable" />
                    <DataPointReference id="RestRootCA" path="printerSim-RegistrySettings#RestRootCA" />
                    <DataPointReference id="RestPrivateKey" path="printerSim-RegistrySettings#RestPrivateKey" />
                </Object>
                <Object id="TimeSettings">
                    <DataPointReference id="TimeZone" path="printerSim-TimeSettings#TimeZone" />
                    <DataPointReference id="DSTAdjust" path="printerSim-TimeSettings#DSTAdjust" />
                    <DataPointReference id="SystemTime" path="printerSim-TimeSettings#SystemTime" />
                    <DataPointReference id="AMPM" path="printerSim-TimeSettings#AMPM" />
                    <DataPointReference id="SystemDate" path="printerSim-TimeSettings#SystemDate" />
                </Object>

                <Object id="EmulationSettings">
                    <DataPointReference id="ColumnEmulation" path="printerSim-EmulationSettings#ColumnEmulation" />
                    <DataPointReference id="FontEmulation" path="printerSim-EmulationSettings#FontEmulation" />
                    <DataPointReference id="SOPEmulation" path="printerSim-EmulationSettings#SOPEmulation" />
                    <DataPointReference id="LabelRotation" path="printerSim-EmulationSettings#LabelRotation" />
                    <DataPointReference id="LabelStoreMode" path="printerSim-EmulationSettings#LabelStoreMode" />
                    <DataPointReference id="UserLabelMode" path="printerSim-EmulationSettings#UserLabelMode" />
                    <DataPointReference id="FormatAttributes" path="printerSim-EmulationSettings#FormatAttributes" />
                    <DataPointReference id="ScaleableFontCache" path="printerSim-EmulationSettings#ScaleableFontCache" />
                    <DataPointReference id="DoubleByteSymbols" path="printerSim-EmulationSettings#DoubleByteSymbols" />
                    <DataPointReference id="SingleByteSymbols" path="printerSim-EmulationSettings#SingleByteSymbols" />
                </Object>
                
                <Object id="InputSettings">
                    <DataPointReference id="FeedButton" path="printerSim-InputSettings#FeedButton" />
                    <DataPointReference id="InputMode" path="printerSim-InputSettings#InputMode" />
                    <DataPointReference id="RFButtonEnable" path="printerSim-InputSettings#RFButtonEnable" />
                </Object>

                <Object id="VIISettings">
                    <DataPointReference id="VIISecurityMode" path="printerSim-VIISettings#VIISecurityMode" />
                    <DataPointReference id="VIIExecutionMode" path="printerSim-VIISettings#VIIExecutionMode" />
                    <DataPointReference id="VIIVerifierMode" path="printerSim-VIISettings#VIIVerifierMode" />
                    <DataPointReference id="VIICommandChannel" path="printerSim-VIISettings#VIICommandChannel" />
                    <DataPointReference id="VIIFeedbackChannel" path="printerSim-VIISettings#VIIFeedbackChannel" />
                    <DataPointReference id="VIIImageChannel" path="printerSim-VIISettings#VIIImageChannel" />
                </Object>
                <Object id="MemorySettings">
                    <DataPointReference id="FlashMemoryAvailable" path="printerSim-MemorySettings#FlashMemoryAvailable" />
                    <DataPointReference id="FlashMemoryTotal" path="printerSim-MemorySettings#FlashMemoryTotal" />
                    <DataPointReference id="TotalRAM" path="printerSim-MemorySettings#TotalRAM" />
                    <DataPointReference id="FreeRAM" path="printerSim-MemorySettings#FreeRAM" />
                </Object>
                <Object id="ServiceManagementSettings">
                    <DataPointReference id="ManageServicesWebServer" path="printerSim-ServiceManagementSettings#ManageServicesWebServer" />
                    <DataPointReference id="ManageServicesFTP" path="printerSim-ServiceManagementSettings#ManageServicesFTP" />
                    <DataPointReference id="ManageServicesNet1" path="printerSim-ServiceManagementSettings#ManageServicesNet1" />
                    <DataPointReference id="ManageServicesSmartSystems" path="printerSim-ServiceManagementSettings#ManageServicesSmartSystems" />
                    <DataPointReference id="ManageServicesSNMP" path="printerSim-ServiceManagementSettings#ManageServicesSNMP" />
                    <DataPointReference id="ManageServicesLPR" path="printerSim-ServiceManagementSettings#ManageServicesLPR" />
                    <DataPointReference id="ManageServicesIKEv2" path="printerSim-ServiceManagementSettings#ManageServicesIKEv2" />
                    <DataPointReference id="ManageServicesSSH" path="printerSim-ServiceManagementSettings#ManageServicesSSH" />
                    <DataPointReference id="ManageServicesTelnet" path="printerSim-ServiceManagementSettings#ManageServicesTelnet" />
                    <DataPointReference id="ManageServicesXML" path="printerSim-ServiceManagementSettings#ManageServicesXML" />
                    <DataPointReference id="ManageServicesTimeServer" path="printerSim-ServiceManagementSettings#ManageServicesTimeServer" />
                    <DataPointReference id="ManageServicesDeviceManagement" path="printerSim-ServiceManagementSettings#ManageServicesDeviceManagement" />
                    <DataPointReference id="ManageServicesConnectivityAgent" path="printerSim-ServiceManagementSettings#ManageServicesConnectivityAgent" />
                    <DataPointReference id="ManageServicesVII" path="printerSim-ServiceManagementSettings#ManageServicesVII" />
                    <DataPointReference id="ManageServicesPPP" path="printerSim-ServiceManagementSettings#ManageServicesPPP" />
                </Object>
                <Object id="BluetoothSettings">
                    <DataPointReference id="Enable" path="printerSim-BluetoothSettings#Enable" />
                    <DataPointReference id="BluetoothFirmwareVersion" path="printerSim-BluetoothSettings#BluetoothFirmwareVersion" />
                    <DataPointReference id="BluetoothDeviceName" path="printerSim-BluetoothSettings#BluetoothDeviceName" />
                    <DataPointReference id="BluetoothPasskey" path="printerSim-BluetoothSettings#BluetoothPasskey" />
                    <DataPointReference id="BluetoothDiscoverable" path="printerSim-BluetoothSettings#BluetoothDiscoverable" />
                    <DataPointReference id="BluetoothConnectable" path="printerSim-BluetoothSettings#BluetoothConnectable" />
                    <DataPointReference id="BluetoothBondable" path="printerSim-BluetoothSettings#BluetoothBondable" />
                </Object>

            </Object>



            <Object id="ConnectionSettings">
                <DataPointReference id="RadioPowerState" path="printerSim-ConnectionSettings#RadioPowerState" />
                <DataPointReference id="RetractDelay" path="printerSim-ConnectionSettings#RetractDelay" />
                <DataPointReference id="DefaultModule" path="printerSim-ConnectionSettings#DefaultModule" />
                <DataPointReference id="DNSPrimaryServer" path="printerSim-ConnectionSettings#DNSPrimaryServer" />
                <DataPointReference id="DNSSecondaryServer" path="printerSim-ConnectionSettings#DNSSecondaryServer" />
                <DataPointReference id="WebServerImageBuffer" path="printerSim-ConnectionSettings#WebServerImageBuffer" />
                <DataPointReference id="WebServerProtocol" path="printerSim-ConnectionSettings#WebServerProtocol" />
                <DataPointReference id="TimeServerAddress" path="printerSim-ConnectionSettings#TimeServerAddress" />
                <DataPointReference id="TimeServerPort" path="printerSim-ConnectionSettings#TimeServerPort" />
                <DataPointReference id="ConnectivityAgentBuzzer" path="printerSim-ConnectionSettings#ConnectivityAgentBuzzer" />
                <DataPointReference id="PPPAPN" path="printerSim-ConnectionSettings#PPPAPN" />
                <DataPointReference id="EthernetMAC" path="printerSim-ConnectionSettings#EthernetMAC" />
                <DataPointReference id="WirelessMAC" path="printerSim-ConnectionSettings#WirelessMAC" />
                <DataPointReference id="BluetoothMAC" path="printerSim-ConnectionSettings#BluetoothMAC" />
                <DataPointReference id="NetbiosEnabled" path="printerSim-ConnectionSettings#NetbiosEnabled" />
                <DataPointReference id="NetbiosName" path="printerSim-ConnectionSettings#NetbiosName" />
                <DataPointReference id="NetbiosWorkgroup" path="printerSim-ConnectionSettings#NetbiosWorkgroup" />
                <DataPointReference id="NetbiosBrowseMaster" path="printerSim-ConnectionSettings#NetbiosBrowseMaster" />
                <DataPointReference id="Status5DelayEnq" path="printerSim-ConnectionSettings#Status5DelayEnq" />
                <DataPointReference id="Status5ReplyCycle" path="printerSim-ConnectionSettings#Status5ReplyCycle" />
                <DataPointReference id="StatusModeLan" path="printerSim-ConnectionSettings#StatusModeLan" />
                <DataPointReference id="Status5Bcc" path="printerSim-ConnectionSettings#Status5Bcc" />
            </Object>

            <Object id="WifiSecurity">
                <DataPointReference id="NetWlanDeviceName" path="printerSim-WifiSecurity#NetWlanDeviceName" />
                <DataPointReference id="NetWlanSsid" path="printerSim-WifiSecurity#NetWlanSsid" />
                <DataPointReference id="NetWlanSsidProbe" path="printerSim-WifiSecurity#NetWlanSsidProbe" />
                <DataPointReference id="NetWlanWifiMode" path="printerSim-WifiSecurity#NetWlanWifiMode" />
                <DataPointReference id="NetWlanAdhocSec" path="printerSim-WifiSecurity#NetWlanAdhocSec" />
                <DataPointReference id="NetWlanChannel" path="printerSim-WifiSecurity#NetWlanChannel" />
                <DataPointReference id="NetWlanInfraSec" path="printerSim-WifiSecurity#NetWlanInfraSec" />
                <DataPointReference id="NetWlanEapAnon" path="printerSim-WifiSecurity#NetWlanEapAnon" />
                <DataPointReference id="NetWlanEapAutopac" path="printerSim-WifiSecurity#NetWlanEapAutopac" />
                <DataPointReference id="NetWlanEapCheckCa" path="printerSim-WifiSecurity#NetWlanEapCheckCa" />
                <DataPointReference id="NetWlanEapClientPass" path="printerSim-WifiSecurity#NetWlanEapClientPass" />
                <DataPointReference id="NetWlanEapMode" path="printerSim-WifiSecurity#NetWlanEapMode" />
                <DataPointReference id="NetWlanEapFastinner" path="printerSim-WifiSecurity#NetWlanEapFastinner" />
                <DataPointReference id="NetWlanEapPeapinner" path="printerSim-WifiSecurity#NetWlanEapPeapinner" />
                <DataPointReference id="NetWlanEapTtlsinner" path="printerSim-WifiSecurity#NetWlanEapTtlsinner" />
                <DataPointReference id="NetWlanEapPacpass" path="printerSim-WifiSecurity#NetWlanEapPacpass" />
                <DataPointReference id="NetWlanEapPassw" path="printerSim-WifiSecurity#NetWlanEapPassw" />
                <DataPointReference id="NetWlanEapUname" path="printerSim-WifiSecurity#NetWlanEapUname" />
                <DataPointReference id="NetWlanWepAuth" path="printerSim-WifiSecurity#NetWlanWepAuth" />
                <DataPointReference id="NetWlanWepIndex" path="printerSim-WifiSecurity#NetWlanWepIndex" />
                <DataPointReference id="NetWlanWepKey1" path="printerSim-WifiSecurity#NetWlanWepKey1" />
                <DataPointReference id="NetWlanWepKey2" path="printerSim-WifiSecurity#NetWlanWepKey2" />
                <DataPointReference id="NetWlanWepKey3" path="printerSim-WifiSecurity#NetWlanWepKey3" />
                <DataPointReference id="NetWlanWepKey4" path="printerSim-WifiSecurity#NetWlanWepKey4" />
                <DataPointReference id="NetWlanWpaType" path="printerSim-WifiSecurity#NetWlanWpaType" />
                <DataPointReference id="NetWlanWpaPsk" path="printerSim-WifiSecurity#NetWlanWpaPsk" />
            </Object>

            <Object id="Battery">
            <DataPointReference id="Current" path="printerSim-Battery#Current" />
            <DataPointReference id="Voltage" path="printerSim-Battery#Voltage" />
            <DataPointReference id="TargetTemperature" path="printerSim-Battery#TargetTemperature" />
            <DataPointReference id="CycleCount" path="printerSim-Battery#CycleCount" />
            <DataPointReference id="ChargeLevel" path="printerSim-Battery#ChargeLevel" />
            <DataPointReference id="Health" path="printerSim-Battery#Health" />
            <DataPointReference id="FullCap" path="printerSim-Battery#FullCap" />
            <DataPointReference id="DesignCap" path="printerSim-Battery#DesignCap" />
            <DataPointReference id="ManufacturingDate" path="printerSim-Battery#ManufacturingDate" />
            <DataPointReference id="SerialNumber" path="printerSim-Battery#SerialNumber" />
          </Object>

          <Object id="Warning">
            <DataPointReference id="UnknownHead" path="printerSim-Warning#UnknownHead" />
            <DataPointReference id="HeadError" path="printerSim-Warning#HeadError" />
            <DataPointReference id="CleanReqHead" path="printerSim-Warning#CleanReqHead" />
            <DataPointReference id="ChangeReqPlaten" path="printerSim-Warning#ChangeReqPlaten" />
            <DataPointReference id="ChangeReqCutter" path="printerSim-Warning#ChangeReqCutter" />
            <DataPointReference id="ChangeBattery" path="printerSim-Warning#ChangeBattery" />
            <DataPointReference id="BufferNearFull" path="printerSim-Warning#BufferNearFull" />
            <DataPointReference id="ChassisDamage" path="printerSim-Warning#ChassisDamage" />
            <DataPointReference id="RibbonNearStop" path="printerSim-Warning#RibbonNearStop" />
            <DataPointReference id="RibbonReachedEnd" path="printerSim-Warning#RibbonReachedEnd" />
          </Object>

          <Object id="Folder">
            <DataPointReference id="Files" path="printerSim-Files#Files" />
            <DataPointReference id="AllowedTypes" path="printerSim-Files#AllowedTypes" />
          </Object>

          <DataPointReference id="Locations" path="Location#locations">
            <PropertyMapping id="longitude" property="longitude" />
            <PropertyMapping id="latitude" property="latitude" />
            <PropertyMapping id="altitude" property="altitude" />
          </DataPointReference>
        </Object>
          
          

        <Object id="Error">
          <DataPointReference id="ErrorId" path="printerSim-Warning#ErrorId" />
          <DataPointReference id="ErrorMessage" path="printerSim-Warning#ErrorMessage" />
        </Object>
      </Object>
    </Message>
	
    <Message id="ERROR_ALERT">
      <Object id="Resource">
        <DataPointReference id="event_id" path="printerSim-Error#AlertID" />
        <DataPointReference id="event_description" path="printerSim-Error#AlertDescription" />
        <DataPointReference id="timestamp" path="printerSim-Error#Timestamp" />
      </Object>
    </Message>

    <Message id="NOTIFICATION_ALERT">
      <Object id="Resource">
        <DataPointReference id="event_id" path="printerSim-Notification#AlertID" />
        <DataPointReference id="event_description" path="printerSim-Notification#AlertDescription" />
        <DataPointReference id="timestamp" path="printerSim-Notification#Timestamp" />
      </Object>
    </Message>

    <Message id="Response">
      <Object id="Resource">
        <Object id="Error">
          <DataPointReference id="ErrorId" path="printerSim-Warning#ErrorId" />
          <DataPointReference id="ErrorMessage" path="printerSim-Warning#ErrorMessage" />
        </Object>
      </Object>
    </Message>

    <Message id="DiscoverDevicesResponse">
      <Object id="Resource">
        <Object id="Error">
          <DataPointReference id="ErrorId" path="printerSim-Warning#ErrorId" />
          <DataPointReference id="ErrorMessage" path="printerSim-Warning#ErrorMessage" />
        </Object>
      </Object>
    </Message>

      <!-- Logs -->
      <Message id="GetLogsDirect">
          <Object id="Resource">
              <Segment id="Size" type="integer"/>
              <Segment id="IsBinary" type="boolean"/>
              <Segment id="IncludeContentLength" type="boolean"/>
              <Segment id="IncludeFileName" type="boolean"/>
          </Object>
      </Message>
      <Message id="LogsDirect">
          <Object id="Resource">
              <Segment id="content" type="datafile" reference="content" />
              <Segment id="content_name" type="datafile" reference="contentName" />
              <Segment id="content_length" type="datafile" reference="contentLength" />
              <Segment id="content_type" type="datafile" reference="contentType" />
              <Segment id="content_index" type="datafile" reference="contentIndex" />
          </Object>
      </Message>

      <!-- Config -->
      <Message id="GetConfigDirect">
          <Object id="Resource">
              <Segment id="Size" type="integer"/>
              <Segment id="IsBinary" type="boolean"/>
              <Segment id="IncludeContentLength" type="boolean"/>
              <Segment id="IncludeFileName" type="boolean"/>
          </Object>
      </Message>
      <Message id="ConfigDirect">
          <Object id="Resource">
              <Segment id="content" type="datafile" reference="content" />
              <Segment id="content_name" type="datafile" reference="contentName" />
              <Segment id="content_length" type="datafile" reference="contentLength" />
              <Segment id="content_type" type="datafile" reference="contentType" />
              <Segment id="content_index" type="datafile" reference="contentIndex" />
              <Segment id="content_purpose" type="datafile" reference="contentPurpose" />
          </Object>
      </Message>
  </Messages>

  <Transactions>
    <Transaction id="Register" hint="You must first register a hub, gateway, or web service before you can discover and enroll devices on it.">
      <Blocks>
        <Block id="1">
          <SendMessage id="RegisterAPI">
            <UserAssignment actionArgName="Host Address" path="Settings/ApiIpAddress" hint="Enter the IP Address of the printer you want to register." />
            <UserAssignment actionArgName="Username" path="Settings/ApiKey" />
            <UserAssignment actionArgName="Password" path="Settings/ApiSecret" secret="true" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="RegisterAPISettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="SearchNewDevices">
      <Blocks>
        <Block id="1">
          <SendMessage id="SearchNewDevices">
            <UserAssignment actionArgName="Username" path="Settings/ApiKey" />
            <UserAssignment actionArgName="Password" path="Settings/ApiSecret" />
            <UserAssignment actionArgName="Auxiliary Addresses" path="Settings/AuxiliaryString1" optional="true" hint="Optionally, add the known device addresses as a comma-separated list." />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>
	
    <Transaction id="checkin" semanticid="base-module#checkin">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_GetDeviceState" />
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="DeviceStateResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="checkin-async" semanticid="base-module#checkin">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_GetDeviceState_Async" />
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="DeviceStateResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>
	
    <Transaction id="Ping" semanticid="Ping#Ping">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_GetDeviceLightInfo" />
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="DeviceStateResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="long-checkin" semanticid="printerSim-General#long-checkin">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_GetDeviceInfo" />
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="DeviceStateResponse" />
                <BlockAction>
                  <GoToBlock blockId="2" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>

        <Block id="2">
          <SendMessage id="Device_GetDeviceFiles" />
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="DeviceStateResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource2" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource2" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="change-allowed-types" semanticid="printerSim-Files#change-allowed-types">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_ChangeAllowedTypes">
            <UserAssignment actionArgName="Allowed File Types" path="Resource/AllowedTypes" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="DeviceStateResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="change-print-settings" semanticid="PrintQuality#change-print-quality">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_ChangeSettings">
            <UserAssignment actionArgName="Print Speed" path="Resource/PrintSpeed" />
            <UserAssignment actionArgName="Darkness" path="Resource/Darkness" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="ChangeSettingsResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="change-head-resolution" semanticid="printerSim-Settings#change-head-resolution">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_ChangeSettings">
            <UserAssignment actionArgName="Head Resolution" path="Resource/HeadResolution" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="ChangeSettingsResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="change-printer-settings" semanticid="printerSim-Settings#change-printer-settings">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_ChangeSettings">
            <UserAssignment actionArgName="RFID Enabled" path="Resource/RfidEnabled" />
            <UserAssignment actionArgName="Ribbon Active" path="Resource/RibbonActive" />
            <UserAssignment actionArgName="Use Peeler" path="Resource/UsePeeler" />
            <UserAssignment actionArgName="Enable User Label" path="Resource/EnableUserLabel" />
            <UserAssignment actionArgName="Feed Speed" path="Resource/FeedSpeed" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="ChangeSettingsResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="change-label-settings" semanticid="LabelSettings#change-label-handling">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_ChangeSettings">
            <UserAssignment actionArgName="Label Length" path="Resource/LabelLength" />
            <UserAssignment actionArgName="Label Width" path="Resource/LabelWidth" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="ChangeSettingsResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="change-power-settings" semanticid="printerSim-Settings#change-power-settings">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_ChangeSettings">
            <UserAssignment actionArgName="Power Off Timeout" path="Resource/PowerOffTimeout" />
            <UserAssignment actionArgName="Shut Down Temperature Max" path="Resource/ShutDownTemperatureMax" />
            <UserAssignment actionArgName="Shut Down Temperature Min" path="Resource/ShutDownTemperatureMin" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="ChangeSettingsResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="change-sensor" semanticid="printerSim-Settings#change-sensor">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_ChangeSettings">
            <UserAssignment actionArgName="Media Sensor" path="Resource/SensorMark" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="ChangeSettingsResponse" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="download-file" semanticid="printerSim-General#download-file" isMetaTransaction="true">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_DownloadFile">
            <UserAssignment actionArgName="File" path="Resource/Url" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
      <AlertBlocks>
        <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="FileDownloadTimeout" timeout="5400">
          <SuccessCase>
            <Enumeration>
              <Value>FILE_DOWNLOAD_SUCCESS</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>FILE_DOWNLOAD_FAILURE</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
      </AlertBlocks>
    </Transaction>

    <Transaction id="update-certificates" semanticid="printerSim-General#update-certificates" isMetaTransaction="true">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_UpdateCertificates">
            <UserAssignment actionArgName="CA Certificate" path="Resource/CaUrl" />
            <UserAssignment actionArgName="Client Certificate" path="Resource/ClientUrl" />
            <UserAssignment actionArgName="Client Key" path="Resource/ClientKeyUrl" />
            <UserAssignment actionArgName="Client Key Password" path="Resource/ClientKeyPassword" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
      <AlertBlocks>
        <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="WifiCACertificateTimeout" timeout="300" requiredInputPath="Resource/CaUrl">
          <SuccessCase>
            <Enumeration>
              <Value>CERTIFICATE_INSTALLATION_SUCCESS</Value>
              <Value>ROOT_CERTIFICATE_DOWNLOAD_SUCCESS</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>CERTIFICATE_INSTALLATION_FAILURE</Value>
              <Value>ROOT_CERTIFICATE_DOWNLOAD_FAILURE</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
        <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="WifiClientCertificateTimeout" timeout="300" requiredInputPath="Resource/ClientKeyUrl">
          <SuccessCase>
            <Enumeration>
              <Value>CLIENT_CERTIFICATE_DOWNLOAD_SUCCESS</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>CLIENT_CERTIFICATE_DOWNLOAD_FAILURE</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
      </AlertBlocks>
    </Transaction>
	
	<Transaction id="update-ethernet-certificates" semanticid="Update-Ethernet-Certificate-PEM#Download-Ethernet-Certificate" isMetaTransaction="true">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_UpdateCertificates_Ethernet">
            <UserAssignment actionArgName="CA Certificate" path="Resource/CaUrl" />
            <UserAssignment actionArgName="Client Certificate" path="Resource/ClientUrl" />
            <UserAssignment actionArgName="Client Key" path="Resource/ClientKeyUrl" />
            <UserAssignment actionArgName="Client Key Password" path="Resource/ClientKeyPassword" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
      <AlertBlocks>
        <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="WifiCACertificateTimeout" timeout="300" requiredInputPath="Resource/CaUrl">
          <SuccessCase>
            <Enumeration>
              <Value>CERTIFICATE_INSTALLATION_SUCCESS</Value>
              <Value>ROOT_CERTIFICATE_DOWNLOAD_SUCCESS</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>CERTIFICATE_INSTALLATION_FAILURE</Value>
              <Value>ROOT_CERTIFICATE_DOWNLOAD_FAILURE</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
        <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="WifiClientCertificateTimeout" timeout="300" requiredInputPath="Resource/ClientKeyUrl">
          <SuccessCase>
            <Enumeration>
              <Value>CLIENT_CERTIFICATE_DOWNLOAD_SUCCESS</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>CLIENT_CERTIFICATE_DOWNLOAD_FAILURE</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
      </AlertBlocks>
    </Transaction>
	
	<Transaction id="update-certificates-pfx" semanticid="printerSim-Pfx-certificates#update-certificates" isMetaTransaction="true">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_UpdateCertificates_PFX">
            <UserAssignment actionArgName="CA Certificate" path="Resource/CaUrl" />
            <UserAssignment actionArgName="Client Certificate" path="Resource/ClientUrl" />
            <UserAssignment actionArgName="Client Certificate Password" path="Resource/Password" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
      <AlertBlocks>
        <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="WifiCACertificateTimeout" timeout="300" requiredInputPath="Resource/CaUrl">
          <SuccessCase>
            <Enumeration>
              <Value>CERTIFICATE_INSTALLATION_SUCCESS</Value>
              <Value>ROOT_CERTIFICATE_DOWNLOAD_SUCCESS</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>CERTIFICATE_INSTALLATION_FAILURE</Value>
              <Value>ROOT_CERTIFICATE_DOWNLOAD_FAILURE</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
        <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="WifiClientCertificateTimeout" timeout="300" requiredInputPath="Resource/ClientUrl">
          <SuccessCase>
            <Enumeration>
              <Value>CLIENT_CERTIFICATE_DOWNLOAD_SUCCESS</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>CLIENT_CERTIFICATE_DOWNLOAD_FAILURE</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
      </AlertBlocks>
    </Transaction>
    <Transaction id="update-certificates-pfx-base64" semanticid="printerSim-Pfx-certificates#update-certificates-base64">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_UpdateCertificates_PFX_Base64">
            <UserAssignment actionArgName="Certificate" path="Resource/EncodedCert" />
            <UserAssignment actionArgName="Certificate Password" path="Resource/Password" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="download-file-filestore" semanticid="Firmware-Download#download-file-filestore" isMetaTransaction="true">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_InstallFirmwareUpdate">
            <UserAssignment actionArgName="File" path="Resource/Url" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
      <AlertBlocks>
        <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="FirmwareDownloadTimeout" timeout="5400">
          <SuccessCase>
            <Enumeration>
              <Value>FIRMWARE_INSTALLATION_SUCCESS</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>FIRMWARE_INSTALLATION_FAILURE</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
      </AlertBlocks>
    </Transaction>

    <Transaction id="download-file-filestore-partial" semanticid="Firmware-Download-Partial#download-file-filestore-partial" isMetaTransaction="true">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_InstallFirmwareUpdatePartial">
            <UserAssignment actionArgName="File" path="Resource/Url" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
      <AlertBlocks>
        <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="FirmwareDownloadTimeout" timeout="5400">
          <SuccessCase>
            <Enumeration>
              <Value>FIRMWARE_INSTALLATION_SUCCESS</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>FIRMWARE_INSTALLATION_FAILURE</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
      </AlertBlocks>
    </Transaction>

    <Transaction id="update-webhook" semanticid="Push-Connect-Certificate#push-connect-root-certificate">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_UpdateWebhook" >
		  <UserAssignment actionArgName="Root Certificate" path="Resource/cert" />
		  </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Success" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>
	
	<Transaction id="print-test-page" semanticid="GenericPrinterState#print-test-page">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_PrintTestPage" />
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="reboot" semanticid="GenericPrinterState#reboot">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_RebootDevice" />
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="shutdown-device" semanticid="printerSim-General#shutdown-device">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_ShutdownDevice" />
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="update-connect-root-cert" semanticid="printerSim-General#update-connect-root-cert" isMetaTransaction="true">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_UpdateConnectRootCertificate">
            <UserAssignment actionArgName="Root Certificate" path="Resource/Url" />
            <UserAssignment actionArgName="Password" path="Resource/Password" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
      <AlertBlocks>
        <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="FileDownloadTimeout" timeout="5400">
          <SuccessCase>
            <Enumeration>
              <Value>FILE_DOWNLOAD_SUCCESS</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>FILE_DOWNLOAD_FAILURE</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
      </AlertBlocks>
    </Transaction>
	
	<Transaction id="install-certificate" semanticid="printerSim-Install-certificate#install-certificate">
            <Blocks>
                <Block id="1">
                    <SendMessage id="Device_InstallCert">
                        <UserAssignment actionArgName="File" path="Resource/File" />
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="Success" />
                                <BlockAction>
                                    <Terminate success="true" />
                                </BlockAction>
                            </MessageCase>
                            <MessageCase>
                                <ReceiveMessage id="Error">
                                    <VariableDefinition id="Resource" path="Resource" />
                                </ReceiveMessage>
                                <BlockAction>
                                    <Terminate success="false">
                                        <Log variableId="Resource" />
                                    </Terminate>
                                </BlockAction>
                            </MessageCase>
                        </SwitchOnMessage>
                    </Switch>
                </Block>
            </Blocks>
        </Transaction>
        


    <Transaction id="factory-reset" semanticid="GenericPrinterState#factory-reset">
      <Blocks>
        <Block id="1">
          <SendMessage id="Device_FactoryReset">
            <ConstantAssignment path="Resource/Configuration" value="reset" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Response" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

      <!-- Logs -->
      <Transaction id="GetLogsDirect" semanticid="printerSim-Logs#get-logs" isMetaTransaction="true">
          <Blocks>
              <Block id="1">
                  <SendMessage id="GetLogsDirect">
                      <ConstantAssignment value="false" path="Resource/IsBinary"/>
                      <ConstantAssignment value="false" path="Resource/IncludeContentLength"/>
                      <ConstantAssignment value="false" path="Resource/IncludeFileName"/>
                      <UserAssignment actionArgName="Log file size in bytes" defaultValue="10000000" path="Resource/Size"/>
                  </SendMessage>
                  <Switch>
                      <SwitchOnMessage>
                          <MessageCase>
                              <ReceiveMessage id="Success"  />
                              <BlockAction>
                                  <Terminate success="true" />
                              </BlockAction>
                          </MessageCase>
                          <MessageCase>
                              <ReceiveMessage id="Error">
                                  <VariableDefinition id="Resource" path="Resource" />
                              </ReceiveMessage>
                              <BlockAction>
                                  <Terminate success="false">
                                      <Log variableId="Resource" />
                                  </Terminate>
                              </BlockAction>
                          </MessageCase>
                      </SwitchOnMessage>
                  </Switch>
              </Block>
          </Blocks>
          <AlertBlocks>
              <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="GetLogsTimeout" timeout="5400">
                  <SuccessCase>
                      <Enumeration>
                          <Value>LogsDownloadSuccess</Value>
                      </Enumeration>
                  </SuccessCase>
                  <FailureCase>
                      <Enumeration>
                          <Value>LogsDownloadFailure</Value>
                      </Enumeration>
                  </FailureCase>
              </AlertBlock>
          </AlertBlocks>
      </Transaction>

      <Transaction id="LogsEvent" semanticid="printerSim-Logs#LogsEvent">
          <Blocks>
              <Block id="1">
                  <ReceiveMessage id="LogsDirect" />
                  <BlockAction>
                      <Terminate success="true" />
                  </BlockAction>
              </Block>
          </Blocks>
      </Transaction>

      <!--Config-->

      <Transaction id="GetConfigDirect" semanticid="printerSim-Logs#get-config" isMetaTransaction="true">
          <Blocks>
              <Block id="1">
                  <SendMessage id="GetConfigDirect">
                      <ConstantAssignment value="true" path="Resource/IsBinary"/>
                      <ConstantAssignment value="false" path="Resource/IncludeContentLength"/>
                      <ConstantAssignment value="false" path="Resource/IncludeFileName"/>
                      <UserAssignment actionArgName="Config file size in bytes" defaultValue="10000000" path="Resource/Size"/>
                  </SendMessage>
                  <Switch>
                      <SwitchOnMessage>
                          <MessageCase>
                              <ReceiveMessage id="Success"  />
                              <BlockAction>
                                  <Terminate success="true" />
                              </BlockAction>
                          </MessageCase>
                          <MessageCase>
                              <ReceiveMessage id="Error">
                                  <VariableDefinition id="Resource" path="Resource" />
                              </ReceiveMessage>
                              <BlockAction>
                                  <Terminate success="false">
                                      <Log variableId="Resource" />
                                  </Terminate>
                              </BlockAction>
                          </MessageCase>
                      </SwitchOnMessage>
                  </Switch>
              </Block>
          </Blocks>
          <AlertBlocks>
              <AlertBlock MessageId="NOTIFICATION_ALERT" timeoutAlertId="GetConfigTimeout" timeout="5400">
                  <SuccessCase>
                      <Enumeration>
                          <Value>ConfigDownloadSuccess</Value>
                      </Enumeration>
                  </SuccessCase>
                  <FailureCase>
                      <Enumeration>
                          <Value>ConfigDownloadFailure</Value>
                      </Enumeration>
                  </FailureCase>
              </AlertBlock>
          </AlertBlocks>
      </Transaction>

      <Transaction id="ConfigEvent" semanticid="printerSim-Logs#ConfigEvent">
          <Blocks>
              <Block id="1">
                  <ReceiveMessage id="ConfigDirect" />
                  <BlockAction>
                      <Terminate success="true" />
                  </BlockAction>
              </Block>
          </Blocks>
      </Transaction>

    <Transaction id="Error" semanticid="printerSim-Error#ERROR">
      <Blocks>
        <Block id="1">
          <ReceiveMessage id="ERROR_ALERT" />
          <BlockAction>
            <Terminate success="true" />
          </BlockAction>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="Notification" semanticid="printerSim-Notification#NOTIFICATION">
      <Blocks>
        <Block id="1">
          <ReceiveMessage id="NOTIFICATION_ALERT" />
          <BlockAction>
            <Terminate success="true" />
          </BlockAction>
        </Block>
      </Blocks>
    </Transaction>
  </Transactions>

  <ProtocolDefinition id="B54EEC00-FAEF-4934-AAFF-93AA2840F490" name="Printer Simulator HTTP">
    <Protocol>
      <Transaction id="InitializeProtocol" hidden="true" />
      <Transaction id="Register" />
      <Transaction id="DiscoverDevices" instanceIdRequired="true" />
      <Transaction id="Unregister" instanceIdRequired="true" />
      <Transaction id="SearchNewDevices" instanceIdRequired="true" />
      <Transaction id="NewDevices" />
      <Transaction id="DeployCertificate" hidden="true" />
      <Transaction id="ActivateCertificate" hidden="true" />
      <Transaction id="CancelCertificateActivation" hidden="true" />
      <Transaction id="GetConnectNetworkInventory" hidden="true" />
      <Transaction id="StopConnectNetworkInventory" hidden="true" />
      <Transaction id="ConnectNetworkInventory" hidden="true" />
    </Protocol>

    <Devices>
      <Device id="rest-sim-thermal-printer-general">
        <ApiTypeId id="SOTI@@RESTPrinterSimulator@@1" />
        <Transaction id="checkin" />
        <Transaction id="long-checkin" />
        <Transaction id="Ping" />
        <Transaction id="change-print-settings" />
        <Transaction id="change-label-settings" />
        <Transaction id="change-head-resolution" />
        <Transaction id="change-printer-settings" />
        <Transaction id="change-power-settings" />
        <Transaction id="change-sensor" />
        <Transaction id="download-file" />
        <Transaction id="update-certificates" />
        <Transaction id="download-file-filestore" />
        <Transaction id="download-file-filestore-partial" />
        <Transaction id="install-certificate" />
        <Transaction id="print-test-page" />
        <Transaction id="reboot" />
        <Transaction id="shutdown-device" />
        <Transaction id="update-connect-root-cert" />
        <Transaction id="factory-reset" />
        <Transaction id="change-allowed-types" />
        <Transaction id="Error" />
        <Transaction id="Notification" />
        <Transaction id="DisconnectedNotification" />

        <Transaction id="GetLogsDirect" />
        <Transaction id="LogsEvent" />

        <Transaction id="GetConfigDirect" />
        <Transaction id="ConfigEvent" />
      </Device>
      <Device id="rest-sim-thermal-printer-general-async">
        <ApiTypeId id="SOTI@@RESTPrinterSimulator@@3" />
        <Transaction id="checkin-async" />
        <Transaction id="long-checkin" />
        <Transaction id="Ping" />
        <Transaction id="change-print-settings" />
        <Transaction id="change-label-settings" />
        <Transaction id="change-head-resolution" />
        <Transaction id="change-printer-settings" />
        <Transaction id="change-power-settings" />
        <Transaction id="change-sensor" />
        <Transaction id="download-file" />
        <Transaction id="update-certificates" />
        <Transaction id="download-file-filestore" />
        <Transaction id="download-file-filestore-partial" />
        <Transaction id="install-certificate" />
        <Transaction id="print-test-page" />
        <Transaction id="reboot" />
        <Transaction id="shutdown-device" />
        <Transaction id="update-connect-root-cert" />
        <Transaction id="factory-reset" />
        <Transaction id="change-allowed-types" />
        <Transaction id="Error" />
        <Transaction id="Notification" />
        <Transaction id="DisconnectedNotification" />
      </Device>
      <Device id="rest-sim-thermal-printer-lite">
        <ApiTypeId id="SOTI@@RESTPrinterSimulator@@2" />
        <Transaction id="checkin" />
        <Transaction id="long-checkin" />
        <Transaction id="Ping" />
        <Transaction id="change-print-settings" />
        <Transaction id="change-label-settings" />
        <Transaction id="change-head-resolution" />
        <Transaction id="change-printer-settings" />
        <Transaction id="change-power-settings" />
        <Transaction id="change-sensor" />
        <Transaction id="download-file" />
        <Transaction id="update-certificates" />
        <Transaction id="download-file-filestore" />
        <Transaction id="download-file-filestore-partial" />
        <Transaction id="install-certificate" />
        <Transaction id="print-test-page" />
        <Transaction id="reboot" />
        <Transaction id="shutdown-device" />
        <Transaction id="update-connect-root-cert" />
        <Transaction id="factory-reset" />
        <Transaction id="change-allowed-types" />
        <Transaction id="Error" />
        <Transaction id="Notification" />
        <Transaction id="DisconnectedNotification" />
      </Device>
	  <Device id="rest-sim-thermal-printer-general-pfx">
        <ApiTypeId id="SOTI@@RESTPrinterSimulator@@5" />
        <Transaction id="checkin" />
        <Transaction id="long-checkin" />
        <Transaction id="Ping" />
        <Transaction id="change-print-settings" />
        <Transaction id="change-label-settings" />
        <Transaction id="change-head-resolution" />
        <Transaction id="change-printer-settings" />
        <Transaction id="change-power-settings" />
        <Transaction id="change-sensor" />
        <Transaction id="download-file" />
        <Transaction id="update-certificates-pfx" />
        <Transaction id="update-certificates-pfx-base64" />
        <Transaction id="update-ethernet-certificates" />
        <Transaction id="download-file-filestore" />
        <Transaction id="download-file-filestore-partial" />
        <Transaction id="install-certificate" />
        <Transaction id="print-test-page" />
        <Transaction id="reboot" />
        <Transaction id="shutdown-device" />
        <Transaction id="update-connect-root-cert" />
        <Transaction id="factory-reset" />
        <Transaction id="change-allowed-types" />
        <Transaction id="Error" />
        <Transaction id="Notification" />
        <Transaction id="DisconnectedNotification" />
      </Device>
    </Devices>
  </ProtocolDefinition>
</Domain>