Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
6055 lines (6019 sloc) 304 KB
<?xml version="1.0" encoding="UTF-8"?>
<!--
USP Device:2.13 Root Object definition
Copyright (c) 2010-2019, Broadband Forum
The undersigned members have elected to grant the copyright to
their contributed material used in this software:
Copyright (c) 2017-2019 ARRIS Enterprises, LLC.
Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The above license is used as a license under copyright only.
Please reference the Forum IPR Policy for patent licensing terms
<https://www.broadband-forum.org/ipr-policy>.
Any moral rights which are necessary to exercise under the above
license grant are also deemed granted under this license.
Summary:
USP Device:2.13 Root Object definition.
Editors:
* John Blackford, CommScope
* Tim Carey, Nokia
* Tim Spets, Greenwave System
* Klaus Wich, Huawei
Broadband User Service Work Area Directors:
* Jason Walls, QA Cafe
* John Blackford, CommScope
Issue History (Filename: Approval Date: Publication Date: Changes):
* tr-181-2-0-0.xml: May 2010:
- Corresponds to TR-181 Issue 2.
* tr-181-2-1-0.xml: November 2010:
- Corresponds to TR-181 Issue 2 Amendment 1.
* tr-181-2-2-0.xml: March 2011:
- Corresponds to TR-181 Issue 2 Amendment 2.
* tr-181-2-3-0.xml: September 2011:
- Corresponds to TR-181 Issue 2 Amendment 3.
* tr-181-2-4-0.xml: November 2011:
- Corresponds to TR-181 Issue 2 Amendment 4.
* tr-181-2-5-0.xml: May 2012:
- Corresponds to TR-181 Issue 2 Amendment 5.
* tr-181-2-6-0.xml: November 2012:
- Corresponds to TR-181 Issue 2 Amendment 6.
* tr-181-2-7-0.xml: November 2013: January 17, 2014
- Corresponds to TR-181 Issue 2 Amendment 7.
* tr-181-2-8-0.xml: 8 September 2014: 17 September 2014:
- Corresponds to TR-181 Issue 2 Amendment 8.
* tr-181-2-9-0.xml: 1 December 2014: 4 February 2015:
- Added WiFi MAC Address Filtering
- Added Traceroute fixes
- Added IEEE 1905 data model
- Incorporated TR-143a1
* tr-181-2-10-0.xml: 9 November 2015: 13 November 2015:
- Corresponds to TR-181 Issue 2 Amendment 10.
* tr-181-2-11-0.xml: 18 July 2016: 12 August 2016
- Corresponds to TR-181 Issue 2 Amendment 11.
* tr-181-2-12-0-usp.xml: 26 March 2018: 26 March 2018
- Corresponds to TR-181 Issue 2 Amendment 12.
- Added USP Local agent support (TR-369)
- Added Firmware Image support
- Added Ethernet Link Aggregation Group
- Added additional Wi-Fi and WAN statistics
- Added support for Two-Way Active Measurement Protocol (TWAMP) reflector
- Added support for Layer Two Tunneling Protocol version 3 (L2TPv3)
- Added support for Virtual eXtensible Local Area Network (VXLAN) tunnels
- Added support for Broadband Access Service Attributes and Performance Metrics measurement test framework (BASAPM)
- Added support for Large-Scale Measurement of Broadband Performance (LMAP)
* tr-181-2-13-0-common.xml: 13 September 2019: 13 September 2019:
- Corresponds to TR-181 Issue 2 Amendment 13.
- Added support for WFA Data Elements
- Added support for Multi AP
- Added support for WPA3 and 802.11ax
- Added support for MQTT 5.0
- Added support for Package capture diagnostics
- Updates for TR-369 MQTT support
- Added support for IoT Data model
-->
<dm:document xmlns:dm="urn:broadband-forum-org:cwmp:datamodel-1-7"
xmlns:dmr="urn:broadband-forum-org:cwmp:datamodel-report-0-1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:broadband-forum-org:cwmp:datamodel-1-7
https://www.broadband-forum.org/cwmp/cwmp-datamodel-1-7.xsd
urn:broadband-forum-org:cwmp:datamodel-report-0-1
https://www.broadband-forum.org/cwmp/cwmp-datamodel-report.xsd"
spec="urn:broadband-forum-org:tr-181-2-13-0-usp"
file="tr-181-2-13-0-usp.xml">
<description>
{{docname|Device:2 Root Data Model for USP (TR-369)}}
{{appdate|September 2019}}
{{trname|TR-181i2a13}}
* Added support for WFA Data Elements
* Added support for Multi AP
* Added support for WPA3 and 802.11ax
* Added support for MQTT 5.0
* Added support for Package capture diagnostics
* Updates for TR-369 MQTT support
* Added support for IoT Data model
</description>
<import file="tr-069-biblio.xml" spec="urn:broadband-forum-org:tr-069"/>
<import file="tr-106-types.xml" spec="urn:broadband-forum-org:tr-106">
<dataType name="Alias" ref="_AliasUSP"/>
<dataType name="IPAddress"/>
<dataType name="StatsCounter32"/>
<dataType name="StatsCounter64"/>
<dataType name="UUID"/>
<dataType name="JSONObject"/>
</import>
<import file="tr-181-2-iot.xml" spec="urn:broadband-forum-org:tr-181-2-13-iot">
<component name="IoT_NodeComponent"/>
<component name="IoT_ProxiedDeviceExtensionComponent"/>
<component name="IoT_ObjectComponent"/>
</import>
<import file="tr-181-2-common.xml" spec="urn:broadband-forum-org:tr-181-2-13">
<component name="ADSLLineDiagnosticsInput"/>
<component name="ADSLLineDiagnosticsOutput"/>
<component name="SELTUERDiagnosticsInput"/>
<component name="SELTUERDiagnosticsOutput"/>
<component name="SELTQLNDiagnosticsInput"/>
<component name="SELTQLNDiagnosticsOutput"/>
<component name="SELTPDiagnosticsInput"/>
<component name="SELTPDiagnosticsOutput"/>
<component name="ATMF5LoopbackDiagnosticsInput"/>
<component name="ATMF5LoopbackDiagnosticsOutput"/>
<component name="HPNAPHYThroughputDiagnosticsInput"/>
<component name="HPNAPHYThroughputDiagnosticsOutput"/>
<component name="HPNAPerformanceMonitoringDiagnosticsInput"/>
<component name="HPNAPerformanceMonitoringDiagnosticsOutput"/>
<component name="GhnPHYThroughputDiagnosticsInput"/>
<component name="GhnPHYThroughputDiagnosticsOutput"/>
<component name="GhnPerformanceMonitoringDiagnosticsInput"/>
<component name="GhnPerformanceMonitoringDiagnosticsOutput"/>
<component name="UPAInterfaceMeasurementDiagnosticsInput"/>
<component name="UPAInterfaceMeasurementDiagnosticsOutput"/>
<component name="WiFiNeighboringWiFiDiagnosticsOutput"/>
<component name="IPPingDiagnosticsInput"/>
<component name="IPPingDiagnosticsOutput"/>
<component name="IPTraceRouteDiagnosticsInput"/>
<component name="IPTraceRouteDiagnosticsOutput"/>
<component name="IPDownloadDiagnosticsCapabilities"/>
<component name="IPDownloadDiagnosticsInput"/>
<component name="IPDownloadDiagnosticsInput2"/>
<component name="IPDownloadDiagnosticsOutput"/>
<component name="IPUploadDiagnosticsCapabilities"/>
<component name="IPUploadDiagnosticsInput"/>
<component name="IPUploadDiagnosticsInput2"/>
<component name="IPUploadDiagnosticsOutput"/>
<component name="IPUDPEchoDiagnosticsInput"/>
<component name="IPUDPEchoDiagnosticsCapabilities"/>
<component name="IPUDPEchoDiagnosticsInput2"/>
<component name="IPUDPEchoDiagnosticsOutput"/>
<component name="IPServerSelectionDiagnosticsInput"/>
<component name="IPServerSelectionDiagnosticsOutput"/>
<component name="DNSLookupDiagnosticsInput"/>
<component name="DNSLookupDiagnosticsOutput"/>
<component name="SelfTestDiagnosticsOutput"/>
<component name="SendMagicPacketInput"/>
<component name="PacketCaptureDiagnosticsInput"/>
<component name="PacketCaptureDiagnosticsOutput"/>
<model name="_Device:2.13" ref="Device:2.13"/>
</import>
<!-- Templates used in object and/or parameter descriptions -->
<template id="MQTTReconnect">
{{templ|MQTTChange}} If the change needs to be applied immediately, the command {{param|ForceReconnect}} has to be executed.
</template>
<template id="MQTTWillChange">
{{templ|MQTTChange}}
If will handling is enabled (Parameter {{param|WillEnable}} is set to {{true}}) and the change needs to be applied immediately, the command {{param|ForceReconnect}} has to be executed.
</template>
<template id="BULK-DATA-HTTP-REF">
{{bibref|TR-369|Annex A}}
</template>
<template id="BULK-DATA-CSV-ENC">
{{bibref|TR-369|Annex A.2.1}}
</template>
<template id="BULK-DATA-TIMESTAMP">
.
</template>
<template id="XMPP-REF">
.
</template>
<template id="XMPP-REF-APP">
.
</template>
<model name="Device:2.13" base="_Device:2.13">
<object base="Device." access="readOnly" minEntries="1" maxEntries="1">
<parameter name="ProxiedDeviceNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<command name="Reboot()" dmr:version="2.12">
<description>
Reboot the entity associated with the containing {{object}}.
</description>
</command>
<event name="Boot!" dmr:version="2.12">
<description>
Boot event indicating that the {{object}} was rebooted.
</description>
<parameter name="CommandKey" dmr:version="2.12">
<description>
The ''command_key'' supplied when requesting the boot, or {{empty}} if the boot was not requested via a USP operation.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="Cause" dmr:version="2.12">
<description>
The cause of the boot.
</description>
<syntax>
<string>
<enumeration value="LocalReboot">
<description>
A {{object}} Event that was the result of a reboot triggered locally on the Device (NOT as a result of a {{command|#.Reboot()}} Command)
</description>
</enumeration>
<enumeration value="RemoteReboot">
<description>
A {{object}} Event that was the result of a reboot triggered via the {{command|#.Reboot()}} Command
</description>
</enumeration>
<enumeration value="LocalFactoryReset">
<description>
A {{object}} Event that was the result of a factory reset triggered locally on the Device (NOT as a result of a {{command|#.FactoryReset()}} Command)
</description>
</enumeration>
<enumeration value="RemoteFactoryReset">
<description>
A {{object}} Event that was the result of a factory reset triggered via the {{command|#.FactoryReset()}} Command
</description>
</enumeration>
</string>
</syntax>
</parameter>
<parameter name="FirmwareUpdated" dmr:version="2.12">
<description>
{{true}} if the firmware was updated as a result of the boot that caused this Event Notification; otherwise {{false}}.
</description>
<syntax>
<boolean/>
</syntax>
</parameter>
<parameter name="ParameterMap" dmr:version="2.12">
<description>
Boot parameters configured via the recipient Controller's {{object|.LocalAgent.Controller.{i}.BootParameter}} table.
Formatted as a {{datatype|expand}}
</description>
<syntax>
<dataType ref="JSONObject"/>
</syntax>
</parameter>
</event>
<command name="FactoryReset()">
<description>
Factory reset the entity associated with the containing {{object}}.
</description>
</command>
<command name="SelfTestDiagnostics()" async="true" dmr:version="2.12">
<description>
This diagnostics test is vendor-specific and MAY include testing hardware, software, and/or firmware.
</description>
<output>
<parameter name="Status" dmr:version="2.13">
<description>
Indicates the availability of diagnostics data. {{enum}}
If the value of this parameter is anything other than {{enum|Complete}}, the values of the other results parameters for this test are indeterminate.
</description>
<syntax>
<string>
<enumeration value="Complete"/>
<enumeration value="Error_Internal"/>
<enumeration value="Error_Other"/>
</string>
</syntax>
</parameter>
<component ref="SelfTestDiagnosticsOutput"/>
</output>
</command>
<command name="PacketCaptureDiagnostics()" async="true" dmr:version="2.13">
<description>
This diagnostic command is used to record packet capture data on a valid (layer 2 or above) interface in libpcap or pcapng format.
</description>
<input>
<component ref="PacketCaptureDiagnosticsInput"/>
</input>
<output>
<parameter name="Status" dmr:version="2.13">
<description>
Indicates the availability of diagnostics data. {{enum}}
If the value of this parameter is anything other than {{enum|Complete}}, the values of the other results parameters for this test are indeterminate.
</description>
<syntax>
<string>
<enumeration value="Canceled" optional="true"/>
<enumeration value="Complete"/>
<enumeration value="Error" optional="true"/>
<enumeration value="Error_Internal"/>
<enumeration value="Error_Other"/>
</string>
</syntax>
</parameter>
<component ref="PacketCaptureDiagnosticsOutput"/>
</output>
</command>
</object>
<object base="Device.DeviceInfo." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<parameter base="ManufacturerOUI" access="readOnly">
<description action="append">
Any change would indicate that it's a new Agent and would therefore require a {{event|#.Boot!}} Event with a {{enum|LocalFactoryReset|#.Boot!.Cause}} enumerated value in the {{param|#.Boot!.Cause}} argument.
</description>
</parameter>
<parameter name="FriendlyName" access="readWrite" dmr:version="2.12">
<description>
The friendly name of the device.
In {{bibref|TR-369}} the friendly name is used during the advertisement of an endpoint - see section IANA-Registered USP Service Names of {{bibref|TR-369}}.
</description>
<syntax>
<string>
<size maxLength="32"/>
</string>
</syntax>
</parameter>
<parameter name="CID" access="readOnly" dmr:previousParameter="ManufacturerOUI" dmr:version="2.12">
<description>
Company identifier assigned and registered by the IEEE Registration Authority to the entity responsible for this Agent. Represented as a six hexadecimal-digit value using all upper-case letters and including any leading zeros. {{pattern}}
This value MUST remain fixed over the lifetime of the Agent, including across firmware updates. Any change would indicate that it's a new Agent and would therefore require a {{event|#.Boot!}} Event with a {{enum|LocalFactoryReset|#.Boot!.Cause}} enumerated value in the {{param|#.Boot!.Cause}} argument.
</description>
<syntax>
<string>
<size minLength="6" maxLength="6"/>
<pattern value="[0-9A-F]{6}"/>
</string>
</syntax>
</parameter>
<parameter name="PEN" access="readOnly" dmr:version="2.12">
<description>
Private Enterprise Number assigned and registered by IANA to the entity responsible for this Agent. Represented as a decimal encoding of the IANA-assinged number.
This value MUST remain fixed over the lifetime of the Agent, including across firmware updates. Any change would indicate that it's a new Agent and would therefore require a {{event|#.Boot!}} Event with a {{enum|LocalFactoryReset|#.Boot!.Cause}} enumerated value in the {{param|#.Boot!.Cause}} argument.
</description>
<syntax>
<string>
<size maxLength="10"/>
</string>
</syntax>
</parameter>
</object>
<object base="Device.BulkData." access="readOnly" minEntries="1" maxEntries="1">
<description action="replace">
This object provides bulk data collection capabilities and global collection settings that affect the entire device.
Bulk Data utilizes various solutions (e.g., IPDR, HTTP) to collect data from devices and transfer the data to a collection server.
The IPDR solution is based on a service specification described in {{bibref|TR-232}}.
The HTTP solution is based on transfer mechanisms described in {{bibref|TR-369|Annex A}}.
The USPEventNotif solution is based on sending a Device.BulkData.Profile.{i}.Push! Event Notification via USP {{bibref|TR-369}}.
The Bulk Data Collection Profiles are measured over a reporting interval (which can be aligned with absolute time) and are made available to the collection server.
</description>
<parameter base="Protocols" access="readOnly" dmr:version="2.5">
<syntax>
<list/>
<string>
<enumeration value="Streaming"/>
<enumeration value="File"/>
<enumeration value="HTTP"/>
<enumeration value="USPEventNotif">
<description>
User Services Platform (USP - {{bibref|TR-369|Annex A}}) Event Notiification
</description>
</enumeration>
</string>
</syntax>
</parameter>
<parameter base="EncodingTypes" access="readOnly" dmr:version="2.5">
<syntax>
<list/>
<string>
<enumeration value="XML"/>
<enumeration value="XDR"/>
<enumeration value="CSV">
<description action="replace">
Comma Separated Values. Used with the HTTP and USPEventNotif Protocols. {{bibref|RFC4180}}
</description>
</enumeration>
<enumeration value="JSON">
<description action="replace">
JavaScript Object Notation. Used with the HTTP and USPEventNotif Protocols. {{bibref|RFC7159}}
</description>
</enumeration>
</string>
</syntax>
</parameter>
</object>
<object base="Device.BulkData.Profile.{i}." access="readWrite" numEntriesParameter="ProfileNumberOfEntries" enableParameter="Enable" minEntries="0" maxEntries="unbounded">
<parameter name="Controller" access="readOnly" dmr:previousParameter="Name" dmr:version="2.12">
<description>
{{reference|the {{object|Device.LocalAgent.Controller.}} instance that created or last updated this {{object}}}}
The value of this parameter is automatically populated by the USP Agent upon {{object}} creation using the reference to the USP Controller that created the instance.
The value of this parameter is automatically updated by the USP Agent upon {{object}} alteration using the reference to the USP Controller that changed the instance.
</description>
<syntax>
<string>
<pathRef refType="strong" targetParent="Device.LocalAgent.Controller." targetType="row"/>
</string>
</syntax>
</parameter>
<event name="Push!" dmr:version="2.13">
<description>
Bulk Data Push event for delivering a bulk data report within a USP Notification message.
</description>
<parameter name="Data" dmr:version="2.13">
<description>
The contents of the bulk data report in the configured CSV or JSON Encoding Type.
</description>
<syntax>
<string/>
</syntax>
</parameter>
</event>
</object>
<object base="Device.BulkData.Profile.{i}.Parameter.{i}." access="readWrite" minEntries="0" maxEntries="unbounded">
<parameter base="Name" access="readWrite">
<description action="replace">
Name of the parameter in the report body.
If the value of this parameter is {{empty}}, then the value of the {{param|Reference}} parameter is used as the name.
When the value {{param|Reference}} parameter contains wildcards and/or partial parameter names, the rules for determining the value of this parameter are specified in {{bibref|TR-369|Annex A.2.3}}.
</description>
</parameter>
</object>
<object base="Device.BulkData.Profile.{i}.CSVEncoding." access="readOnly" minEntries="1" maxEntries="1">
<parameter base="ReportFormat" access="readWrite">
<description action="replace">
This parameter describes the formatting used for reports defined by this profile as described in {{bibref|TR-369|Annex A.2.5}}.
Note: This parameter is encoded as a token in the BBF-Report-Format header field and MUST NOT include spaces or other characters excluded from token characters defined in {{bibref|RFC2616}}.
</description>
</parameter>
</object>
<object base="Device.BulkData.Profile.{i}.JSONEncoding." access="readOnly" minEntries="1" maxEntries="1">
<parameter base="ReportFormat" access="readWrite">
<description action="replace">
This parameter describes the formatting used for the report as described in {{bibref|TR-369|Annex A.2.6}}.
Note: This parameter is encoded as a token in the BBF-Report-Format header field and MUST NOT include spaces or other characters excluded from token characters defined in {{bibref|RFC2616}}.
</description>
</parameter>
<parameter base="ReportTimestamp" access="readWrite">
<description action="replace">
The format of timestamp to use for the JSON Object named "CollectionTime" as described in {{bibref|TR-369|Annex A.2.6.1}}.
</description>
</parameter>
</object>
<object base="Device.BulkData.Profile.{i}.HTTP." access="readOnly" minEntries="1" maxEntries="1">
<parameter base="RetryMinimumWaitInterval" access="readWrite">
<description action="replace">
Configures the data transfer retry wait interval, in seconds, as specified in {{bibref|TR-369|Annex A.1.2.1}}.
The device MUST use a random value between {{param}} and ({{param}} * {{param|RetryIntervalMultiplier}} / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.
</description>
</parameter>
<parameter base="RetryIntervalMultiplier" access="readWrite">
<description action="replace">
Configures the retry interval multiplier as specified in {{bibref|TR-369|Annex A.1.2.1}}.
This value is expressed in units of 0.001. Hence the values of the multiplier range between 1.000 and 65.535.
The device MUST use a random value between {{param|RetryMinimumWaitInterval}} and ({{param|RetryMinimumWaitInterval}} * {{param}} / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.
</description>
</parameter>
</object>
<object base="Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}." access="readWrite" minEntries="0" maxEntries="unbounded">
<description action="replace">
This object represents an instance of a parameter to be used in the report header used as part of the HTTP Request-URI transmitted by the CPE to the collection server using the Request-URI in addition to the parameters required by {{bibref|TR-369|Annex A.1.1}}.
</description>
</object>
<object name="Device.LocalAgent." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
This object contains general information about the USP Agent itself. For information related to the Device that hosts the Agent, please reference the {{object|.DeviceInfo}} object.
NOTE: The Vendor Log File table ({{object|.DeviceInfo.VendorLogFile}}) details are located on the {{object|.DeviceInfo}} object.
</description>
<parameter name="EndpointID" access="readOnly" dmr:version="2.12">
<description>
The unique USP identifier for this USP Agent.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="SoftwareVersion" access="readOnly" dmr:version="2.12">
<description>
The current USP Agent software version; not the version of the overall device firmware, which is located in {{param|.DeviceInfo.SoftwareVersion}}.
To allow version comparisons, this element SHOULD be in the form of dot-delimited integers, where each successive integer represents a more minor category of variation. For example, ''3.0.21'' where the components mean: ''Major.Minor.Build''.
</description>
<syntax>
<string>
<size maxLength="64"/>
</string>
</syntax>
</parameter>
<parameter name="UpTime" access="readOnly" activeNotify="canDeny" dmr:version="2.12">
<description>
Time in {{units}} since the USP Agent was last restarted (either via a reset of the software or reboot of the underlying device).
</description>
<syntax>
<unsignedInt>
<units value="seconds"/>
</unsignedInt>
</syntax>
</parameter>
<event name="Periodic!" dmr:version="2.12">
<description>
Periodic event configured via the recipient Controller's {{param|Controller.{i}.PeriodicNotifInterval}} and {{param|Controller.{i}.PeriodicNotifTime}} parameters.
</description>
</event>
<event name="WakeUp!" dmr:version="2.12">
<description>
Wake-up event.
</description>
</event>
<event name="TransferComplete!" dmr:version="2.12">
<description>
Indicates that a file has been transferred to or from the Device. The event is sent when the transfer has either completed successfully (in which case {{param|FaultCode}} will be zero), or else has failed (in which case {{param|FaultCode}} will be non-zero and {{param|FaultString}} will give further details).
The file transfer can be requested via a USP operation or via some other mechanism. If it's requested via a USP operation {{param|Command}}, {{param|CommandKey}} and {{param|Requestor}} give further details.
</description>
<parameter name="Command" dmr:version="2.12">
<description>
The Path Name of the command that requested the transfer, or {{empty}} if the transfer was not requested via a USP operation.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="CommandKey" dmr:version="2.12">
<description>
The ''command_key'' supplied when requesting the transfer, or {{empty}} if the transfer was not requested via a USP operation.
</description>
<syntax>
<string/>
<default type="parameter" value=""/>
</syntax>
</parameter>
<parameter name="Requestor" dmr:version="2.12">
<description>
The Endpoint ID of the Controller that requested the transfer, or {{empty}} if no Controller requested it.
</description>
<syntax>
<string/>
<default type="parameter" value=""/>
</syntax>
</parameter>
<parameter name="TransferType" dmr:version="2.12">
<description>
The type (direction) of the transfer.
</description>
<syntax>
<string>
<enumeration value="Download">
<description>
Downstream transfer; to the Agent.
</description>
</enumeration>
<enumeration value="Upload">
<description>
Upstream transfer; from the Agent.
</description>
</enumeration>
</string>
<default type="parameter" value="Download"/>
</syntax>
</parameter>
<parameter name="Affected" dmr:version="2.12">
<description>
The Path Name of the Object or Object Instance that was affected by the transfer, or {{empty}} if no data model object was affected by the transfer.
</description>
<syntax>
<string/>
<default type="parameter" value=""/>
</syntax>
</parameter>
<parameter name="TransferURL" dmr:version="2.12">
<description>
The URL from or to which this transfer was performed, or {{empty}} if no such URL is available.
</description>
<syntax>
<string>
<size maxLength="1024"/>
</string>
<default type="parameter" value=""/>
</syntax>
</parameter>
<parameter name="StartTime" dmr:version="2.12">
<description>
The date and time in UTC at which the transfer was started. The Device SHOULD record this information and report it in this argument, but if this information is not available, the value of this argument MUST be set to the ''Unknown Time'' value.
</description>
<syntax>
<dateTime/>
<default type="parameter" value="0001-01-01T00:00:00Z"/>
</syntax>
</parameter>
<parameter name="CompleteTime" dmr:version="2.12">
<description>
The date and time in UTC at which the transfer was fully completed. This need only be filled in if the transfer has been fully completed. The Device SHOULD record this information and report it in this argument, but if this information is not available or the transfer has not completed, the value of this argument MUST be set to the ''Unknown Time'' value.
</description>
<syntax>
<dateTime/>
<default type="parameter" value="0001-01-01T00:00:00Z"/>
</syntax>
</parameter>
<parameter name="FaultCode" dmr:version="2.12">
<description>
The numerical fault code as defined in {{bibref|TR-369}}. A value of 0 (zero) indicates no fault.
</description>
<syntax>
<unsignedInt/>
<default type="parameter" value="0"/>
</syntax>
</parameter>
<parameter name="FaultString" dmr:version="2.12">
<description>
A human-readable text description of the fault. This field SHOULD be {{empty}} if the {{param|FaultCode}} equals 0 (zero).
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
<default type="parameter" value=""/>
</syntax>
</parameter>
</event>
<command name="AddCertificate()" dmr:version="2.12">
<description>
This command is issued to allow a Controller (with the proper permissions) to add a new certificate to {{object|#.Certificate.{i}}}. This does not automatically produce a trust relationship with the host identified by the Certificate. To produce a trust relationship, an entry is required to exist in {{param|#.Controller.{i}.Credential}} or {{param|#.ControllerTrust.Credential.{i}.Credential}} that references the new {{object|#.Certificate.{i}}} entry. The Agent will use the Serial Number and Issuer fields from the input {{param|Certificate}} to populate the {{param|#.Certificate.{i}.SerialNumber}} and {{param|#.Certificate.{i}.Issuer}} parameters. If {{object|#.Certificate}} already has an instance with the same {{param|#.Certificate.{i}.SerialNumber}} and {{param|#.Certificate.{i}.Issuer}} parameters, this command will fail. To replace an instance with the same {{param|#.Certificate.{i}.SerialNumber}} and {{param|#.Certificate.{i}.Issuer}}, the existing instance must first be deleted.
</description>
<input>
<parameter name="Alias" dmr:version="2.12">
<description>
An optional input the Controller can use to specify the {{param|##.Certificate.{i}.Alias}} value for the added entry. If provided as an input and the value already exists in {{object|##.Certificate.{i}}}, this commmand will fail.
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Certificate" mandatory="true" dmr:version="2.12">
<description>
The X.509 certificate in Privacy-enhanced Electronic Mail (PEM) {{bibref|RFC7468}} format.
</description>
<syntax>
<string>
<size maxLength="65535"/>
</string>
</syntax>
</parameter>
</input>
</command>
<parameter name="SupportedProtocols" access="readOnly" dmr:version="2.12">
<description>
USP Message Transfer Protocols supported by this USP Agent. The USP Agent MUST support at least one Protocol.
</description>
<syntax>
<list minItems="1"/>
<string>
<enumeration value="CoAP">
<description>
See {{bibref|RFC7252}}
</description>
</enumeration>
<enumeration value="WebSocket">
<description>
See {{bibref|RFC6455}}
</description>
</enumeration>
<enumeration value="STOMP">
<description>
See {{bibref|STOMP1.2}}
</description>
</enumeration>
<enumeration value="MQTT">
<description>
See {{bibref|MQTT311}} and {{bibref|MQTT50}}
</description>
</enumeration>
</string>
</syntax>
</parameter>
<parameter name="SupportedFingerprintAlgorithms" access="readOnly" dmr:version="2.12">
<description>
{{list|each entry is an algorithm for calculating firgerprints that is supported by the Agent}}
</description>
<syntax>
<list/>
<string>
<enumeration value="SHA-1">
<description>
As specified in {{bibref|RFC3174}}.
</description>
</enumeration>
<enumeration value="SHA-224">
<description>
As specified in {{bibref|RFC6234}}.
</description>
</enumeration>
<enumeration value="SHA-256">
<description>
As specified in {{bibref|RFC6234}}.
</description>
</enumeration>
<enumeration value="SHA-384">
<description>
As specified in {{bibref|RFC6234}}.
</description>
</enumeration>
<enumeration value="SHA-512">
<description>
As specified in {{bibref|RFC6234}}.
</description>
</enumeration>
</string>
</syntax>
</parameter>
<parameter name="SupportedThresholdOperator" access="readOnly" dmr:version="2.13">
<description>
{{list|each entry is a threshold operation for {{param|Threshold.{i}.ThresholdOperator}} supported by the Agent}}
</description>
<syntax>
<list/>
<string>
<enumeration value="Rise">
<description>
Parameter value changes from below the {{param|Threshold.{i}.ThresholdValue}} to a value above
</description>
</enumeration>
<enumeration value="Fall">
<description>
Parameter value changes from above the {{param|Threshold.{i}.ThresholdValue}} to a value below
</description>
</enumeration>
<enumeration value="Cross">
<description>
Parameter value either changes from above the {{param|Threshold.{i}.ThresholdValue}} to a value below or vice versa
</description>
</enumeration>
<enumeration value="Eq">
<description>
Parameter value changes from any value to the {{param|Threshold.{i}.ThresholdValue}}
</description>
</enumeration>
<enumeration value="NotEq">
<description>
Parameter value changes from the {{param|Threshold.{i}.ThresholdValue}} to any other value
</description>
</enumeration>
</string>
</syntax>
</parameter>
<parameter name="AdvertisedDeviceSubtypes" access="readWrite" dmr:version="2.12">
<description>{{list|each entry is a subtype component of the service type that is advertised for the device using mDNS as defined in {{bibref|RFC6762}}}}
</description>
<syntax>
<list/>
<string/>
</syntax>
</parameter>
<parameter name="MaxSubscriptionChangeAdoptionTime" access="readWrite" dmr:version="2.12">
<description>
The acceptable amount of time in {{units}} between the alteration of the Agent's Subscriptions (e.g. updated subscription, new subscription, removed subscription, etc.) and the notifications related to those subscriptions being delivered.
For example, if this parameter is set to 30 {{units}}, then once a Subscription has been updated, the Agent has 30 {{units}} before it needs to start delivering notifications based on the updated version of the Subscription (instead of the old version of the Subscription).
</description>
<syntax>
<unsignedInt>
<range minInclusive="5"/>
<units value="seconds"/>
</unsignedInt>
</syntax>
</parameter>
<parameter name="MTPNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="ThresholdNumberOfEntries" access="readOnly" dmr:version="2.13">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="ControllerNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="SubscriptionNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="RequestNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="CertificateNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.MTP.{i}." access="readWrite" minEntries="0" maxEntries="unbounded" numEntriesParameter="MTPNumberOfEntries" enableParameter="Enable" dmr:version="2.12">
<description>
Each instance of this table represents a MTP used by the local Agent.
</description>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enable/Disable this {{object}} instance.
If this {{object}} instance is to be disabled and currently used for communication with the requesting controller, the agent has to send the request response first, before disabling it.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="Status" access="readOnly" dmr:version="2.12">
<description>
The current operational state of the {{object}} instance.
</description>
<syntax>
<string>
<enumeration value="Up"/>
<enumeration value="Down">
<description>Value when this {{object}} instance cannot establish communication.</description>
</enumeration>
<enumeration value="Error" optional="true">
<description>Value when this {{object}} instance is misconfigured.</description>
</enumeration>
</string>
</syntax>
</parameter>
<parameter name="Protocol" access="readWrite" dmr:version="2.12">
<description>
The Message Transport Protocol (MTP) to be used for communications by a USP Endpoint.
</description>
<syntax>
<string>
<enumerationRef targetParam="Device.LocalAgent.SupportedProtocols"/>
</string>
<default type="object" value="CoAP"/>
</syntax>
</parameter>
<parameter name="EnableMDNS" access="readWrite" dmr:version="2.12">
<description>
This parameter, when {{true}}, enables the advertisement of DNS-SD services defined for this {{object}} instance using mDNS as defined in {{bibref|RFC6762}}.
This parameter cannot be set to {{true}} if there are multiple {{object}} instances with the same value of the {{param|Protocol}} parameter.
When {{true}}, the hostname advertised in the SRV record MUST be a Fully Qualified Domain Name (FQDN).
The interfaces that advertise these DNS-SD services are restriced to the set of interfaces associated with this {{object}} instance and the interfaces defined by the {{param|##.DNS.SD.AdvertisedInterfaces}} parameter.
</description>
<syntax>
<boolean/>
<default type="object" value="true"/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Threshold.{i}." access="readWrite" minEntries="0" maxEntries="unbounded" numEntriesParameter="ThresholdNumberOfEntries" enableParameter="Enable" dmr:version="2.13">
<description>
Each instance of this table represents a Threshold Event that is triggered by a threshold test.
For example:
ReferencePath: Device.Ethernet.[Enable==1].Stats.
ThresholdParam: BytesSent
ThresholdOperator: Rise
ThresholdValue: 100000
Would trigger a {{event|Triggered!}} Event whenever a value of a parameter matching Device.Ethernet.[Enable==1].Stats.BytesSent rises from below to above 100000.
</description>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.13">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.13">
<description>
Enable/Disable this {{object}} instance.
If the {{object}} instance is disabled, the {{event|Triggered!}} Event will not be invoked, even if there is a {{object|.LocalAgent.Subscription.{i}.}} instance that references it
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="OperatingMode" access="readWrite" dmr:version="2.13">
<description>
Determines whether to disable this {{object}} instance after the {{event|Triggered!}} Event has been invoked.
</description>
<syntax>
<string>
<enumeration value="Normal">
<description>
The {{object}} will generate events as long as the {{param|Enable}} is {{true}}
</description>
</enumeration>
<enumeration value="Single">
<description>
After invoking the {{event|Triggered!}} Event, the {{param|Enable}} parameter will be automatically set to {{false}}
</description>
</enumeration>
</string>
<default type="object" value="Normal"/>
</syntax>
</parameter>
<parameter name="ReferencePath" access="readWrite" dmr:version="2.13">
<description>
The combination of {{param}} and {{param|ThresholdParam}} create the reference to the parameter being checked for the threshold test.
{{param}} can be either an Object Path or a Search Path.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="ThresholdParam" access="readWrite" dmr:version="2.13">
<description>
The combination of {{param|ReferencePath}} and {{param}} create the reference to the parameter being checked for the threshold test.
{{param}} is the name of the Parameter in the context of {{param|ReferencePath}}.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="ThresholdOperator" access="readWrite" dmr:version="2.13">
<description>
The operator used for the threshold test.
</description>
<syntax>
<string>
<enumerationRef targetParam="Device.LocalAgent.SupportedThresholdOperator"/>
</string>
<default type="object" value="Rise"/>
</syntax>
</parameter>
<parameter name="ThresholdValue" access="readWrite" dmr:version="2.13">
<description>
The Value used for the threshold test.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<event name="Triggered!" dmr:version="2.13">
<description>
Triggered event requested via a {{object}} object.
When any of the {{param|##.Threshold.{i}.ThresholdParam}}s that are in the {{param|##.Threshold.{i}.ReferencePath}} change and the threshold test conditation changes from {{false}} to {{true}}, the Triggered Event will be invoked. The Triggered Event will only be eligible for retriggering if the test condition is fulfilled again.
</description>
<parameter name="ParamPath" dmr:version="2.13">
<description>
The parameter ({{param|.LocalAgent.Threshold.{i}.ReferencePath}} and {{param|.LocalAgent.Threshold.{i}.ThresholdParam}}) for which the threshold has been triggered.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="ParamValue" dmr:version="2.13">
<description>
The new ({{param|.LocalAgent.Threshold.{i}.ReferencePath}} and {{param|.LocalAgent.Threshold.{i}.ThresholdParam}}) Value.
</description>
<syntax>
<string/>
</syntax>
</parameter>
</event>
</object>
<object name="Device.LocalAgent.Controller.{i}." access="readWrite" minEntries="0" maxEntries="unbounded" numEntriesParameter="ControllerNumberOfEntries" enableParameter="Enable" dmr:version="2.12">
<description>
Each instance of this table represents a USP Controller that has access to this USP Agent.
</description>
<uniqueKey functional="true">
<parameter ref="EndpointID"/>
</uniqueKey>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="EndpointID" access="readWrite" dmr:version="2.12">
<description>
The unique USP identifier for this USP Controller.
</description>
<syntax>
<string/>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="ControllerCode" access="readWrite" dmr:version="2.12">
<description>
Information about the configuration state of an Agent as it pertains to the {{object}} instance. This is not information related to an operator's installation or usage of the protocol, that information is maintained in {{param|ProvisioningCode}}.
This parameter could be used in scenarios where the Controller needs to perform some kind of initialization or periodic configuration monitoring. For example, a Controller might perform some initial configuration of an Agent on first contact (perhaps to configure the Subscriptions). The Controller could inspect this parameter to determine the current state of the Agent's configuration, allowing the Controller to streamline the configuration process.
</description>
<syntax>
<string>
<size maxLength="128"/>
</string>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="ProvisioningCode" access="readWrite" dmr:version="2.12">
<description>
Identifying information which MAY be used by the {{object}} instance to determine {{object}} instance specific customization and provisioning parameters.
</description>
<syntax>
<string>
<size maxLength="64"/>
</string>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enable/Disable this {{object}} instance.
If the Controller instance is to be disabled, the USP Endpoint MUST terminate the MTP connection. When {{false}}, messages (notifications) are not sent to the remote endpoint represented by this {{object}} instance, and any MTP session establishment are refused.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="AssignedRole" access="readWrite" dmr:version="2.12">
<description>{{list|each entry is a Role that has been assigned to this {{object}} instance by means other than the {{param|.LocalAgent.ControllerTrust.Credential.{i}.Role}} parameter}}
</description>
<syntax>
<list/>
<string>
<pathRef refType="strong" targetParent="Device.LocalAgent.ControllerTrust.Role." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="InheritedRole" access="readOnly" dmr:version="2.12">
<description>{{list|each entry is a Role that has been assigned to this {{object}} instance from the {{param|.LocalAgent.ControllerTrust.Credential.{i}.Role}} parameter associated with the CA credential ({{param|.LocalAgent.ControllerTrust.Credential.{i}.Credential}}) used to validate the Controller certificate}}
</description>
<syntax>
<list/>
<string>
<pathRef refType="strong" targetParent="Device.LocalAgent.ControllerTrust.Role." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="Credential" access="readWrite" dmr:version="2.12">
<description>
{{nolist}}
Comma-separated list of strings, the set of certificates from {{object|#.Certificate.{i}}} that a Controller can present for use in authenticating the identity of this {{object}} instance.
</description>
<syntax>
<string>
<pathRef refType="strong" targetParent="#.Certificate." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="PeriodicNotifInterval" access="readWrite" dmr:version="2.12">
<description>
If a Periodic Event Notification {{object|#.Subscription}} instance is associated with this USP Controller, then this is the duration in {{units}} of the interval for which the USP Agent MUST attempt to issue a Periodic Notification to the USP Controller.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1"/>
<units value="seconds"/>
</unsignedInt>
</syntax>
</parameter>
<parameter name="PeriodicNotifTime" access="readWrite" dmr:version="2.12">
<description>
If a Periodic Event Notification {{object|#.Subscription}} instance is associated with this USP Controller, then this is an absolute time reference in UTC to determine when the USP Agent will issue a Periodic Notification. Each Periodic Notification MUST occur at this reference time plus or minus an integer multiple of the {{param|PeriodicNotifInterval}}.
{{param}} is used only to set the ''phase'' of the Periodic Event Notifications. The actual value of {{param}} can be arbitrarily far into the past or future.
For example, if {{param|PeriodicNotifInterval}} is 86400 (a day) and if {{param}} is set to UTC midnight on some day (in the past, present, or future) then Periodic Notifications will be sent every day at UTC midnight. These MUST begin on the very next midnight, even if {{param}} refers to a day in the future.
The Unknown Time value defined in {{bibref|TR-106|section 3.2}} indicates that no particular time reference is specified. That is, the USP Agent MAY locally choose the time reference, and needs only to adhere to the specified {{param|PeriodicNotifInterval}}.
If absolute time is not available to the USP Agent, its Periodic Notification behavior MUST be the same as if the {{param}} parameter was set to the Unknown Time value.
</description>
<syntax>
<dateTime/>
</syntax>
</parameter>
<parameter name="USPNotifRetryMinimumWaitInterval" access="readWrite" dmr:version="2.12">
<description>
This parameter is related to the retry mechanism for Notifications.
Configures the first retry wait interval, in {{units}}, as specified in {{bibref|TR-369|Section "Responses to Notifications and Notification Retry"}}.
A value of 5 corresponds to the default behavior.
The USP Agent MUST use a random value between {{param}} and ({{param}} * {{param|USPNotifRetryIntervalMultiplier}} / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1" maxInclusive="65535"/>
<units value="seconds"/>
</unsignedInt>
<default type="object" value="5"/>
</syntax>
</parameter>
<parameter name="USPNotifRetryIntervalMultiplier" access="readWrite" dmr:version="2.12">
<description>
This parameter is related to the retry mechanism for Notifications.
Configures the retry interval multiplier as specified in {{bibref|TR-369|Section "Responses to Notifications and Notification Retry"}}.
This value is expressed in units of 0.001. Hence the values of the multiplier range between 1.000 and 65.535.
A value of 2000 corresponds to the default behavior.
The USP Agent MUST use a random value between {{param|USPNotifRetryMinimumWaitInterval}} and ({{param|USPNotifRetryMinimumWaitInterval}} * {{param}} / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1000" maxInclusive="65535"/>
</unsignedInt>
<default type="object" value="2000"/>
</syntax>
</parameter>
<command name="ScheduleTimer()" dmr:version="2.12">
<description>
Schedule a ''Timer!'' event on the associated {{object}}.
</description>
<input>
<parameter name="DelaySeconds" mandatory="true" dmr:version="2.12">
<description>
The number of seconds from the time this command is invoked until the Agent initiates a Timer! Event notification (based on the associated subscriptions).
</description>
<syntax>
<unsignedInt>
<range minInclusive="1"/>
<units value="seconds"/>
</unsignedInt>
<default type="parameter" value="0"/>
</syntax>
</parameter>
</input>
</command>
<event name="Timer!" dmr:version="2.12">
<description>
Timer event requested via a ScheduleTimer() command invoked on the same Controller instance via an Operate USP message.
</description>
<parameter name="CommandKey" dmr:version="2.12">
<description>
The ''command_key'' supplied when requesting the timer event.
</description>
<syntax>
<string/>
</syntax>
</parameter>
</event>
<command name="AddMyCertificate()" dmr:version="2.12">
<description>
This command is issued to allow a Controller to add a new certificate for itself. This can be useful when the current certificate is expiring or has become compromised. This command creates a new entry in {{object|#.Certificate}} and adds a reference to the new entry to the Controller's {{param|#.Controller.{i}.Credential}}. The Agent will use the Serial Number and Issuer fields from the input {{param|Certificate}} to populate the {{param|#.Certificate.{i}.SerialNumber}} and {{param|#.Certificate.{i}.Issuer}} parameters. If {{object|#.Certificate}} already has an instance with the same {{param|#.Certificate.{i}.SerialNumber}} and {{param|#.Certificate.{i}.Issuer}} parameters, this command will fail. To replace an instance with the same {{param|#.Certificate.{i}.SerialNumber}} and {{param|#.Certificate.{i}.Issuer}}, the existing instance must first be deleted.
</description>
<input>
<parameter name="Alias" dmr:version="2.12">
<description>
An optional input the Controller can use to specify the {{param|###.Certificate.{i}.Alias}} value for the added entry. If provided as an input and the value already exists in {{object|###.Certificate.{i}}}, this commmand will fail.
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Certificate" mandatory="true" dmr:version="2.12">
<description>
The X.509 certificate in Privacy-enhanced Electronic Mail (PEM) {{bibref|RFC7468}} format.
</description>
<syntax>
<string>
<size maxLength="65535"/>
</string>
</syntax>
</parameter>
</input>
</command>
<command name="SendOnBoardRequest()" dmr:version="2.12">
<description>
Requests the Agent to send an ''OnBoardRequest'' notification to this Controller.
</description>
</command>
<parameter name="BootParameterNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>
{{numentries}}
</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="MTPNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Controller.{i}.MTP.{i}." access="readWrite" minEntries="0" maxEntries="unbounded" numEntriesParameter="MTPNumberOfEntries" enableParameter="Enable" dmr:version="2.12">
<description>
Each instance of this table represents a MTP used by this Controller.
</description>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<uniqueKey functional="true">
<parameter ref="Protocol"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enable/Disable this {{object}} instance.
If this {{object}} instance is to be disabled and currently used for communication with the requesting controller, the agent has to send the request response first, before disabling it.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="Protocol" access="readWrite" dmr:version="2.12">
<description>
The Message Transport Protocol (MTP) to be used for communications by a USP Endpoint.
</description>
<syntax>
<string>
<enumerationRef targetParam="Device.LocalAgent.SupportedProtocols"/>
</string>
<default type="object" value="CoAP"/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Controller.{i}.TransferCompletePolicy." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
The policy defined in this object determines the conditions under which the USP Agent notifies a USP Controller, that has an appropriate Subscription, of the completion of file transfers.
</description>
<parameter name="ResultTypeFilter" access="readWrite" dmr:version="2.12">
<description>
Indicates the transfer results that MUST be included when the USP Agent notifies a USP Controller of file transfers. Transfer results omitted from this list MUST NOT be included when the USP Agent notifies a USP Controller.
</description>
<syntax>
<string>
<enumeration value="Success">
<description>
The autonomous file transfer completed successfully; i.e., the {{event|##.TransferComplete!}} event's {{param|##.TransferComplete!.FaultCode}} was zero
</description>
</enumeration>
<enumeration value="Failure">
<description>
The autonomous file transfer did not complete successfully; i.e., the the {{event|##.TransferComplete!}} event's {{param|##.TransferComplete!.FaultCode}} was non-zero
</description>
</enumeration>
<enumeration value="Both">
<description>
Success and Failure
</description>
</enumeration>
</string>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Controller.{i}.BootParameter.{i}." access="readWrite" minEntries="0" maxEntries="unbounded" numEntriesParameter="BootParameterNumberOfEntries" enableParameter="Enable" dmr:version="2.12">
<description>
This table provides the Controller with the ability to dictate the Parameters that are delivered via ''Boot!'' events.
Any Parameter (identified by {{param|ParameterName}}) contained in this table MUST be included within the ''param_map'' element of the ''Boot!'' event.
</description>
<uniqueKey>
<parameter ref="ParameterName"/>
</uniqueKey>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enables or disables this {{object}}.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="ParameterName" access="readWrite" dmr:version="2.12">
<description>
A pattern that describes the Parameter(s) to be included in the ''param_map'' element of a ''Boot!'' event. Specifically, patterns with wildcards (an "*" character) in place of Instance Identifiers are allowed.
If the pattern does not match any existing Parameters at the time that the Agent is creating the ''Boot!'' event, then this {{object|#.BootParameter}} instance is not included in the ''param_map'' of the ''Boot!'' event.
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
<default type="object" value=""/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Controller.{i}.E2ESession." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
The {{object}} object represents the End to End (E2E) Session Context functionality for this {{object|##.Controller.{i}}} object instance.
</description>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enable/Disable this {{object}} instance.
When {{true}}, Session Context is used when exchanging USP Records with the remote endpoint represented by this {{object|##.Controller.{i}}} object instance.
When {{false}}, Session Context is not used when exchanging USP Records with the remote endpoint represented by this {{object|##.Controller.{i}}} object instance.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="Status" access="readOnly" dmr:version="2.12">
<description>
The current status of the Session Context.
</description>
<syntax>
<string>
<enumeration value="Up"/>
<enumeration value="Negotiating" optional="true">
<description>A new Session Context is being negotiated (i.e., a USP Record with sequence_id of 0 and session_id not previously used with this remote endpoint was sent and response has not yet been received).</description>
</enumeration>
<enumeration value="Down"/>
</string>
</syntax>
</parameter>
<parameter name="SessionExpiration" access="readWrite" dmr:version="2.12">
<description>
The duration in {{units}} in which the current Session Context will expire since the last session-related activity (e.g., Message sent or received, Session Context start or restart).
A value of 0 means session expiration is disabled.
</description>
<syntax>
<unsignedInt>
<range minInclusive="0"/>
<units value="seconds"/>
</unsignedInt>
<default type="object" value="0"/>
</syntax>
</parameter>
<parameter name="SessionRetryMinimumWaitInterval" access="readWrite" dmr:version="2.12">
<description>
Configures the first retry wait interval, in {{units}}, as specified in {{bibref|TR-369|Section "Failure Handling in the Session Context"}}.
A value of 5 corresponds to the default behavior that is described in {{bibref|TR-369}}.
The USP Agent MUST use a random value between {{param}} and ({{param}} * {{param|SessionRetryIntervalMultiplier}} / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1" maxInclusive="65535"/>
<units value="seconds"/>
</unsignedInt>
<default type="object" value="5"/>
</syntax>
</parameter>
<parameter name="SessionRetryIntervalMultiplier" access="readWrite" dmr:version="2.12">
<description>
Configures the retry interval multiplier as specified in {{bibref|TR-369|Section "Failure Handling in the Session Context"}}.
This value is expressed in units of 0.001. Hence the values of the multiplier range between 1.000 and 65.535.
A value of 2000 corresponds to the default behavior that is described in {{bibref|TR-369}}.
The USP Agent MUST use a random value between {{param|SessionRetryMinimumWaitInterval}} and ({{param|SessionRetryMinimumWaitInterval}} * {{param}} / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1000" maxInclusive="65535"/>
</unsignedInt>
<default type="object" value="2000"/>
</syntax>
</parameter>
<parameter name="CurrentRetryCount" access="readOnly" dmr:version="2.12">
<description>
The current retry count of the Session Context. When zero (0), the Session Context is not in a retry state.
</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="SegmentedPayloadChunkSize" access="readWrite" dmr:version="2.12">
<description>
The maximum size, in {{units}}, of the Record (payload(s) and headers) that can be transmitted to the remote endpoint. The smallest size, which can be configured is 512 bytes.
A value of 0 means that the segmentation function is effectively disabled.
</description>
<syntax>
<unsignedInt>
<range minInclusive="0" maxInclusive="0"/>
<range minInclusive="512"/>
<units value="bytes"/>
</unsignedInt>
<default type="object" value="0"/>
</syntax>
</parameter>
<parameter name="MaxRetransmitTries" access="readWrite" dmr:version="2.12">
<description>
The maximum times that a USP Endpoint attempts to retransmit the requested USP Record to the remote endpoint.
If the maximum tries is met for any requested USP Record, the USP Endpoint will restart the E2E Session.
A value of -1 means that the USP Endpoint will always attempt to retransmit the requested USP Record.
A value of 0 means that the USP Endpoint will not attempt to retransmit the requested USP Record and will restart the E2E Session.
</description>
<syntax>
<int>
<range minInclusive="-1" maxInclusive="10"/>
</int>
<default type="object" value="0"/>
</syntax>
</parameter>
<parameter name="PayloadSecurity" access="readWrite" dmr:version="2.12">
<description>
The security mechanism to use when exchanging the payload of the Record with the remote endpoint.
</description>
<syntax>
<string>
<enumeration value="Plaintext"/>
<enumeration value="TLS">
<description>
The payload is encrypted at the originating endpoint and decrypted at the receiving endpoint using TLS.
The procedures for using TLS in a Session Context is defined in {{bibref|TR-369}}.
</description>
</enumeration>
</string>
<default type="object" value="TLS"/>
</syntax>
</parameter>
<command name="Reset()" async="true" dmr:version="2.12">
<description>
If the {{object}} is enabled then this command will either request to start or restart a Session Context with the remote endpoint.
If the {{object}} is not enabled and there is an active Session Context then this command will terminate that Session Context with the remote endpoint.
If the {{object}} is not enabled and there is no active Session Context then this command does nothing.
</description>
</command>
</object>
<object name="Device.LocalAgent.MTP.{i}.CoAP." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
If the USP Endpoint uses the CoAP Message Transport Protocol (MTP), then this object contains CoAP specific configuration parameters.
</description>
<parameter name="Interfaces" access="readWrite" dmr:version="2.12">
<description>
{{reference|the {{object|###.IP.Interface}} object instance that this server will use as its host address to receive USP messages}}
{{empty}} will bind this server to all interfaces for this device.
</description>
<syntax>
<list/>
<string>
<pathRef refType="strong" targetParent="###.IP.Interface." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="Port" access="readWrite" dmr:version="2.12">
<description>
The port number used by the CoAP Server to receive USP messages.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1" maxInclusive="65535"/>
</unsignedInt>
<default type="object" value="5683"/>
</syntax>
</parameter>
<parameter name="Path" access="readWrite" dmr:version="2.12">
<description>
The path that is used by the CoAP Server in order to receive USP messages.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="IsEncrypted" access="readOnly" dmr:version="2.12">
<description>
This parameter represents whether or not communications that utilize this {{object}} object instance are encrypted.
</description>
<syntax>
<boolean/>
</syntax>
</parameter>
<parameter name="EnableEncryption" access="readWrite" dmr:version="2.12">
<description>
When {{true}}, encryption is used for this MTP instance.
</description>
<syntax>
<boolean/>
<default type="object" value="true"/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Controller.{i}.MTP.{i}.CoAP." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
If the USP Endpoint uses the CoAP Message Transport Protocol (MTP), then this object contains CoAP specific configuration parameters.
</description>
<parameter name="Host" access="readWrite" dmr:version="2.12">
<description>
The hostname or IP Address of the Controller's CoAP server.
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
</syntax>
</parameter>
<parameter name="Port" access="readWrite" dmr:version="2.12">
<description>
The port number used by the Controller's CoAP Server to receive USP messages.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1" maxInclusive="65535"/>
</unsignedInt>
</syntax>
</parameter>
<parameter name="Path" access="readWrite" dmr:version="2.12">
<description>
The path that is used by the Controller's CoAP Server in order to receive USP messages.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="EnableEncryption" access="readWrite" dmr:version="2.12">
<description>
When {{true}}, encryption is used as specified in {{bibref|TR-369|Section "MTP Message Encryption"}}.
</description>
<syntax>
<boolean/>
<default type="object" value="true"/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.MTP.{i}.STOMP." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
If the USP Endpoint uses the STOMP Message Transport Protocol (MTP), then this object contains STOMP Client specific configuration parameters related to how the Agent communicates with the STOMP Server.
</description>
<parameter name="Reference" access="readWrite" dmr:version="2.12">
<description>
A reference to the STOMP Connection used by this Agent when communicating via the STOMP MTP.
</description>
<syntax>
<string>
<pathRef refType="strong" targetParent=".STOMP.Connection." targetType="row"/>
</string>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="Destination" access="readWrite" dmr:version="2.12">
<description>
The STOMP destination where the Agent will be listening to incoming USP messages.
</description>
<syntax>
<string/>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="DestinationFromServer" access="readOnly" dmr:version="2.12">
<description>
The STOMP destination contained in the subscribe-dest header of the CONNECTED STOMP Frame.
If the Agent doesn't receive a subscribe-dest header in the CONNECTED STOMP Frame, then the value of this Parameter is {{empty}}.
If this parameter's value is not empty then this is the STOMP destination address for this Agent, but if the value is empty the {{param|Destination}} Parameter contains the STOMP destination address for this Agent.
</description>
<syntax>
<string/>
<default type="object" value=""/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Controller.{i}.MTP.{i}.STOMP." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
If the USP Endpoint uses the STOMP Message Transport Protocol (MTP), then this object contains STOMP Client specific configuration parameters related to how this Controller communicates with the STOMP Server.
</description>
<parameter name="Reference" access="readWrite" dmr:version="2.12">
<description>
A reference to the STOMP Connection used by this Controller when communicating via the STOMP MTP.
</description>
<syntax>
<string>
<pathRef refType="strong" targetParent=".STOMP.Connection." targetType="row"/>
</string>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="Destination" access="readWrite" dmr:version="2.12">
<description>
The STOMP destination where the Controller will be listening to incoming USP messages.
</description>
<syntax>
<string/>
<default type="object" value=""/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.MTP.{i}.WebSocket." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
If the USP Endpoint uses the WebSocket Message Transport Protocol (MTP) as a WebSocket server, then this object contains WebSocket specific configuration parameters.
</description>
<parameter name="Interfaces" access="readWrite" dmr:version="2.12">
<description>
{{reference|the {{object|###.IP.Interface}} object instance that this server will use as its host address to receive USP messages}}
{{empty}} will bind this server to all interfaces for this device.
</description>
<syntax>
<list/>
<string>
<pathRef refType="strong" targetParent="###.IP.Interface." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="Port" access="readWrite" dmr:version="2.12">
<description>
The port number used by the WebSocket Server to receive USP messages.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1" maxInclusive="65535"/>
</unsignedInt>
<default type="object" value="5683"/>
</syntax>
</parameter>
<parameter name="Path" access="readWrite" dmr:version="2.12">
<description>
The path that is used by the WebSocket Server in order to receive USP messages.
</description>
<syntax>
<string/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Controller.{i}.MTP.{i}.WebSocket." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
If the USP Endpoint uses the WebSocket Message Transport Protocol (MTP) as a WebSocket client, then this object contains WebSocket specific configuration parameters.
</description>
<parameter name="Host" access="readWrite" dmr:version="2.12">
<description>
The hostname or IP Address of the Controller's WebSocket server.
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
</syntax>
</parameter>
<parameter name="Port" access="readWrite" dmr:version="2.12">
<description>
The port number used by the Controller's WebSocket server to receive USP messages.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1" maxInclusive="65535"/>
</unsignedInt>
</syntax>
</parameter>
<parameter name="Path" access="readWrite" dmr:version="2.12">
<description>
The path that is used by the Controller's WebSocket server in order to receive USP messages.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="IsEncrypted" access="readOnly" dmr:version="2.12">
<description>
This parameter represents whether or not communications that utilize this {{object}} object instance are encrypted.
</description>
<syntax>
<boolean/>
</syntax>
</parameter>
<parameter name="KeepAliveInterval" access="readWrite" dmr:version="2.12">
<description>
The the duration in {{units}} between when WebSocket ping control frames are transmitted by the Agent to the WebSocket server for the USP Controller.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1"/>
<units value="seconds"/>
</unsignedInt>
</syntax>
</parameter>
<parameter name="CurrentRetryCount" access="readOnly" dmr:version="2.12">
<description>
The current retry count of the session. When zero (0), the session is not in a retry state.
</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="SessionRetryMinimumWaitInterval" access="readWrite" dmr:version="2.12">
<description>
Configures the first retry wait interval, in {{units}}, as specified in {{bibref|TR-369|Section "WebSocket Session Retry"}}.
The USP Agent MUST use a random value between {{param}} and ({{param}} * {{param|SessionRetryIntervalMultiplier}} / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1" maxInclusive="65535"/>
<units value="seconds"/>
</unsignedInt>
<default type="object" value="5"/>
</syntax>
</parameter>
<parameter name="SessionRetryIntervalMultiplier" access="readWrite" dmr:version="2.12">
<description>
Configures the retry interval multiplier as specified in {{bibref|TR-369|Section "WebSocket Session Retry"}}.
This value is expressed in units of 0.001. Hence the values of the multiplier range between 1.000 and 65.535.
The USP Agent MUST use a random value between {{param|SessionRetryMinimumWaitInterval}} and ({{param|SessionRetryMinimumWaitInterval}} * {{param}} / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1000" maxInclusive="65535"/>
</unsignedInt>
<default type="object" value="2000"/>
</syntax>
</parameter>
<command name="Reset()" async="true" dmr:version="2.12">
<description>
If enabled, this command will either request to start or restart an WebSocket session with the Controller.
</description>
</command>
</object>
<object name="Device.LocalAgent.MTP.{i}.MQTT." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.13">
<description>
If the USP Endpoint uses the MQTT Message Transport Protocol (MTP), then this object contains MQTT Client specific configuration parameters related to how the Agent communicates with the MQTT broker.
</description>
<parameter name="Reference" access="readWrite" dmr:version="2.13">
<description>
A reference to the MQTT Client used by this Agent when communicating via the MQTT MTP.
</description>
<syntax>
<string>
<pathRef refType="strong" targetParent=".MQTT.Client." targetType="row"/>
</string>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="ResponseTopicConfigured" access="readWrite" dmr:version="2.13">
<description>
The Agent's configured "reply to" topic. When MQTT 5.0 is being used, this value is put in the PUBLISH Response Topic property for all PUBLISH packets with a USP Record, if no Response Information (value recorded in {{param|ResponseTopicDiscovered}}) is included in the CONNACK. When MQTT 3.1.1 is being used, this value is put at the end of the PUBLISH Topic Name property (as specified in {{bibref|TR-369|Section "MQTT Binding"}}. If the value of {{param}} is not a subset (wildcarded or precise match) of any of the {{param|Reference}} {{param|.MQTT.Client.{i}.Subscription.{i}.Topic}} values the Agent MUST subscribe to this Topic. The value MUST NOT contain any wild card characters (“+”, “#”).
</description>
<syntax>
<string>
<size maxLength="65535"/>
</string>
</syntax>
</parameter>
<parameter name="ResponseTopicDiscovered" access="readOnly" dmr:version="2.13">
<description>
Duplicate of {{param|Reference}} {{param|.MQTT.Client.{i}.ResponseInformation}}. This is the value of the CONNACK Response Information property supplied by a MQTT 5.0 server and is used by a MQTT 5.0 client as the basis for the PUBLISH Response Topic property for all PUBLISH packets that expect a response. If a value is received from the MQTT 5.0 server, it will be used instead of any value configured in {{param|ResponseTopicConfigured}}.
</description>
<syntax>
<string>
<size maxLength="65535"/>
</string>
</syntax>
</parameter>
<parameter name="PublishQoS " access="readWrite" dmr:version="2.13">
<description>
The Agent MUST use this QoS value when sending a USP Record on this MTP.
If the referenced MQTT Client uses MQTT 5.0 and the MQTT server only indicates support for a QoS value in the CONNACK Maximum QoS property lower than this QoS value, the Agent MUST use the highest QoS value that is supported by the server.
</description>
<syntax>
<unsignedInt>
<range minInclusive="0" maxInclusive="2"/>
</unsignedInt>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Controller.{i}.MTP.{i}.MQTT." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.13">
<description>
If the USP Endpoint uses the MQTT Message Transport Protocol (MTP), then this object contains MQTT Client specific configuration parameters related to how this Controller communicates with the MQTT broker.
</description>
<parameter name="Reference" access="readWrite" dmr:version="2.13">
<description>
A reference to the MQTT Client used by this Controller when communicating via the MQTT MTP.
</description>
<syntax>
<string>
<pathRef refType="strong" targetParent=".MQTT.Client." targetType="row"/>
</string>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="Topic" access="readWrite" dmr:version="2.13">
<description>
The topic name the USP Controller has subscribed to, to be used for Notify messages send by the USP Agent.
</description>
<syntax>
<string>
<size maxLength="65535"/>
</string>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Subscription.{i}." access="readWrite" minEntries="0" maxEntries="unbounded"
numEntriesParameter="SubscriptionNumberOfEntries" enableParameter="Enable" dmr:version="2.12">
<description>
A Subscription dictates how a USP Agent issues USP Notification Messages to a USP Controller.
</description>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<uniqueKey functional="false">
<parameter ref="Recipient"/>
<parameter ref="ID"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enables/disables this {{object}}. A disabled entry MUST NOT be processed by the USP Agent.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="Recipient" access="readOnly" dmr:version="2.12">
<description>
{{reference|the {{object|#.Controller}} instance that will receive the Notification associated with this {{object}}|delete}}
The value of this parameter is automatically populated by the USP Agent upon {{object}} creation using the reference to the USP Controller that created the instance.
</description>
<syntax>
<string>
<pathRef refType="strong" targetParent="#.Controller." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="ID" access="readWrite" dmr:version="2.12">
<description>
Unique identifier of the {{object}} itself, which is specific to the USP Controller that creates the instance of the {{object}}.
This value is also populated in the ''subscription_id'' element of every Notification message sent from a USP Agent to a USP Controller.
</description>
<syntax>
<string>
<size maxLength="64"/>
</string>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="CreationDate" access="readOnly" dmr:version="2.12">
<description>
The date and time when this instance of {{object}} was created. This is internally used by the {{param|TimeToLive}} parameter to determine the expiration of this {{object}} instance.
The value of this parameter is automatically populated by the USP Agent upon {{object}} creation.
</description>
<syntax>
<dateTime/>
</syntax>
</parameter>
<parameter name="NotifType" access="readWrite" dmr:version="2.12">
<description>
Type of Notification message that will be sent to the USP Controller specified by {{param|Recipient}} when this {{object}} is triggered.
</description>
<syntax>
<string>
<enumeration value="ValueChange"/>
<enumeration value="ObjectCreation"/>
<enumeration value="ObjectDeletion"/>
<enumeration value="OperationComplete"/>
<enumeration value="Event"/>
</string>
</syntax>
</parameter>
<parameter name="ReferenceList" access="readWrite" dmr:version="2.13">
<description>
Each entry in the list is a Path Name, Search Path, Command reference, or Event reference that determines the element(s) of the data model that the {{object}} is applicable to.
Different values of the {{param|NotifType}} parameter will cause the {{object}} to interact with {{param}} differently. For example, an instance of {{object}} with {{enum|ValueChange|NotifType}} will utilize the value of this parameter differently than an instance with {{enum|Event|NotifType}}.
Once the value of the {{param}} is written, the value cannot be changed as the {{object}} instance is considered to be immutable. If the value of a non-empty {{param}} parameter needs to change, the {{object}} instance MUST be deleted and a new {{object}} instance created.
The following bullet points describe what is allowed as a value of {{param}} based on the different values of the {{param|NotifType}} parameter:
* ValueChange: may be either a Path Name or Search Path; if an Object Path (one type of Path Name) then it is treated like a filter match such that all supported parameters in all objects below this point will be relevant for the subscription.
* ObjectCreation: may be either a Path Name or Search Path as long as it only refers to a Multi-Instance Object; only the referenced Multi-Instance Objects will be relevant for the subscription.
* ObjectDeletion: may be either a Path Name or Search Path as long as it only refers to instances of a Multi-Instance Object; only the referenced instances (wildcard references all instances over time) of the Multi-Instance Objects will be relevant for the subscription.
* OperationComplete: may be either a Path Name, Search Path, or Command reference; if an Object Path (one type of Path Name) then it is treated like a filter match such that all supported data model commands in all objects below this point will be relevant for the subscription.
* Event: may be either a Path Name, Search Path, or Event reference; if an Object Path (one type of Path Name) then it is treated like a filter match such that all supported Events in all objects below this point will be relevant for the subscription.
</description>
<syntax>
<list/>
<string>
<size maxLength="256"/>
</string>
</syntax>
</parameter>
<parameter name="Persistent" access="readWrite" dmr:version="2.12">
<description>
Determines whether or not this {{object}} remains after the USP Agent is restarted (either via a reset of the software or reboot of the underlying device).
If {{true}}, this {{object}} stays in existence until either a Delete message removes it or the {{param|TimeToLive}} parameter expires.
If {{false}}, this {{object}} is automatically removed by the USP Agent whenever it is restarted.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="TimeToLive" access="readWrite" dmr:version="2.12">
<description>
Specifies the duration of time (in {{units}}) that this {{object}} remains in existence. After {{param}} has expired, this {{object}} instance is automatically removed by the USP Agent.
If the value of {{param}} is 0, then this parameter is ignored and this {{object}} stays in existence until either a Delete message removes it or the {{param|Persistent}} parameter determines that it needs to be removed.
If the value of {{param}} is greater than 0, then this parameter determines the length of time (from {{object}} creation) until it will be automatically removed by the USP Agent (unless the {{param|Persistent}} parameter is {{false}} and the USP Agent is restarted, in which case it will be removed before the {{param}} expiration). NOTE: This paramater does not count down as time moves forward; it will always read back with the same value that it was last set to.
If the USP Agent is incapable of maintaining absolute time then {{param}} will automatically expire if the USP Agent is restarted (either via a reset of the software or reboot of the underlying device) before {{param}} expiration.
</description>
<syntax>
<unsignedInt>
<units value="seconds"/>
</unsignedInt>
<default type="object" value="0"/>
</syntax>
</parameter>
<parameter name="NotifRetry" access="readWrite" dmr:version="2.12">
<description>
Specifies whether or not the USP Agent attempts to re-deliver the Notification in the event that it could not be delivered to the USP Controller.
When {{param}} is {{true}}, the USP Agent MUST retry the delivery of the Notification. This implies that the Notification MUST be generated with the "send_resp" flag set to {{true}} such that the USP Agent knows when the Notification has been successfully delivered. The retry attempt(s) are performed using the retry algorithm defined in {{bibref|TR-369|Section "Responses to Notifications and Notification Retry"}}.
When {{param}} is {{false}}, the USP Agent MUST NOT retry the delivery of the Notification, and SHOULD generate the notification with "send_resp" flag set to {{false}}.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="NotifExpiration" access="readWrite" dmr:version="2.12">
<description>
Specifies the duration of time (in {{units}}) that the Notification associated with this {{object}} will continue to be retried. After {{param}} has expired, if the Notification has still not been successfully delivered then the USP Agent MUST stop attempting to re-deliver the Notification.
If {{param|NotifRetry}} is set to {{false}} then this parameter is ignored.
If {{param|NotifRetry}} is set to {{true}} and the value of {{param}} is 0, then the USP Agent will attempt to re-deliver the Notification until it has been successfully delivered or until the USP Agent is restarted (either via a reset of the software or reboot of the underlying device).
If {{param|NotifRetry}} is set to {{true}} and the value of {{param}} is greater than 0, then the USP Agent will attempt to re-deliver the Notification until either it has been successfully delivered, until the length of time (from the time tha the Notification was initially attempted to be delivered) specified in this parameter expires, or until the USP Agent is restarted (either via a reset of the software or reboot of the underlying device).
NOTE: This paramater does not count down as time moves forward; it will always read back with the same value that it was last set to. </description>
<syntax>
<unsignedInt>
<units value="seconds"/>
</unsignedInt>
<default type="object" value="0"/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.Request.{i}." access="readOnly" minEntries="0" maxEntries="unbounded"
numEntriesParameter="RequestNumberOfEntries" dmr:version="2.12">
<description>
{{object}} instances are created using USP ''Operate'' messages. Only ''Operate'' messages with ''async''=''true'' will create a {{object}} instance in the data model.
When the command of the ''Operate'' completes, then this {{object}} instance is removed from this table.
</description>
<uniqueKey functional="true">
<parameter ref="Originator"/>
<parameter ref="Command"/>
<parameter ref="CommandKey"/>
</uniqueKey>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Originator" access="readOnly" dmr:version="2.12">
<description>
The USP Endpoint Identifier that originated the command.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="Command" access="readOnly" dmr:version="2.12">
<description>
The command to be executed. This parameter is a Path Name that addresses a Command in an Object or Object Instance.
The command is a result of the evaluation of the ''command'' argument of an ''Operate'' message.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="CommandKey" access="readOnly" dmr:version="2.12">
<description>
The ''command_key'' from the USP ''Operate'' message.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="Status" access="readOnly" dmr:version="2.12">
<description>
The operational status of the request to execute the command.
</description>
<syntax>
<string>
<enumeration value="Requested">
<description>The command has been requested but is currently not executing.</description>
</enumeration>
<enumeration value="Active">
<description>The command is currently executing.</description>
</enumeration>
<enumeration value="Canceling">
<description>The command has been requested to be canceled.</description>
</enumeration>
<enumeration value="Canceled">
<description>The command has successfully been canceled.</description>
</enumeration>
<enumeration value="Success">
<description>The command has successfully been completed its execution.</description>
</enumeration>
<enumeration value="Error">
<description>The command has unsuccessfully completed its execution or has unsuccessfully been canceled.</description>
</enumeration>
</string>
</syntax>
</parameter>
<command name="Cancel()" dmr:version="2.12">
<description>
Request cancelation of this {{object}}'s command.
This command completes immediately. If successful, {{param|Status}} will immediately change to {{enum|Canceling|Status}} and will change to {{enum|Canceled|Status}} when the cancelation is complete.
</description>
</command>
</object>
<object name="Device.LocalAgent.Certificate.{i}." access="readOnly" minEntries="0" maxEntries="unbounded"
numEntriesParameter="CertificateNumberOfEntries" dmr:version="2.12">
<description>
Each instance of this table represents information related to a X.509 certificate (see {{bibref|RFC5280}}) of a Controller or Certificate Authority. Instances are referenced from {{param|##.LocalAgent.Controller.{i}.Credential}} and {{param|##.LocalAgent.ControllerTrust.Credential.{i}.Credential}}.
</description>
<uniqueKey functional="true">
<parameter ref="SerialNumber"/>
<parameter ref="Issuer"/>
</uniqueKey>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enable/Disable this {{object}} instance.
</description>
<syntax>
<boolean/>
</syntax>
</parameter>
<parameter name="SerialNumber" access="readOnly" dmr:version="2.12">
<description>
The Serial Number field in an X.509 certificate, see {{bibref|RFC5280}}.
</description>
<syntax>
<string>
<size maxLength="64"/>
</string>
</syntax>
</parameter>
<parameter name="Issuer" access="readOnly" dmr:version="2.12">
<description>
The Issuer field in an X.509 certificate, see {{bibref|RFC5280}}; i.e. the Distinguished Name (DN) of the entity who has signed the certificate.
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
</syntax>
</parameter>
<command name="Delete()" dmr:version="2.12">
<description>
This command is issued to allow a Controller (with the proper permissions) to delete an entry from the {{object|##.Certificate.{i}}}. It also removes references to the Certificate in {{param|##.LocalAgent.Controller.{i}.Credential}} or {{param|##.LocalAgent.ControllerTrust.Credential.{i}.Credential}} and removes any X.509 certificate data the Agent had stored related to the entry.
</description>
</command>
<command name="GetFingerprint()" dmr:version="2.12">
<description>
This command is issued to allow a Controller to request the value of a fingerprint calculated for the specified table entry using the input {{param|FingerprintAlgorithm}}.
</description>
<input>
<parameter name="FingerprintAlgorithm" mandatory="true" dmr:version="2.12">
<description>
The algorithm to be used to calculate the requested fingerprint. The value MUST be one the Agent supports, as noted in {{param|###.SupportedFingerprintAlgorithms}}.
</description>
<syntax>
<string>
<enumeration value="SHA-1">
<description>
As specified in {{bibref|RFC3174}}.
</description>
</enumeration>
<enumeration value="SHA-224">
<description>
As specified in {{bibref|RFC6234}}.
</description>
</enumeration>
<enumeration value="SHA-256">
<description>
As specified in {{bibref|RFC6234}}.
</description>
</enumeration>
<enumeration value="SHA-384">
<description>
As specified in {{bibref|RFC6234}}.
</description>
</enumeration>
<enumeration value="SHA-512">
<description>
As specified in {{bibref|RFC6234}}.
</description>
</enumeration>
</string>
</syntax>
</parameter>
</input>
<output>
<parameter name="Fingerprint" dmr:version="2.12">
<description>
The value of the fingerprint.
</description>
<syntax>
<hexBinary>
<size maxLength="128"/>
</hexBinary>
</syntax>
</parameter>
</output>
</command>
</object>
<object name="Device.LocalAgent.ControllerTrust." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
This object contains information that an Agent applies when establishing a trust relationship with a Controller.
</description>
<parameter name="UntrustedRole" access="readWrite" dmr:version="2.12">
<description>
{{list|each entry is a Role that is associated with Controllers whose identity cannot be authenticated. The value of the {{param}} parameter is appended to the {{param|##.LocalAgent.Controller.{i}.AssignedRole}} parameter}}
In some instances, this policy is set by the Agent and cannot be modified by Controllers. If the Agent does not allow modification of this parameter, the Agent MUST respond with an error to the request to set this parameter.
</description>
<syntax>
<list maxItems="1"/>
<string>
<pathRef refType="strong" targetParent="Role." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="BannedRole" access="readWrite" dmr:version="2.12">
<description>
The Role that is associated with Controllers indicate banned access.
When assigned to a Controller or associated with an entry in the {{object|Credential}} table, this MUST be the only value of the {{param}} parameter of the {{param|##.LocalAgent.Controller.{i}.AssignedRole}} parameter.
The Agent SHOULD refuse to accept USP messages from, or send USP messages to, any Controller that has this Role.
</description>
<syntax>
<string>
<pathRef refType="strong" targetParent="Role." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="TOFUAllowed" access="readWrite" dmr:version="2.12">
<description>
When {{true}}, Agent has active policy that allows for self-signed certificates and certificates from unknown Certificate Authorities (CAs) to be trusted on first use (TOFU).
</description>
<syntax>
<boolean/>
</syntax>
</parameter>
<parameter name="TOFUInactivityTimer" access="readWrite" dmr:version="2.12">
<description>
Inactivity timer in {{units}}.
This timer is started when trust on first use (TOFU) policy is used to accept a Controller certificate. If no USP Message is received before this timer elapses, the Agent MUST tear down the MTP connection and underlying (D)TLS session.
A value of 0 means that the TOFU inactivity timer is effectively disabled.
</description>
<syntax>
<unsignedInt>
<units value="seconds"/>
</unsignedInt>
</syntax>
</parameter>
<command name="RequestChallenge()" dmr:version="2.12">
<description>
This command is issued to retrieve the instruction for the referenced challenge.
There is at most one (1) outstanding RequestChallenge for a requesting Controller.
As such, any new challenges with a different value of the {{param|ChallengeRef}} parameter are denied until a successful response to the outstanding challenge is received by the Agent or the current RequestChallenge expires.
When the value of the {{param|ChallengeRef}} parameter defined in the RequestChallenge does not exist, the Agent returns an "Invalid Value" error.
</description>
<input>
<parameter name="ChallengeRef" mandatory="true" dmr:version="2.12">
<description>
{{reference|the {{object|#.Challenge}} object instance for this request}}
</description>
<syntax>
<string>
<pathRef refType="weak" targetParent="#.Challenge." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="RequestExpiration" dmr:version="2.12">
<description>
The expiration period, in {{units}}, where the Controller request that this challenge request expire (times-out).
A value of zero indicates that the challenge request will never expire. The default is 900 {{units}}.
</description>
<syntax>
<int>
<range minInclusive="0"/>
<units value="seconds"/>
</int>
</syntax>
</parameter>
</input>
<output>
<parameter name="Instruction" dmr:version="2.12">
<description>
The value of the {{param|##.Challenge.{i}.Instruction}} parameter associated with the requested challenge in the {{param|#.Input.ChallengeRef}} parameter.
</description>
<syntax>
<base64/>
</syntax>
</parameter>
<parameter name="InstructionType" dmr:version="2.12">
<description>
The media type with a format as defined by {{bibref|RFC6838}} of the content of the {{param|Instruction}} parameter.
The allowable values of the media type are defined by the {{param|##.Challenge.{i}.InstructionType}} parameter.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="ValueType" dmr:version="2.12">
<description>
The media type with a format as defined by {{bibref|RFC6838}} of the content of the {{param|##.Challenge.{i}.Value}} parameter.
The allowable values of the media type are defined by the {{param|##.Challenge.{i}.ValueType}} parameter.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="ChallengeID" dmr:version="2.12">
<description>
The challenge identifier the Controller uses in the ChallengeResponse command to correlate this request with a response.
</description>
<syntax>
<string/>
</syntax>
</parameter>
</output>
</command>
<command name="ChallengeResponse()" dmr:version="2.12">
<description>
This command is issued to return the response of challenge.
</description>
<input>
<parameter name="ChallengeID" mandatory="true" dmr:version="2.12">
<description>
The challenge identifier the Controller uses to correlate the challenge request with a response.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="Value" mandatory="true" dmr:version="2.12">
<description>
The value of the challenge that is specific to the type of challenge. The challenge value is provided by the external party to the Controller.
</description>
<syntax>
<base64/>
</syntax>
</parameter>
</input>
</command>
<parameter name="RoleNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="CredentialNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="ChallengeNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.ControllerTrust.Role.{i}." access="readWrite" minEntries="0" maxEntries="unbounded"
numEntriesParameter="RoleNumberOfEntries" enableParameter="Enable" dmr:version="2.12">
<description>
Each instance of this table represents a Role that can be assigned to or inherited by a Controller via the Controller Trust mechanism. The Role contains a set of permissions that determine how the Controller can interact with the data model.
If multiple permission entries associated with this table contain a Target that evaluates to the same instantiated Object/Parameter for multiple Roles, then the permissions to be used are a union of the identified permissions.
</description>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<uniqueKey functional="true">
<parameter ref="Name"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enable/Disable this {{object}} instance.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="Name" access="readWrite" dmr:version="2.12">
<description>
The Role assigned to this {{object}} instance.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="PermissionNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>{{numentries}}</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.ControllerTrust.Role.{i}.Permission.{i}." access="readWrite" minEntries="0" maxEntries="unbounded"
numEntriesParameter="PermissionNumberOfEntries" enableParameter="Enable" dmr:version="2.12">
<description>
Each instance of this table represents the permissions that are extended to a set of Targets for a specified Role.
If there are multiple entries in this table for a specific Role where the Targets overlap, the permissions for the entry with the highest value takes priority over all others.
</description>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<uniqueKey functional="true">
<parameter ref="Order"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enable/Disable this {{object}} instance.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="Order" access="readWrite" dmr:version="2.12">
<description>
The order (relative priority) to use when determining the permissions for overlapping Targets that are contained within the same {{object|#.}}.
The larger value of this parameter takes priority over a permission with a smaller value (i.e., 0 has the lowest priority).
</description>
<syntax>
<unsignedInt/>
<default type="object" value="0"/>
</syntax>
</parameter>
<parameter name="Targets" access="readWrite" dmr:version="2.12">
<description>
{{list|each entry is a target to which the value of the permissions parameters are assigned}}
When an entry is a value of a Partial Path, the permissions are associated to that Object and any child Object/Parameter.
When the value of an entry is an Object instance then the permissions are associated to all Parameters of the Object instance.
When an entry is a value of a Search Path as defined in {{bibref|TR-369}} that resolves to zero or more Parameter Paths, then all Parameter Paths that result from the evaluation of the Search Path are subject to the permissions assigned by this {{object}} instance.
</description>
<syntax>
<list/>
<string>
</string>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="Param" access="readWrite" dmr:version="2.12">
<description>
The permissions of a Role for the specified Targets.
A string of 4 characters where each character represents a permission ("r" for Read, "w" for Write, "x" for Execute", and "n" for Notify).
The string is always in the same order (rwxn) and the lack of a permission is signified by a "-" character (e.g., r--n).
The following describes the meaning of the permissions for Parameter type of Targets:
# Read: Grants the capability to read the value of the Parameter via Get and read the meta-information of the Parameter via GetSupportedDM.
# Write: Grants the capability to update the value of the Parameter via Add or Set.
# Execute: Grants no capabilities; Parameters can not be executed.
# Notify: Grants the capability to use this Parameter in the ReferenceList of a ValueChange Subscription.
</description>
<syntax>
<string>
<size minLength="4" maxLength="4"/>
</string>
<default type="object" value="----"/>
</syntax>
</parameter>
<parameter name="Obj" access="readWrite" dmr:version="2.12">
<description>
The permissions of a Role for the specified Targets.
A string of 4 characters where each character represents a permission ("r" for Read, "w" for Write, "x" for Execute", and "n" for Notify).
The string is always in the same order (rwxn) and the lack of a permission is signified by a "-" character (e.g., r--n).
The following describes the meaning of the permissions for Object type of Targets:
# Read: Grants the capability to read the meta-information of the Object via GetSupportedDM.
# Write: Grants no capabilities for Static Objects. Grants the capability to create a new instance of a Multi-Instanced Object via Add (e.g. Device.LocalAgent.Controller.).
# Execute: Grants no capabilities; Objects are not executable and Commands are controlled by the CommandEventPermissions.
# Notify: Grants the capability to use this Object in the ReferenceList of an ObjectCreation (for multi-instance objects only) Subscription.
</description>
<syntax>
<string>
<size minLength="4" maxLength="4"/>
</string>
<default type="object" value="----"/>
</syntax>
</parameter>
<parameter name="InstantiatedObj" access="readWrite" dmr:version="2.12">
<description>
The permissions of a Role for the specified Targets.
A string of 4 characters where each character represents a permission ("r" for Read, "w" for Write, "x" for Execute", and "n" for Notify).
The string is always in the same order (rwxn) and the lack of a permission is signified by a "-" character (e.g., r--n).
The following describes the meaning of the permissions for Instantiated Object type of Targets:
# Read: Grants the capability to read the instance numbers and unique keys of the Instantiated Object via GetInstances and read the value of Parameters related to the Instantiated Object via a Get containing a search expression or wildcard in place of the instance identifier.
# Write: Grants the capability to remove an existing instance of an Instantiated Object via Delete (e.g. Device.LocalAgent.Controller.1.).
# Execute: Grants no capabilities; Object Instances are not executable and Commands are controlled by the CommandEventPermissions.
# Notify: Grants the capability to use this Instantiated Object in the ReferenceList of an ObjectDeletion Subscription.
</description>
<syntax>
<string>
<size minLength="4" maxLength="4"/>
</string>
<default type="object" value="----"/>
</syntax>
</parameter>
<parameter name="CommandEvent" access="readWrite" dmr:version="2.12">
<description>
The permissions of a Role for the specified Targets.
A string of 4 characters where each character represents a permission ("r" for Read, "w" for Write, "x" for Execute", and "n" for Notify).
The string is always in the same order (rwxn) and the lack of a permission is signified by a "-" character (e.g., r--n).
The following describes the meaning of the permissions for Command and Event type of Targets:
# Read: Grants the capability to read the meta-information of the Command (including input and output arguments) and Event (including arguments) via GetSupportedDM.
# Write: Grants no capabilities; Commands are executed instead of written to and Events are read only.
# Execute: Grants the capability to execute the Command via Operate, but grants no capabilities to an Event.
# Notify: Grants the capability to use this Event or Command in the ReferenceList of an Event or OperationComplete Subscription.
</description>
<syntax>
<string>
<size minLength="4" maxLength="4"/>
</string>
<default type="object" value="----"/>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.ControllerTrust.Credential.{i}." access="readWrite" minEntries="0" maxEntries="unbounded"
numEntriesParameter="CredentialNumberOfEntries" enableParameter="Enable" dmr:version="2.12">
<description>
Each instance of this table represents a trusted credential. The credential can be that of a certificate authority (CA) for a Controller whose EndpointID is unknown.
When a credential is supplied to the Agent by a Controller during authentication, the credentials in this table are used to determine if any of the supplied certificates (including those in the chain of trust) are considered "trusted".
If the Controller authenticated via an entry in this table is not previously known to the Agent, the associated Role entry is automatically applied to the Controller.
</description>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<uniqueKey functional="true">
<parameter ref="Credential"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enable/Disable this {{object}} instance.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="Role" access="readWrite" dmr:version="2.12">
<description>
{{nolist}}
Comma-separated list of strings, the (set of) Role(s) applied to a Controller authenticated through this {{object}} instance.
The roles are added to the Controller's current list of Roles by replacing the value of the {{param|###.LocalAgent.Controller.{i}.InheritedRole}} parameter.
If the Controller is already known to the Agent, with an associated Role, this parameter has no impact.
</description>
<syntax>
<list/>
<string>
<pathRef refType="strong" targetParent="#.Role." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="Credential" access="readWrite" dmr:version="2.12">
<description>
A reference to the {{object|##.Certificate.{i}}} instance for use in the authentication of certificates provided by a Controller and authorization of Controllers, and for authentication of certificates used for MTP encryption.
</description>
<syntax>
<string>
<pathRef refType="strong" targetParent="##.Certificate." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="AllowedUses" access="readWrite" dmr:version="2.12">
<description>
Identifies what usages the Certificate Authority (CA) authenticated by the associated credential is trusted to authorize.
</description>
<syntax>
<string>
<enumeration value="MTP-only">
<description>The CA can only authorize MTP (domain) connectivity, and cannot authenticate Controllers.</description>
</enumeration>
<enumeration value="MTP-and-USP">
<description>The CA can authorize MTP (domain) connectivity and authenticate Controllers.</description>
</enumeration>
<enumeration value="MTP-and-broker">
<description>The CA can authorize MTP (domain) connectivity and the presenter of this certificate is trusted to have authenticated the identity of Endpoints whose Records it transmits such that the from_id can be trusted without additional authentication. See {{bibref|TR-369|"Authentication and Authorization"}} for additional description of the Trusted Broker function.</description>
</enumeration>
</string>
</syntax>
</parameter>
</object>
<object name="Device.LocalAgent.ControllerTrust.Challenge.{i}." access="readWrite" minEntries="0" maxEntries="unbounded"
numEntriesParameter="ChallengeNumberOfEntries" enableParameter="Enable" dmr:version="2.12">
<description>
Each instance of this table represents information that is used to challenge a Controller in order to assign a Role to the Controller or to determine the authenticity of a Certificate.
The Controller requests a type of challenge from an Agent using the RequestChallenge command.
The Agent returns the value of the {{param|Instruction}} for that type of challenge to the Controller which the Controller then provides a third-party.
The third-party responds to the Instruction which the Controller then sends to the Agent using the ChallengeResponse command.
The Agent verifies the response to the Challenges and executes an implementation specific Agent logic in order to establish trust with the Controller.
This could include (but is not limited to):
*Assignment of roles to the Controller is done by appending the non-duplicate roles of the {{param|Role}} parameter to the value of the {{param|###.LocalAgent.Controller.{i}.AssignedRole}} parameter.
*Use the Controller's certificate to which the challenge response was received in order to authenticate the identity of the Controller.
</description>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Description" access="readWrite" dmr:version="2.12">
<description>
The description of this {{object}} instance.
</description>
<syntax>
<string/>
</syntax>
</parameter>
<parameter name="Role" access="readWrite" dmr:version="2.12">
<description>
{{nolist}}
Comma-separated list of strings, the (set of) role(s) appended (non-duplicate values only) to the value of the {{param|###.LocalAgent.Controller.{i}.AssignedRole}} parameter.
</description>
<syntax>
<list/>
<string>
<pathRef refType="strong" targetParent="#.Role." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enable/Disable this {{object}} instance.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="Type" access="readWrite" dmr:version="2.12">
<description>
The type of challenge that will be verified from the challenge response provided by the third-party through the Controller.
</description>
<syntax>
<string>
<enumeration value="Passphrase">
<description>The challenge uses a passphrase the third-party is expected to match.</description>
</enumeration>
</string>
</syntax>
</parameter>
<parameter name="Value" access="readWrite" dmr:version="2.12">
<description>
The value of the challenge that is specific to the type of challenge.
</description>
<syntax hidden="true">
<base64/>
</syntax>
</parameter>
<parameter name="ValueType" access="readWrite" dmr:version="2.12">
<description>
The media type with a format as defined by {{bibref|RFC6838}} of the content of the {{param|Value}} parameter.
</description>
<syntax>
<string>
<enumeration value="text/plain"/>
<enumeration value="image/jpeg"/>
</string>
</syntax>
</parameter>
<parameter name="Instruction" access="readWrite" dmr:version="2.12">
<description>
The instruction that is provided to the external party by the Controller requesting the challenge.
</description>
<syntax>
<base64/>
</syntax>
</parameter>
<parameter name="InstructionType" access="readWrite" dmr:version="2.12">
<description>
The media type with a format as defined by {{bibref|RFC6838}} of the content of the {{param|Instruction}} parameter.
</description>
<syntax>
<string>
<enumeration value="text/plain"/>
<enumeration value="image/jpeg"/>
<enumeration value="text/html"/>
</string>
</syntax>
</parameter>
<parameter name="Retries" access="readWrite" dmr:version="2.12">
<description>
The number of times a challenge is retried before the challenge procedure is terminated.
</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
<parameter name="LockoutPeriod" access="readWrite" dmr:version="2.12">
<description>
The time, in {{units}} that a Controller that has failed the challenge is locked out (based on the value of the {{param|Retries}} parameter) prior to being provided the challenge again.
A value of zero means that a LockoutPeriod doesn't apply and the challenge can be provided indefinitely.
</description>
<syntax>
<int>
<range minInclusive="0"/>
<units value="seconds"/>
</int>
<default type="object" value="30"/>
</syntax>
</parameter>
</object>
<object name="Device.STOMP." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
The {{object}} represents the STOMP capabilities of the device as described in {{bibref|TR-369}}.
</description>
<parameter name="ConnectionNumberOfEntries" access="readOnly" dmr:version="2.12">
<description>
{{numentries}}
</description>
<syntax>
<unsignedInt/>
</syntax>
</parameter>
</object>
<object name="Device.STOMP.Connection.{i}." access="readWrite" minEntries="0" maxEntries="unbounded" enableParameter="Enable"
numEntriesParameter="ConnectionNumberOfEntries" dmr:version="2.12">
<description>
The {{object}} represents a STOMP connection between the Agent and a STOMP server.
</description>
<uniqueKey>
<parameter ref="Host"/>
<parameter ref="Username"/>
<parameter ref="VirtualHost"/>
</uniqueKey>
<uniqueKey functional="false">
<parameter ref="Alias"/>
</uniqueKey>
<parameter name="Alias" access="readWrite" dmr:version="2.12">
<description>
{{datatype|expand}}
</description>
<syntax>
<dataType ref="Alias"/>
</syntax>
</parameter>
<parameter name="Enable" access="readWrite" dmr:version="2.12">
<description>
Enables or disables this {{object}}.
This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="Status" access="readOnly" dmr:version="2.12">
<description>
The current operational state of this {{object}} (see {{bibref|TR-181i2|Section 4.2.2}}). {{enum}}
When {{param|Enable}} is {{false}} then {{param}} SHOULD normally be {{enum|Disabled}} or {{enum|Error}} if there is a fault condition on the interface).
When {{param|Enable}} is changed to {{true}} then {{param}} SHOULD change to {{enum|Enabled}} if and only if the interface is able to transmit and receive PDUs; it SHOULD change to {{enum|Unknown}} if the state of the interface can not be determined for some reason.
</description>
<syntax>
<string>
<enumeration value="Enabled"/>
<enumeration value="Disabled"/>
<enumeration value="Unknown"/>
<enumeration value="Connecting"/>
<enumeration value="ServerNotPresent"/>
<enumeration value="Error_Misconfigured"/>
<enumeration value="Error_AuthenticationFailure"/>
<enumeration value="Error" optional="true"/>
</string>
</syntax>
</parameter>
<parameter name="LastChangeDate" access="readOnly" dmr:version="2.12">
<description>
The date and time at which this {{object}} entered into its current operational state.
</description>
<syntax>
<dateTime/>
</syntax>
</parameter>
<parameter name="Host" access="readWrite" dmr:version="2.12">
<description>
The hostname or IP Address of the STOMP Server.
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
</syntax>
</parameter>
<parameter name="Port" access="readWrite" dmr:version="2.12">
<description>
The port number of the STOMP Server.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1" maxInclusive="65535"/>
</unsignedInt>
<default type="object" value="61613"/>
</syntax>
</parameter>
<parameter name="Username" access="readWrite" dmr:version="2.12">
<description>
The username part of the credentials to be used when authenticating this {{object}} during connection establishment with the STOMP Server.
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
</syntax>
</parameter>
<parameter name="Password" access="readWrite" dmr:version="2.12">
<description>
The password part of the credentials to be used when authenticating this {{object}} during connection establishment with the STOMP Server.
</description>
<syntax hidden="true">
<string>
<size maxLength="256"/>
</string>
</syntax>
</parameter>
<parameter name="VirtualHost" access="readWrite" dmr:version="2.12">
<description>
The Virtual Host to use when establishing the connection.
Some STOMP Server implementations utilize virtual hosts to place a context around credentials, permissions, and internal resources.
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
<default type="object" value=""/>
</syntax>
</parameter>
<parameter name="EnableHeartbeats" access="readWrite" dmr:version="2.12">
<description>
Enable or disable the STOMP Heart-beating mechanism as described in STOMP (for this {{object}}).
When the STOMP Heart-beat mechanism is enabled, {{param|OutgoingHeartbeat}} and {{param|IncomingHeartbeat}} determine how the heart-beat header within the CONNECT frame is formatted.
When the STOMP Heart-beat mechanism is disabled, {{param|OutgoingHeartbeat}} and {{param|IncomingHeartbeat}} are ignored and the CONNECT frame MUST NOT contain a heart-beat header element.
Any changes to this parameter will not take effect until the next connection.
</description>
<syntax>
<boolean/>
<default type="object" value="false"/>
</syntax>
</parameter>
<parameter name="OutgoingHeartbeat" access="readWrite" dmr:version="2.12">
<description>
Represents the Outgoing heart-beat timing of the STOMP Heart-beating mechanism as described in STOMP (for this {{object}}).
The Outgoing heart-beat represents what the sender of the frame can do. A value of 0 means that it cannot send heart-beats.
Any changes to this parameter will not take effect until the next connection.
</description>
<syntax>
<unsignedInt>
<units value="milliseconds"/>
</unsignedInt>
<default type="object" value="0"/>
</syntax>
</parameter>
<parameter name="IncomingHeartbeat" access="readWrite" dmr:version="2.12">
<description>
Represents the Incoming heart-beat timing of the STOMP Heart-beating mechanism as described in STOMP (for this {{object}}).
The Incoming heart-beat represents what the sender of the frame would like to get. A value of 0 means that it does not want to receive heart-beats.
Any changes to this parameter will not take effect until the next connection.
</description>
<syntax>
<unsignedInt>
<units value="milliseconds"/>
</unsignedInt>
<default type="object" value="0"/>
</syntax>
</parameter>
<parameter name="ServerRetryInitialInterval" access="readWrite" dmr:version="2.12">
<description>
The maximum first reconnection wait interval, in {{units}}, as specified in {{bibref|TR-369}}.
The Device MUST use a random value between ''0'' and {{param}} as the first reconnection wait interval.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1" maxInclusive="65535"/>
<units value="seconds"/>
</unsignedInt>
<default type="object" value="60"/>
</syntax>
</parameter>
<parameter name="ServerRetryIntervalMultiplier" access="readWrite" dmr:version="2.12">
<description>
The reconnection interval multiplier as specified in {{bibref|TR-369}}. This value is expressed in units of 0.001. Hence the values of the multiplier range between 1.000 and 65.535.
For the ''n''th reconnection wait interval, the Device MUST use a random value, in ''seconds'', between ''0'' and {{param|ServerRetryInitialInterval}} * ({{param}} / 1000) ** (''n'' - ''1'').
The server retry mechanism reaches its upper limit at 10 reconnection attempts. Meaning, that if the number of reconnection attempts exceeds 10, then the Device MUST use a random value, in seconds, between 0 and ServerRetryInitialInterval * (ServerRetryIntervalMultiplier / 1000) ** (10 - 1).
</description>
<syntax>
<unsignedInt>
<range minInclusive="1000" maxInclusive="65535"/>
</unsignedInt>
<default type="object" value="2000"/>
</syntax>
</parameter>
<parameter name="ServerRetryMaxInterval" access="readWrite" dmr:version="2.12">
<description>
The maximum reconnection wait interval, in {{units}}.
If the ''n''th reconnection wait interval calculated from {{param|ServerRetryInitialInterval}} and {{param|ServerRetryIntervalMultiplier}} exceeds the value of this parameter, then the Agent MUST use the value of this parameter as the next reconnection wait interval.
</description>
<syntax>
<unsignedInt>
<range minInclusive="1"/>
<units value="seconds"/>
</unsignedInt>
<default type="object" value="30720"/>
</syntax>
</parameter>
<parameter name="IsEncrypted" access="readOnly" dmr:version="2.12">
<description>
This parameter represents whether or not communications that utilize this {{object}} object instance are encrypted.
</description>
<syntax>
<boolean/>
</syntax>
</parameter>
</object>
<object name="Device.Standby." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.12">
<description>
Capabilities of a Device as it pertains to entering a standby state.
</description>
<parameter name="NetworkAware" access="readOnly" dmr:version="2.12">
<description>
Indicates that the device is capable of maintaining a network connection and responding to communications via the network connection while in a standby state.
</description>
<syntax>
<boolean/>
</syntax>
</parameter>
<parameter name="TimerAware" access="readOnly" dmr:version="2.12">
<description>
Indicates that the device is capable of maintaining and responding to timers while in a standby state.
</description>
<syntax>
<boolean/>
</syntax>
</parameter>
</object>
<object name="Device.SoftwareModules." access="readOnly" minEntries="1" maxEntries="1" dmr:version="2.1">
<description>
Top level object for dynamically managed software applications.
</description>
<command name="InstallDU()" async="true" dmr:version="2.12">
<description>
Install one or more Deployment Units (DUs) to the associated {{object}}.
</description>
<input>
<parameter name="URL" mandatory="true" dmr:version="2.12">
<description>
The URL, as defined in {{bibref|RFC3986}}, that specifies the location of the DU to be installed.
The URL MUST NOT include the "userinfo" component, as defined in {{bibref|RFC3986}}.
HTTP and HTTPS transports MUST be supported. Other optional transports MAY be supported.
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
</syntax>
</parameter>
<parameter name="UUID" dmr:version="2.12">
<description>
The UUID (see {{bibref|RFC4122}}) of the DU to be installed.
If this parameter is {{empty}} the device MUST generate the UUID based on the rules defined in {{bibref|RFC4122}} and {{bibref|TR-181i2|Annex C}}.
</description>
<syntax>
<dataType ref="UUID"/>
</syntax>
</parameter>
<parameter name="Username" dmr:version="2.12">
<description>
Username to be used by the device to authenticate with the file server, if authentication is required.
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
<default type="parameter" value=""/>
</syntax>
</parameter>
<parameter name="Password" dmr:version="2.12">
<description>
Password to be used by the device to authenticate with the file server, if authentication is required.
</description>
<syntax>
<string>
<size maxLength="256"/>
</string>
<default type="parameter" value=""/>
</syntax>
</parameter>
<parameter name="ExecutionEnvRef" dmr:version="2.12">
<description>
A reference to the Execution Environment upon which the DU to be installed.
If {{empty}} the device MUST choose the Execution Environment to use.
</description>
<syntax>
<string>
<size maxLength="256"/>
<pathRef refType="weak" targetParent=".SoftwareModules.ExecutionUnit." targetType="row"/>
</string>
</syntax>
</parameter>
</input>
</command>
<event name="DUStateChange!" dmr:version="2.12">
<description>
This event informs a Controller of the completion (successful or unsuccessful) of a DU state change.
When used, this event MUST be issued after the device has completed any file transfers and carried out all operations related to the DU State Change.
This event MAY contain the results from multiple DU state changes; it is implementation specific how the device chooses to aggregate the DU state changes, although the device MUST notify the Controller of any DU state changes within 24 hours of the time the operations were completed by the device.
The device SHOULD make every attempt to aggregate, as much as possible, the DU State Change notifications to the Controller in the interest of scalability.
</description>
<parameter name="UUID" dmr:version="2.12">
<description>
The UUID as defined in {{bibref|RFC4122}} of the DU that affected by the state change.
</description>
<syntax>
<dataType ref="UUID"/>
</syntax>
</parameter>
<parameter name="DeploymentUnitRef" dmr:version="2.12">
<description>
A reference to the DU that was affected by the state change.
</description>
<syntax>
<string>
<pathRef refType="weak" targetParent=".SoftwareModules.DeploymentUnit." targetType="row"/>
</string>
</syntax>
</parameter>
<parameter name="Version" dmr:version="2.12">
<description>
In the case of an Install, this will be the version of the DU created. In the case of an Update, it will be the updated version of the DU. In the case of an Uninstall, it will be the version of the uninstalled DU.
This MUST match the {{param|.SoftwareModules.DeploymentUnit.{i}.Version}} Parameter contained within the instance of the DeploymentUnit that is contained within the {{param|DeploymentUnitRef}} argument.
</description>
<syntax>
<string>
<size maxLength="32"/>
</string>
</syntax>
</parameter>
<parameter name="CurrentState" dmr:version="2.12">
<description>
The current state of the created DU.
</description>
<syntax>
<string>
<enumeration value="Installed">
<description>
The DU is in an Installed state due to one of the following: successful Install, successful Update, failed Update, or failed Uninstall. In the case of a failed Update or failed Uninstall the Fault argument will contain an explanation of the failure.
</description>
</enumeration>
<enumeration value="UnInstalled">
<description>
The DU was successfully uninstalled from the device.
</description>
</enumeration>
<enumeration value="Failed">
<description>
The DU could not be installed in which case a DU instance MUST NOT be created in the Data Model.
</description>
</enumeration>
</string>
</syntax>
</parameter>
<parameter name="Resolved" dmr:version="2.12">
<description>
Whether or not the DU operation resolved all of its dependencies.
In the case of a successful Uninstall, this value is meaningless and should be {{true}}.
</description>
<syntax>
<boolean/>
</syntax>
</parameter>
<parameter name="ExecutionUnitRefList" dmr:version="2.12">
<description>
The Execution Units affected by this operation.
In the case of an Install, this will be the list of EUs that were created as a result of the DU’s installation.
In the case an Update, this will be the list of all EUs currently associated with the updated DU, including those that were created through the initial DU installation and any updates that had already occurred but not including any EUs that no longer exist on the device because of this or previous updates.
In the case of an Uninstall, this will be the list of the EUs removed from the device due to the DU being removed.
</description>
<syntax>
<list/>