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

    <Messages>
        <Message id="EpsonGetDeviceState" />

        <Message id="EpsonDeviceState">
            <Object id="Resource">
                <Object id="General">
                    <DataPointReference id="Manufacturer"           path="base-module#manufacturer"/>
                    <DataPointReference id="PrinterModel"           path="base-module#model-id" />
                    <DataPointReference id="SerialNumber"           path="GenericDeviceState#serial-number" />
                    <DataPointReference id="FirmwareVersion"        path="base-module#version" />
                    <DataPointReference id="NetworkFirmwareVersion" path="EpsonGeneralDeviceState#NetworkFirmwareVersion" />
                    <DataPointReference id="TmiFirmwareVersion"     path="EpsonGeneralDeviceState#TmiFirmwareVersion" />
                    <DataPointReference id="ConnectionStatus"       path="EpsonGeneralDeviceState#ActiveNetworkConnection" />
                    <DataPointReference id="SystemTime"             path="EpsonGeneralDeviceState#SystemTime" />
                    <DataPointReference id="TimeServerUse"          path="EpsonGeneralDeviceState#TimeServerUse" />
                    <DataPointReference id="TimeServerAddress"      path="EpsonGeneralDeviceState#TimeServerAddress" />
                    <DataPointReference id="TimeUpdateInterval"     path="EpsonGeneralDeviceState#TimeUpdateInterval" />
                    <DataPointReference id="BluetoothEnabled"       path="GenericNetworkBluetooth#bluetoothEnabled"/>
                    <DataPointReference id="BluetoothMacAddress"    path="GenericNetworkBluetooth#bluetooth-device-address"/>
                </Object>
                <Object id="PrinterStatus">
                    <DataPointReference id="Online"                        path="EpsonErrors#Online" />
                    <DataPointReference id="CoverOpen"                     path="EpsonErrors#CoverOpen" />
                    <DataPointReference id="AutocutterError"               path="EpsonErrors#AutocutterError" />
                    <DataPointReference id="RecoverableError"              path="EpsonErrors#RecoverableError" />
                    <DataPointReference id="UnrecoverableError"            path="EpsonErrors#UnrecoverableError" />
                    <DataPointReference id="PaperNearEnd"                  path="EpsonWarnings#PaperNearEnd" />
                    <DataPointReference id="PaperEnd"                      path="EpsonErrors#PaperEnd" />
                    
                    <DataPointReference id="NumberOfLinesFed"              path="EpsonCounters#NumberOfLinesFed" />
                    <DataPointReference id="NumberOfHeadEnergizations"     path="EpsonCounters#NumberOfHeadEnergizations" />
                    <DataPointReference id="NumberOfLinesFedHeadReplaced"  path="EpsonCounters#NumberOfLinesFedHeadReplaced" />
                    <DataPointReference id="NumberOfAutocutterOperations"  path="EpsonCounters#NumberOfAutocutterOperations" />
                    <DataPointReference id="NumberOfPrinterOperatingHours" path="EpsonCounters#NumberOfPrinterOperatingHours" />
                    
                    <DataPointReference id="Dpi"                           path="EpsonPrintControl#Dpi" />
                    <DataPointReference id="PrintPort"                     path="EpsonPrintControl#PrintPort" />
                    
                    <DataPointReference id="MediaSensor"                   path="EpsonMediaSettings#MediaSensor" />
                    <DataPointReference id="MediaWidth"                    path="EpsonMediaSettings#MediaWidth" />
                </Object>
                <Object id="MqttSettings">
                    <DataPointReference id="ServerAddress"          path="MQTT-Settings#mqtt_server_ip_addr" />
                    <DataPointReference id="ServerPort"             path="MQTT-Settings#mqtt_port_number" />
                    <DataPointReference id="Username"               path="MQTT-Settings#mqtt_user_name" />
                    <DataPointReference id="TenantId"               path="MQTT-Settings#tenant_id" />
                    <DataPointReference id="TLS"                    path="EpsonMQTTSettings#TLS" />
                    <DataPointReference id="QoS"                    path="EpsonMQTTSettings#QoS" />
                    <DataPointReference id="KeepAlive"              path="EpsonMQTTSettings#KeepAlive" />
                    <DataPointReference id="CleanSessions"          path="EpsonMQTTSettings#CleanSessions" />
                    
                    <DataPointReference id="CaCertSubject"          path="EpsonCertificate#CaCertSubject" />
                    <DataPointReference id="CaCertSha256"           path="EpsonCertificate#CaCertSha256" />                    
                    <DataPointReference id="CaCertValidFrom"        path="EpsonCertificate#CaCertValidFrom" />
                    <DataPointReference id="CaCertValidTo"          path="EpsonCertificate#CaCertValidTo" />                    
                    <DataPointReference id="ClientCertSubject"      path="EpsonCertificate#ClientCertSubject" />
                    <DataPointReference id="ClientCertSha256"       path="EpsonCertificate#ClientCertSha256" />                    
                    <DataPointReference id="ClientCertValidFrom"    path="EpsonCertificate#ClientCertValidFrom" />
                    <DataPointReference id="ClientCertValidTo"      path="EpsonCertificate#ClientCertValidTo" />
                    <DataPointReference id="FilestoreCertSubject"   path="EpsonCertificate#FilestoreCertSubject" />
                    <DataPointReference id="FilestoreCertSha256"    path="EpsonCertificate#FilestoreCertSha256" />                    
                    <DataPointReference id="FilestoreCertValidFrom" path="EpsonCertificate#FilestoreCertValidFrom" />
                    <DataPointReference id="FilestoreCertValidTo"   path="EpsonCertificate#FilestoreCertValidTo" />
                </Object>
                <Object id="PrintSettings">
                    <DataPointReference id="PaperReduction" path="EpsonPrintSettings#PaperReduction" />
                    <DataPointReference id="PrintSpeed"     path="EpsonPrintSettings#PrintSpeed" />
                    <DataPointReference id="PrintDensity"   path="EpsonPrintSettings#PrintDensity" />
                </Object>
                <Object id="NetworkSettings">
                    <DataPointReference id="DeviceName"         path="EpsonNetworkSettings#PrinterHostname" />
                    <DataPointReference id="ActiveMacAddress"  path="NetworkInfo#mac" />
                    <DataPointReference id="IpAddressMethod"    path="EpsonNetworkSettings#IpAddressMethod" />
                    <DataPointReference id="IpAddressPrinting"  path="EpsonNetworkSettings#IpAddressPrinting" />
                    <DataPointReference id="IpAddress"          path="EpsonNetworkSettings#IpAddress" />
                    <DataPointReference id="SubnetMask"         path="EpsonNetworkSettings#SubnetMask" />
                    <DataPointReference id="DefaultGateway"     path="EpsonNetworkSettings#DefaultGateway" />
                    <DataPointReference id="DnsMethod"          path="EpsonNetworkSettings#DnsMethod" />
                    <DataPointReference id="DnsServerPrimary"   path="EpsonNetworkSettings#DnsServerPrimary" />
                    <DataPointReference id="DnsServerSecondary" path="EpsonNetworkSettings#DnsServerSecondary" />
                    <DataPointReference id="DnsHostNameMethod"  path="EpsonNetworkSettings#DnsHostNameMethod" />
                    <DataPointReference id="WifiSsid"           path="GenericWIFI#ssid" />
                    <DataPointReference id="WifiSecurity"       path="EpsonWirelessSettings#WifiSecurity" />
                    <DataPointReference id="WifiRssi"           path="EpsonWirelessSettings#WifiRssi"/>
                </Object>
                <Object id="NetworkSecuritySettings">
                    <DataPointReference id="HttpsEncStrength"             path="EpsonChangeHTTPSettings#HttpsEncStrength" />
                    <DataPointReference id="HttpsRedirectHttp"            path="EpsonChangeHTTPSettings#HttpsRedirectHttp" />
                    <DataPointReference id="HttpsTls10Enable"             path="EpsonChangeHTTPSettings#HttpsTls10Enable" />
                    <DataPointReference id="HttpsTls11Enable"             path="EpsonChangeHTTPSettings#HttpsTls11Enable" />
                    <DataPointReference id="HttpsPrinterCertType"         path="EpsonChangeHTTPSettings#HttpsPrinterCertType" />
                    <DataPointReference id="HttpsPrinterCertSubject"      path="EpsonChangeHTTPSettings#HttpsPrinterCertSubject" />
                    <DataPointReference id="HttpsPrinterCertSha256"       path="EpsonChangeHTTPSettings#HttpsPrinterCertSha256" />
                    <DataPointReference id="HttpsPrinterCertValidFrom"    path="EpsonChangeHTTPSettings#HttpsPrinterCertValidFrom" />
                    <DataPointReference id="HttpsPrinterCertValidTo"      path="EpsonChangeHTTPSettings#HttpsPrinterCertValidTo" />
                    <DataPointReference id="Ieee8021xWired"               path="EpsonChangeNetworkSecuritySettings#Ieee8021xWired" />
                    <DataPointReference id="Ieee8021xEapType"             path="EpsonChangeNetworkSecuritySettings#Ieee8021xEapType" />
                    <DataPointReference id="Ieee8021xUser"                path="EpsonChangeNetworkSecuritySettings#Ieee8021xUser" />
                    <DataPointReference id="Ieee8021xServerId"            path="EpsonChangeNetworkSecuritySettings#Ieee8021xServerId" />
                    <DataPointReference id="Ieee8021xValidateCert"        path="EpsonChangeNetworkSecuritySettings#Ieee8021xValidateCert" />
                    <DataPointReference id="Ieee8021xClientCertSubject"   path="EpsonChangeNetworkSecuritySettings#Ieee8021xClientCertSubject" />
                    <DataPointReference id="Ieee8021xClientSha256"        path="EpsonChangeNetworkSecuritySettings#Ieee8021xClientSha256" />
                    <DataPointReference id="Ieee8021xClientCertValidFrom" path="EpsonChangeNetworkSecuritySettings#Ieee8021xClientCertValidFrom" />
                    <DataPointReference id="Ieee8021xClientCertValidTo"   path="EpsonChangeNetworkSecuritySettings#Ieee8021xClientCertValidTo" />
                </Object>
                <Object id="IntelligentSettings">
                    <DataPointReference id="eposPrintEnable"  path="EpsonIntelligentSettings#eposPrintEnable" />
                    <DataPointReference id="eposDeviceEnable" path="EpsonIntelligentSettings#eposDeviceEnable" />
                </Object>
                <Object id="CustomPackage">
                    <DataPointReference id="Name"       path="EpsonCertificateActions#Custom_Package_Name" />
                    <DataPointReference id="Version"    path="EpsonCertificateActions#Custom_Package_Version" />
                    <DataPointReference id="SizeOnDisk" path="EpsonCertificateActions#Custom_Package_SizeOnDisk" />
                </Object>

                <DataPointReference id="CaCertificateList" path="EpsonCertificates#Certificates" />
            </Object>
        </Message>

        <Message id="EpsonAlert">
            <Object id="Resource">
                <DataPointReference id="id"          path="EpsonMQTTAlert#alert-event_id" />
                <DataPointReference id="description" path="EpsonMQTTAlert#alert-event_description" />
                <DataPointReference id="type"        path="EpsonMQTTAlert#alert-event_type" />
                <DataPointReference id="priority"    path="EpsonMQTTAlert#alert-event_priority" />
                <DataPointReference id="timestamp"   path="EpsonMQTTAlert#alert-timestamp" />
                <Object id="data">
                    <Object id="NetworkSettings">
                        <DataPointReference id="DeviceName"         path="EpsonNetworkSettings#PrinterHostname" />
                        <DataPointReference id="ActiveMacAddress "  path="NetworkInfo#mac" />
                        <DataPointReference id="IpAddressMethod"    path="EpsonNetworkSettings#IpAddressMethod" />
                        <DataPointReference id="IpAddressPrinting"  path="EpsonNetworkSettings#IpAddressPrinting" />
                        <DataPointReference id="IpAddress"          path="EpsonNetworkSettings#IpAddress" />
                        <DataPointReference id="SubnetMask"         path="EpsonNetworkSettings#SubnetMask" />
                        <DataPointReference id="DefaultGateway"     path="EpsonNetworkSettings#DefaultGateway" />
                        <DataPointReference id="DnsMethod"          path="EpsonNetworkSettings#DnsMethod" />
                        <DataPointReference id="DnsServerPrimary"   path="EpsonNetworkSettings#DnsServerPrimary" />
                        <DataPointReference id="DnsServerSecondary" path="EpsonNetworkSettings#DnsServerSecondary" />
                        <DataPointReference id="DnsHostNameMethod"  path="EpsonNetworkSettings#DnsHostNameMethod" />
                        <DataPointReference id="WifiSsid"           path="GenericWIFI#ssid" />
                        <DataPointReference id="WifiSecurity"       path="EpsonWirelessSettings#WifiSecurity" />
                    </Object>
                    <Object id="NetworkSecuritySettings">
                        <DataPointReference id="HttpsEncStrength"             path="EpsonChangeHTTPSettings#HttpsEncStrength" />
                        <DataPointReference id="HttpsRedirectHttp"            path="EpsonChangeHTTPSettings#HttpsRedirectHttp" />
                        <DataPointReference id="HttpsTls10Enable"             path="EpsonChangeHTTPSettings#HttpsTls10Enable" />
                        <DataPointReference id="HttpsTls11Enable"             path="EpsonChangeHTTPSettings#HttpsTls11Enable" />
                        <DataPointReference id="HttpsPrinterCertType"         path="EpsonChangeHTTPSettings#HttpsPrinterCertType" />
                        <DataPointReference id="HttpsPrinterCertSubject"      path="EpsonChangeHTTPSettings#HttpsPrinterCertSubject" />
                        <DataPointReference id="HttpsPrinterCertSha256"       path="EpsonChangeHTTPSettings#HttpsPrinterCertSha256" />
                        <DataPointReference id="HttpsPrinterCertValidFrom"    path="EpsonChangeHTTPSettings#HttpsPrinterCertValidFrom" />
                        <DataPointReference id="HttpsPrinterCertValidTo"      path="EpsonChangeHTTPSettings#HttpsPrinterCertValidTo" />
                        <DataPointReference id="Ieee8021xWired"               path="EpsonChangeNetworkSecuritySettings#Ieee8021xWired" />
                        <DataPointReference id="Ieee8021xEapType"             path="EpsonChangeNetworkSecuritySettings#Ieee8021xEapType" />
                        <DataPointReference id="Ieee8021xUser"                path="EpsonChangeNetworkSecuritySettings#Ieee8021xUser" />
                        <DataPointReference id="Ieee8021xServerId"            path="EpsonChangeNetworkSecuritySettings#Ieee8021xServerId" />
                        <DataPointReference id="Ieee8021xValidateCert"        path="EpsonChangeNetworkSecuritySettings#Ieee8021xValidateCert" />
                        <DataPointReference id="Ieee8021xClientCertSubject"   path="EpsonChangeNetworkSecuritySettings#Ieee8021xClientCertSubject" />
                        <DataPointReference id="Ieee8021xClientSha256"        path="EpsonChangeNetworkSecuritySettings#Ieee8021xClientSha256" />
                        <DataPointReference id="Ieee8021xClientCertValidFrom" path="EpsonChangeNetworkSecuritySettings#Ieee8021xClientCertValidFrom" />
                        <DataPointReference id="Ieee8021xClientCertValidTo"   path="EpsonChangeNetworkSecuritySettings#Ieee8021xClientCertValidTo" />
                    </Object>
                </Object>
            </Object>
        </Message>

        <Message id="EpsonMQTTChangeSettings">
            <Object id="Resource">
                <Segment id="ServerAddress"     type="string"  />
                <Segment id="ServerPort"        type="integer" />
                <Segment id="Username"          type="string"  />
                <Segment id="Password"          type="string"  />
                <Segment id="TLS"               type="boolean" />
                <Segment id="TenantId"          type="string"  />
                <Segment id="QoS"               type="integer" />
                <Segment id="CleanSessions"     type="boolean" />
                <Segment id="KeepAlive"         type="integer" />
                <Segment id="CaCert"            type="filestorecontent" />
                <Segment id="ClientCert"        type="filestorecontent" />
                <Segment id="ClientKey"         type="filestorecontent" />
                <Segment id="ClientKeyPassword" type="string" />
            </Object>
        </Message>

        <Message id="EpsonChangePrintSettings">
            <Object id="Resource">
                <Segment id="PaperReduction" type="string" />
                <Segment id="PrintSpeed"     type="integer"/>
                <Segment id="PrintDensity"   type="integer"/>
            </Object>
        </Message>

        <Message id="EpsonChangeNetworkSettings">
            <Object id="Resource">
                <Segment id="DeviceName"         type="string"/>
                <Segment id="IpAddressMethod"    type="string"/>
                <Segment id="IpAddressPrinting"  type="boolean"/>
                <Segment id="IpAddress"          type="ipv4"/>
                <Segment id="SubnetMask"         type="ipv4"/>
                <Segment id="DefaultGateway"     type="ipv4"/>
                <Segment id="DnsMethod"          type="string"/>
                <Segment id="DnsServerPrimary"   type="ipv4"/>
                <Segment id="DnsServerSecondary" type="ipv4"/>
                <Segment id="DnsHostNameMethod"  type="string"/>
            </Object>
        </Message>

        <Message id="EpsonChangeWirelessSettings">
            <Object id="Resource">
                <Segment id="WifiSsid"       type="string"/>
                <Segment id="WifiSecurity"   type="string"/>
                <Segment id="WifiPassphrase" type="string"/>
            </Object>
        </Message>

        <Message id="EpsonChangeHttpsSettings">
            <Object id="Resource">
                <Segment id="HttpsEncStrength"      type="string"/>
                <Segment id="HttpsRedirectHttp"     type="boolean"/>
                <Segment id="HttpsTls10Enable"      type="boolean"/>
                <Segment id="HttpsTls11Enable"      type="boolean"/>
                <Segment id="HttpsPrinterCertType"  type="string"/>
            </Object>
        </Message>

        <Message id="EpsonChangePeapMschapv2Settings">
            <Object id="Resource">
                <Segment id="Ieee8021xWired"        type="boolean"/>
                <Segment id="Ieee8021xUser"         type="string"/>
                <Segment id="Ieee8021xPassword"     type="string"/>
                <Segment id="Ieee8021xServerId"     type="string"/>
                <Segment id="Ieee8021xValidateCert" type="boolean"/>
            </Object>
        </Message>

        <Message id="EpsonChangeEapTlsSettings">
            <Object id="Resource">
                <Segment id="Ieee8021xWired"        type="boolean"/>
                <Segment id="Ieee8021xUser"         type="string"/>
                <Segment id="Ieee8021xServerId"     type="string"/>
                <Segment id="Ieee8021xValidateCert" type="boolean"/>
            </Object>
        </Message>
        
        <Message id="EpsonChangeIntelligentSettings">
            <Object id="Resource">
                <Segment id="eposPrintEnable"  type="boolean"/>
                <Segment id="eposDeviceEnable" type="boolean"/>
            </Object>
        </Message>

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

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

        <Message id="EpsonUpdateCertificate">
            <Object id="Resource">
                <Segment id="CertPurpose"       type="string"/>
                <Segment id="CaCert"            type="filestorecontent"/>
                <Segment id="ClientCert"        type="filestorecontent"/>
                <Segment id="ClientKey"         type="filestorecontent"/>
                <Segment id="ClientKeyPassword" type="string"/>
            </Object>
        </Message>

        <Message id="EpsonUpdateFSCertificate">
            <Object id="Resource">
                <Segment id="CertPurpose" type="string"/>
                <Segment id="CaCert"      type="filestorecontent"/>
            </Object>
        </Message>

        <Message id="EpsonGenerateSelfSignedCertificate" />
        
        <Message id="EpsonReboot"/>

        <Message id="EpsonPrintTestPage" />

        <Message id="EpsonFactoryReset">
            <Segment id="Resource" type="string" />
        </Message>

        <Message id="EpsonChangeTimeServerSettings">
            <Object id="Resource">
                <Segment id="TimeServerUse"      type="boolean" />
                <Segment id="TimeServerAddress"  type="string" />
                <Segment id="TimeUpdateInterval" type="integer" />
            </Object>
        </Message>
    </Messages>

    <Transactions>
        <Transaction id="EpsonMqttCheckIn" semanticid="base-module#checkin">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonGetDeviceState" />
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonChangeMqttSettings" semanticid="EpsonMQTTSettings#epsonChangeMqttSettings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonMQTTChangeSettings">
                        <UserAssignment actionArgName="MQTT Server Address" path="Resource/ServerAddress" />
                        <UserAssignment actionArgName="MQTT Server Port"    path="Resource/ServerPort" />
                        <UserAssignment actionArgName="MQTT Username"       path="Resource/Username" />
                        <UserAssignment actionArgName="MQTT Password"       path="Resource/Password" />
                        <ConstantAssignment path="Resource/TLS" value="true" />
                        <UserAssignment actionArgName="MQTT Tenant Id"      path="Resource/TenantId" />
                        <UserAssignment actionArgName="MQTT QoS"            path="Resource/QoS" />
                        <ConstantAssignment path="Resource/CleanSessions" value="true" />
                        <UserAssignment actionArgName="MQTT Keep Alive"     path="Resource/KeepAlive" />
                        <UserAssignment actionArgName="CA Certificate"                  path="Resource/CaCert" />
                        <UserAssignment actionArgName="Client Certificate"              path="Resource/ClientCert" />
                        <UserAssignment actionArgName="Client Certificate Key"          path="Resource/ClientKey" />
                        <UserAssignment actionArgName="Client Certificate Key Password" path="Resource/ClientKeyPassword" />
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonChangePrintSettings" semanticid="EpsonPrintSettings#epsonChangePrintSettings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonChangePrintSettings">
                        <UserAssignment actionArgName="Print Speed"     path="Resource/PrintSpeed" />
                        <UserAssignment actionArgName="Print Density"   path="Resource/PrintDensity" />                 
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonChangePrinterSettings" semanticid="EpsonPrintSettings#epsonChangePrinterSettings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonChangePrintSettings">
                        <UserAssignment actionArgName="Paper Reduction" path="Resource/PaperReduction" />
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonChangeNetworkSettings" semanticid="EpsonNetworkSettings#changeNetworkSettings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonChangeNetworkSettings">
                        <UserAssignment actionArgName="Printer Hostname"            path="Resource/DeviceName" />
                        <UserAssignment actionArgName="IP Address Assigment Method" path="Resource/IpAddressMethod" />
                        <UserAssignment actionArgName="Enable Printing IP Address"  path="Resource/IpAddressPrinting" />
                        <UserAssignment actionArgName="IP Address"                  path="Resource/IpAddress" />
                        <UserAssignment actionArgName="Subnet Mask"                 path="Resource/SubnetMask" />
                        <UserAssignment actionArgName="Default Network Gateway"     path="Resource/DefaultGateway" />
                        <UserAssignment actionArgName="DNS Server Assigment Method" path="Resource/DnsMethod" />
                        <UserAssignment actionArgName="Primary DNS Server IP Address"   path="Resource/DnsServerPrimary" />
                        <UserAssignment actionArgName="Secondary DNS Server IP Address" path="Resource/DnsServerSecondary" />
                        <UserAssignment actionArgName="DNS Server Hostname Method"      path="Resource/DnsHostNameMethod" />
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonChangeWirelessSettings" semanticid="EpsonWirelessSettings#changeWirelessSettings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonChangeWirelessSettings">
                        <UserAssignment actionArgName="Wireless SSID"                   path="Resource/WifiSsid" />
                        <UserAssignment actionArgName="Wireless Network Security Mode"  path="Resource/WifiSecurity" />
                        <UserAssignment actionArgName="Wireless Passphrase"             path="Resource/WifiPassphrase" />
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonChangeHTTPSettings" semanticid="EpsonChangeHTTPSettings#changeHTTPSettings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonChangeHttpsSettings">
                        <UserAssignment actionArgName="HTTPS Encryption Strength"      path="Resource/HttpsEncStrength" />
                        <UserAssignment actionArgName="Redirect HTTP to HTTPS"         path="Resource/HttpsRedirectHttp" />
                        <UserAssignment actionArgName="Enable TLS1.0"                  path="Resource/HttpsTls10Enable" />
                        <UserAssignment actionArgName="Enable TLS1.1"                  path="Resource/HttpsTls11Enable" />
                        <UserAssignment actionArgName="HTTPS Printer Certificate Type" path="Resource/HttpsPrinterCertType" />
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonChangePeapMschapv2Settings" semanticid="EpsonChangeNetworkSecuritySettings#ChangePeapMschapv2Settings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonChangePeapMschapv2Settings">
                        <UserAssignment actionArgName="Enable Wired Ethernet 802.1X" path="Resource/Ieee8021xWired" />
                        <UserAssignment actionArgName="802.1X User"                  path="Resource/Ieee8021xUser" />
                        <UserAssignment actionArgName="802.1X Password"              path="Resource/Ieee8021xPassword" />
                        <UserAssignment actionArgName="802.1X Server ID"               path="Resource/Ieee8021xServerId" />
                        <UserAssignment actionArgName="802.1X Validate CA Certificate" path="Resource/Ieee8021xValidateCert" />
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonChangeEapTlsSettings" semanticid="EpsonChangeNetworkSecuritySettings#ChangeEapTlsSettings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonChangeEapTlsSettings">
                        <UserAssignment actionArgName="Enable Wired Ethernet 802.1X"   path="Resource/Ieee8021xWired" />
                        <UserAssignment actionArgName="802.1X User"                    path="Resource/Ieee8021xUser" />
                        <UserAssignment actionArgName="802.1X Server ID"               path="Resource/Ieee8021xServerId" />
                        <UserAssignment actionArgName="802.1X Validate CA Certificate" path="Resource/Ieee8021xValidateCert" />
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonChangeIntelligentSettings" semanticid="EpsonIntelligentSettings#changeIntelligentSettings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonChangeIntelligentSettings">
                        <UserAssignment actionArgName="Enable ePOS Print Service"  path="Resource/eposPrintEnable" />
                        <UserAssignment actionArgName="Enable ePOS Device Service" path="Resource/eposDeviceEnable" />
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonUpdateFirmware"  semanticid="Firmware-Download#download-file-filestore" isMetaTransaction="true">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonUpdateFirmware">
                        <UserAssignment actionArgName="File" path="Resource/Url" />
                    </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="EpsonAlert" timeoutAlertId="FirmwareDownloadTimeout" timeout="3600">
                    <SuccessCase>
                        <Enumeration>
                            <Value>UpdateFirmwareSuccess</Value>
                        </Enumeration>
                    </SuccessCase>
                    <FailureCase>
                        <Enumeration>
                            <Value>UpdateFirmwareFail</Value>
                        </Enumeration>
                    </FailureCase>
                </AlertBlock>
            </AlertBlocks>
        </Transaction>
        <Transaction id="EpsonUpdateCustomPackage" semanticid="EpsonCertificateActions#updateCustomPackage" isMetaTransaction="true">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonUpdateCustomPackage">
                        <UserAssignment actionArgName="File" path="Resource/Url" />
                    </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="EpsonAlert" timeoutAlertId="PackageDownloadTimeout" timeout="3600">
                    <SuccessCase>
                        <Enumeration>
                            <Value>UpdateCustomPackageSuccess</Value>
                        </Enumeration>
                    </SuccessCase>
                    <FailureCase>
                        <Enumeration>
                            <Value>UpdateCustomPackageFail</Value>
                        </Enumeration>
                    </FailureCase>
                </AlertBlock>
            </AlertBlocks>
        </Transaction>
        <Transaction id="EpsonUpdateHTTPSCertificate" semanticid="Epson-Download-Certificate#Download-HTTPS-Certificate">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonUpdateCertificate">
                        <ConstantAssignment path="Resource/CertPurpose"     value="HTTPS" />
                        <UserAssignment actionArgName="Client Certificate"  path="Resource/ClientCert" />
                        <UserAssignment actionArgName="Client Key"          path="Resource/ClientKey" />
                        <UserAssignment actionArgName="Client Key Password" path="Resource/ClientKeyPassword" />
                    </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="EpsonUpdateEthernetCertificate" semanticid="Epson-Download-Certificate#Download-Ethernet-Wifi-Certificate">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonUpdateCertificate">
                        <ConstantAssignment path="Resource/CertPurpose"     value="IEEE802.1X" />
                        <UserAssignment actionArgName="Root Certificate"    path="Resource/CaCert" />
                        <UserAssignment actionArgName="Client Certificate"  path="Resource/ClientCert" />
                        <UserAssignment actionArgName="Client Key"          path="Resource/ClientKey" />
                        <UserAssignment actionArgName="Client Key Password" path="Resource/ClientKeyPassword" />
                    </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="EpsonUpdateFilestoreCertificate" semanticid="Epson-Download-Certificate#push-filestore-root-certificate">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonUpdateFSCertificate">
                        <UserAssignment actionArgName="File"  path="Resource/CaCert" />
                        <ConstantAssignment path="Resource/CertPurpose"   value="Filestore" />
                    </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="EpsonGenerateSelfSignedCertificate" semanticid="EpsonCertificateActions#generateSelfSignedCertificate">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonGenerateSelfSignedCertificate" />
                    <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="EpsonChangeTimeServerSettings" semanticid="EpsonTimeServerSettings#epsonChangeTimeServerSettings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonChangeTimeServerSettings">
                        <UserAssignment actionArgName="Use Time Server"     path="Resource/TimeServerUse" />
                        <UserAssignment actionArgName="Time Server Address" path="Resource/TimeServerAddress" />
                        <UserAssignment actionArgName="Update Interval"     path="Resource/TimeUpdateInterval" />
                    </SendMessage>
                    <Switch>
                        <SwitchOnMessage>
                            <MessageCase>
                                <ReceiveMessage id="EpsonDeviceState" />
                                <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="EpsonReboot" semanticid="GenericPrinterState#reboot">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonReboot" />
                    <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="EpsonApplySettings" semanticid="EpsonApplySettings#apply_settings">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonReboot" />
                    <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="EpsonFactoryReset" semanticid="EpsonReset#factoryReset">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonFactoryReset">
                        <UserAssignment actionArgName="Type" path="Resource" defaultValue="Full" />
                    </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="EpsonPrintTestPage" semanticid="GenericPrinterState#print-test-page">
            <Blocks>
                <Block id="1">
                    <SendMessage id="EpsonPrintTestPage" />
                    <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="EpsonAlert" semanticid="EpsonMQTTAlert#EpsonAlert">
            <Blocks>
                <Block id="1">
                    <ReceiveMessage id="EpsonAlert" />
                    <BlockAction>
                        <Terminate success="true" />
                    </BlockAction>
                </Block>
            </Blocks>
        </Transaction>
    </Transactions>

    <ProtocolDefinition id="E1138DF8-B607-4463-8D70-347F702FEE14" name="SOTI MQTT">
        <Protocol>
            <Transaction id="InitializeProtocol" hidden="true" />
            <Transaction id="Register" />
            <Transaction id="NewDevices" />
            <Transaction id="SearchNewDevices" instanceIdRequired="true" />
            <Transaction id="Unregister" instanceIdRequired="true" />
            <Transaction id="DeployCertificate" hidden="true" />
            <Transaction id="ActivateCertificate" hidden="true" />
            <Transaction id="CancelCertificateActivation" hidden="true" />
            <Transaction id="RemoteControlRequest" hidden="true" />
        </Protocol>

        <Devices>

            <Device id="mqtt-epson-tm-m50ii-h-printer">
                <ApiTypeId id="Epson@@TM-m50II-H@@1.0" />
                <Transaction id="EpsonMqttCheckIn" />
                <Transaction id="EpsonChangeMqttSettings"/>
                <Transaction id="EpsonChangePrintSettings"/>
                <Transaction id="EpsonChangeNetworkSettings"/>
                <Transaction id="EpsonChangeWirelessSettings"/>
                <Transaction id="EpsonChangeHTTPSettings"/>
                <Transaction id="EpsonChangePeapMschapv2Settings"/>
                <Transaction id="EpsonChangeEapTlsSettings"/>
                <Transaction id="EpsonChangeIntelligentSettings"/>
                <Transaction id="EpsonUpdateFirmware"/>
                <Transaction id="EpsonUpdateCustomPackage"/>
                <Transaction id="EpsonReboot"/>
                <Transaction id="EpsonFactoryReset"/>
                <Transaction id="EpsonPrintTestPage"/>
                <Transaction id="EpsonAlert"/>
                <Transaction id="EpsonGenerateSelfSignedCertificate"/>
                <Transaction id="EpsonUpdateHTTPSCertificate"/>
                <Transaction id="EpsonUpdateEthernetCertificate"/>
                <Transaction id="EpsonUpdateFilestoreCertificate"/>
                <Transaction id="EpsonApplySettings"/>
                <Transaction id="EpsonChangeTimeServerSettings"/>
                <Transaction id="EpsonChangePrinterSettings"/>
            </Device>

            <Device id="mqtt-epson-tm-t88vii-printer">
                <ApiTypeId id="Epson@@TM-T88VII@@1.0" />
                <Transaction id="EpsonMqttCheckIn" />
                <Transaction id="EpsonChangeMqttSettings"/>
                <Transaction id="EpsonChangePrintSettings"/>
                <Transaction id="EpsonChangeNetworkSettings"/>
                <Transaction id="EpsonChangeWirelessSettings"/>
                <Transaction id="EpsonChangeHTTPSettings"/>
                <Transaction id="EpsonChangePeapMschapv2Settings"/>
                <Transaction id="EpsonChangeEapTlsSettings"/>
                <Transaction id="EpsonChangeIntelligentSettings"/>
                <Transaction id="EpsonUpdateFirmware"/>
                <Transaction id="EpsonUpdateCustomPackage"/>
                <Transaction id="EpsonReboot"/>
                <Transaction id="EpsonFactoryReset"/>
                <Transaction id="EpsonPrintTestPage"/>
                <Transaction id="EpsonAlert"/>
                <Transaction id="EpsonGenerateSelfSignedCertificate"/>
                <Transaction id="EpsonUpdateHTTPSCertificate"/>
                <Transaction id="EpsonUpdateEthernetCertificate"/>
                <Transaction id="EpsonUpdateFilestoreCertificate"/>
                <Transaction id="EpsonApplySettings"/>
                <Transaction id="EpsonChangeTimeServerSettings"/>
                <Transaction id="EpsonChangePrinterSettings"/>
            </Device>
        </Devices>
    </ProtocolDefinition>
</Domain>