<?xml version="1.0" encoding="UTF-8"?>
<!--
FILE INFORMATION

OMA Permanent Document
   File: TBD
   Path:

OMNA LwM2M Registry
   File: 3602.xml
   Path: https://github.com/OpenMobileAlliance/lwm2m-registry


NORMATIVE INFORMATION

  Information about this file can be found in the latest revision of

  TBD

  This is available at http://www.openmobilealliance.org/

  Send comments to https://github.com/OpenMobileAlliance/OMA_LwM2M_for_Developers/issues

CHANGE HISTORY

See https://github.com/OpenMobileAlliance/app_messaging

LEGAL DISCLAIMER

Copyright 2026, Contributors to the Grid Edge Interoperability &
Security Alliance (GEISA), a Series of LF Projects, 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 OMA IPR Policy for patent licensing terms:
https://www.omaspecworks.org/about/intellectual-property-rights/

-->
<LWM2M xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.openmobilealliance.org/tech/profiles/LWM2M-v1_1.xsd">
  <Object ObjectType="MODefinition">
    <Name>AppAccounting</Name>
    <Description1><![CDATA[
This LwM2M Object provides operations-facing application accounting and policy summary state for an application or application accounting scope. It exposes current-period usage counters, quotas and limits, throttle, block, or disabled state, selected enforcement evidence, operator or EMS/ADM action resources, and application or accounting-scope operational monitoring.

Multiple AppAccounting object instances may exist for the same AppID, Accounting Class, and Accounting Scope to expose different accounting windows such as configured collection period, daily, since-reboot, rolling-window, lifetime, or operator-defined accounting.

Resource identifiers are intentionally grouped with gaps/reserved between logical sections to allow future GEISA-defined resources to be added near related identity, scope, accounting-window, counter, state, action, and evidence resources without renumbering existing resources. Undefined resource identifiers in those gaps are not implemented resources.

Usage counters remain relevant even when the effective policy is unlimited; unlimited policy means no active quota exhaustion is expected, not that observed usage is irrelevant.

Detailed behavioral application issues, platform-detected anomalies, configuration-state problems, platform health signals, and policy evaluation details are surfaced through platform messaging, platform monitoring or configuration resources, and durable event, log, or message history where supported.

This object may expose selected summary state derived from those sources for ease of operations monitoring, but it is not the definitive source for all application behavioral detail.
]]></Description1>
    <ObjectID>3602</ObjectID>
    <ObjectURN>urn:oma:lwm2m:ext:3602:1.1</ObjectURN>
    <LWM2MVersion>1.1</LWM2MVersion>
    <ObjectVersion>1.1</ObjectVersion>
    <MultipleInstances>Multiple</MultipleInstances>
    <Mandatory>Optional</Mandatory>
    <Resources>
      <Item ID="4050">
        <Name>AppID</Name>
        <Operations>RW</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration>2 bytes</RangeEnumeration>
        <Units/>
        <Description><![CDATA[A unique local-scope identifier for distinguishing edge applications within a specific deployment environment.]]></Description>
      </Item>
      <Item ID="4051">
        <Name>Software Instance</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Objlnk</Type>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[Object link to the corresponding LwM2M Software Management /9 instance for the installed application. Together with AppID, this link correlates the logical application identity with the specific installed software instance on this endpoint.]]></Description>
      </Item>
      <Item ID="10">
        <Name>Accounting Class</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Integer</Type>
        <RangeEnumeration>0..255</RangeEnumeration>
        <Units/>
        <Description><![CDATA[
Identifies the communication class accounted by this object instance.

0 = Unspecified
The accounting class is not specified or is not currently classified.
1 = App Messages - GEISA API
Application message traffic mediated by the GEISA API and ADM app-messaging path.
2 = Direct IP - Operator Network
Application direct IP communication using an operator, utility, FAN, WAN, private, or otherwise managed off-device network path.
3 = Direct IP - Internet
Application direct IP communication using a public internet or other non-operator off-device network path.
4 = Direct IP - Local Network
Application direct IP communication using a local device, HAN, LAN, or other local network path.
5..127 = Reserved for future GEISA-defined accounting classes.
128..255 = Reserved for vendor-specific or operator-specific accounting classes.
]]></Description>
      </Item>
      <Item ID="11">
        <Name>Accounting Scope</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Integer</Type>
        <RangeEnumeration>0..255</RangeEnumeration>
        <Units/>
        <Description><![CDATA[
Boundary or scope for accounting associated with resource 4050 AppID.

0 = Unspecified
1 = Application
2 = Application instance
3 = Interface or bearer
4 = Network class
5 = Platform policy class
6..127 = Reserved for future GEISA-defined accounting scopes
128..255 = Reserved for vendor-specific or operator-specific accounting scopes
This resource defines the scope boundary for the counters, limits, quota state, throttle, block, or disabled state, and enforcement or evidence summaries represented by this accounting instance.
]]></Description>
      </Item>
      <Item ID="12">
        <Name>Scope Label</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type>String</Type>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Optional human-readable or operator-assigned label describing the accounting scope when Accounting Scope is more specific than the application identified by resource 4050 AppID. Examples include an interface name, bearer label, network class, or operator policy bucket identifier.
]]></Description>
      </Item>
      <Item ID="20">
        <Name>Collection Period</Name>
        <Operations>RW</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>String</Type>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
A string in RFC 5545 Recurrence Rule (RRule) format defining the configured recurring accounting period when the Accounting Window Type represents a configured or recurring period (e.g., "RRULE:FREQ=MINUTELY;INTERVAL=60").

Counters are interpreted within the active collection period and reset or roll over according to the accounting policy or profile.

For non-recurring windows such as Since reboot or Lifetime, Period Start Time identifies the beginning of the accounting window and Next Reset Time may be unavailable.
]]></Description>
      </Item>
      <Item ID="21">
        <Name>Accounting Window Type</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration>0..255</RangeEnumeration>
        <Units/>
        <Description><![CDATA[
Identifies the accounting window represented by this AppAccounting object instance.
Multiple AppAccounting instances may exist for the same AppID, Accounting Class, and Accounting Scope to expose different accounting windows such as configured collection period, daily, since-reboot, rolling-window, lifetime, or operator-defined accounting.
0 = Unspecified
1 = Configured collection period
2 = Daily
3 = Since reboot
4 = Rolling window
5 = Lifetime
6 = Operator-defined
7..127 = Reserved for future GEISA-defined accounting window types
128..255 = Reserved for vendor-specific or operator-specific accounting window types
]]></Description>
      </Item>
      <Item ID="30">
        <Name>Maximum Bytes</Name>
        <Operations>RW</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>B</Units>
        <Description><![CDATA[
Hard limit maximum number of bytes allowed per collection period for the application or accounting scope represented by this object instance.

Above this limit, the platform may initiate throttling or blocking without waiting for a Server command, subject to local policy and implementation support.
]]></Description>
      </Item>
      <Item ID="31">
        <Name>Total Bytes</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>B</Units>
        <Description><![CDATA[
Total number of bytes transmitted plus received so far during the current collection period for the accounting class and scope represented by this object instance.
Total bytes are derived from TX Bytes plus RX Bytes for the modeled accounting scope.
]]></Description>
      </Item>
      <Item ID="32">
        <Name>Bytes Remaining</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>B</Units>
        <Description><![CDATA[
Bytes remaining in the active collection or quota period for the accounting class and scope represented by this object instance.
A value of zero indicates that the configured byte allowance has been exhausted or no bytes remain under the current policy.
]]></Description>
      </Item>
      <Item ID="33">
        <Name>TX Bytes</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>B</Units>
        <Description><![CDATA[
Number of bytes transmitted so far during the current collection period for the accounting class and scope represented by this object instance.
TX bytes represent usage emitted by the application or accounting scope.
]]></Description>
      </Item>
      <Item ID="34">
        <Name>RX Bytes</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>B</Units>
        <Description><![CDATA[
Number of bytes received so far during the current collection period for the accounting class and scope represented by this object instance.
RX bytes represent usage directed to the application or accounting scope when an authoritative inbound accounting source exists.
]]></Description>
      </Item>
      <Item ID="35">
        <Name>TX Packets</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>count</Units>
        <Description><![CDATA[
Number of packets transmitted so far during the current collection period for the accounting class and scope represented by this object instance. Packet counters are meaningful only for profiles or accounting classes with authoritative packet-level accounting.
]]></Description>
      </Item>
      <Item ID="36">
        <Name>RX Packets</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>count</Units>
        <Description><![CDATA[
Number of packets received so far during the current collection period for the accounting class and scope represented by this object instance. Packet counters are meaningful only for profiles or accounting classes with authoritative packet-level accounting.
]]></Description>
      </Item>
      <Item ID="40">
        <Name>Message Limit</Name>
        <Operations>RW</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>count</Units>
        <Description><![CDATA[
Configured message count limit for the active collection or quota period. This limit applies to messages accounted by the class and scope policy represented by this object instance, such as app messaging, platform-mediated communication, direct communication, local platform API use, service-flow communication, or other ADM or operator-defined accounting categories.
It does not imply that all LwM2M protocol exchanges are counted unless policy explicitly defines that behavior.
]]></Description>
      </Item>
      <Item ID="41">
        <Name>Total Messages</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>count</Units>
        <Description><![CDATA[
Total number of messages transmitted plus received so far during the current collection period for messages accounted by the class and scope policy represented by this object instance.
]]></Description>
      </Item>
      <Item ID="42">
        <Name>Messages Remaining</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>count</Units>
        <Description><![CDATA[
Messages remaining in the active collection or quota period for messages accounted by the class and scope policy represented by this object instance.

This value may be unavailable when no authoritative quota, limit, or policy source exists.
]]></Description>
      </Item>
      <Item ID="43">
        <Name>TX Messages</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>count</Units>
        <Description><![CDATA[
Number of messages transmitted so far during the current collection period for messages accounted by the class and scope policy represented by this object instance. This can include app messaging, platform-mediated communication, direct communication, local platform API use, service-flow communication, or other ADM or operator-defined accounting categories.
It does not imply that all LwM2M protocol exchanges are counted unless policy explicitly defines that behavior.
]]></Description>
      </Item>
      <Item ID="44">
        <Name>RX Messages</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>count</Units>
        <Description><![CDATA[
Number of messages received so far during the current collection period for messages accounted by the class and scope policy represented by this object instance.
RX message counts require an authoritative inbound accounting source and may be unavailable rather than inferred.
]]></Description>
      </Item>
      <Item ID="50">
        <Name>Volume State</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Integer</Type>
        <RangeEnumeration>0..255</RangeEnumeration>
        <Units/>
        <Description><![CDATA[
Current quota or policy summary state for the accounting class and scope represented by this instance.
0 = Unknown
1 = Normal or available
2 = Unlimited
3 = Exhausted
4 = Throttled
5 = Blocked or policy restricted
6..127 = Reserved for future GEISA-defined volume states
128..255 = Reserved for vendor-specific or operator-specific volume states
]]></Description>
      </Item>
      <Item ID="51">
        <Name>Throttle State</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Integer</Type>
        <RangeEnumeration>0..255</RangeEnumeration>
        <Units/>
        <Description><![CDATA[
Current throttling and blocking state for this application accounting scope.
0 = Unknown
The platform cannot currently determine the throttling or blocking state for this accounting scope.
1 = Not Throttled
Communication for this accounting scope is currently permitted and is not being rate-limited by the accounting/throttling function. Throttling policy may still be configured and enabled, and this state may change to Throttled or Blocked if limits, policy, or resource conditions require it.
2 = Throttled
Communication for this accounting scope is currently permitted but is rate-limited, delayed, reduced, or otherwise constrained by the accounting/throttling function.
3 = Blocked
Communication for this accounting scope is currently denied. Messages or traffic subject to this accounting scope are not permitted to be sent until the blocked condition clears or is administratively changed.
4 = Throttling Disabled
The accounting/throttling function is disabled, not configured, or not applicable for this accounting scope. This is distinct from Not Throttled. Not Throttled means throttling is available or may be enabled for this scope but is not currently active. Throttling Disabled means the throttling function itself is not available, not enabled, or not applicable for this scope. Stop Throttling is not used to enter this state.
5..127 = Reserved for future GEISA-defined throttle states.
128..255 = Reserved for vendor-specific or operator-specific throttle states.
]]></Description>
      </Item>
      <Item ID="52">
        <Name>Accounting Reason Code</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Integer</Type>
        <RangeEnumeration>0..255</RangeEnumeration>
        <Units/>
        <Description><![CDATA[
Primary reason associated with the current accounting, quota, throttle, block, disabled, or other constrained state of this application accounting scope:
0 = Unspecified
1 = None
2 = Other
3 = Byte quota exceeded
4 = Message quota exceeded
5 = Metered limit reached
6 = Zero policy
7 = Rate limited
8 = Blocked by operator policy
9 = Constrained by QoS policy
10 = Platform resource protection
11 = Security or policy violation
12 = Authorization or permission denied
13 = Network unavailable
14 = Connection disabled
15 = Connection down
16 = Dependency unavailable
17 = Application unavailable or unhealthy
18 = Application shutting down
19 = Application requested restart
20 = Application requested termination
21 = Administratively disabled
22..127 = Reserved for future GEISA-defined accounting reason codes
128..255 = Reserved for vendor-specific or operator-specific accounting reason codes

None means no accounting, quota, throttle, block, disabled, or other constrained reason applies. Unspecified means no standardized reason was supplied. Other requires Reason Detail. Implementations SHOULD choose the most specific applicable reason. Implementations SHOULD NOT use a generic reason when a more specific defined reason is known.
]]></Description>
      </Item>
      <Item ID="53">
        <Name>Throttle Rate Limit</Name>
        <Operations>RW</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>B/s</Units>
        <Description><![CDATA[
Configured byte-per-second rate limit applied while this accounting instance is throttled.
A value of zero indicates that communication covered by this accounting instance or scope is blocked rather than rate-limited.
This value may be unavailable when no policy-backed throttle source exists.
Disabled state is represented by Throttle State and Accounting Reason Code where applicable.
]]></Description>
      </Item>
      <Item ID="54">
        <Name>Reason Detail</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type>String</Type>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Short human-readable diagnostic detail associated with Accounting Reason Code. Consumers SHALL NOT parse or depend on it for interoperable behavior. This Resource SHALL be present when Accounting Reason Code is Other and MAY be present for any other reason when useful. It is not a log field and does not replace a defined reason code.
]]></Description>
      </Item>
      <Item ID="60">
        <Name>Start Throttling</Name>
        <Operations>E</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type/>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Apply constrained or rate-limited behavior for the application or accounting scope represented by this object instance.
Platforms may deny this operation or leave it unsupported according to operator policy, authorization, implementation profile, or lack of an enforcement path.
]]></Description>
      </Item>
      <Item ID="61">
        <Name>Stop Throttling</Name>
        <Operations>E</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type/>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Clear an explicit active throttle or rate-limit condition for the application or accounting scope represented by this object instance.
This operation does not disable throttling support, remove throttling policy, or change the scope to Throttling Disabled. If the explicit throttle condition is cleared and no other quota, policy, security, platform resource, QoS, network, or administrative condition applies, the resulting Throttle State should become Not Throttled.
If another active condition still requires throttling or blocking, the platform may keep or move the Throttle State to Throttled or Blocked and should expose the applicable Throttle Reason.
Platforms may deny this operation or leave it unsupported according to operator policy, authorization, implementation profile, or lack of an enforcement path.
]]></Description>
      </Item>
      <Item ID="62">
        <Name>Block Communication</Name>
        <Operations>E</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type/>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Block communication covered by this accounting instance and scope.
This operation remains distinct from Start Throttling and applies only to the communication represented by this accounting instance unless the accounting scope explicitly covers a broader boundary.
Platforms may deny this operation or leave it unsupported according to operator policy, authorization, implementation profile, or lack of an accounting or enforcement path.
]]></Description>
      </Item>
      <Item ID="63">
        <Name>Unblock Communication</Name>
        <Operations>E</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type/>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Remove an explicit communication block for the communication covered by this accounting instance and scope.
This operation remains distinct from Stop Throttling and applies only to the communication represented by this accounting instance unless the accounting scope explicitly covers a broader boundary.
Platforms may deny this operation or leave it unsupported according to operator policy, authorization, implementation profile, or lack of an accounting or enforcement path.
]]></Description>
      </Item>
      <Item ID="64">
        <Name>Reset Accounting Period</Name>
        <Operations>E</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type/>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Reset current-period counters for the accounting class and scope represented by this object instance and start a new collection period.
Platforms may deny this operation or leave it unsupported according to operator policy, authorization, implementation profile, or lack of an accounting or enforcement path.
]]></Description>
      </Item>
      <Item ID="70">
        <Name>Period Start Time</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Time</Type>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Start time for the active collection period represented by the counters in this accounting instance.
The value is encoded as LwM2M Time using Unix epoch time in seconds. The encoded value does not carry timezone metadata. Device-local accounting period boundaries are interpreted using /3/0/15 Timezone, with fallback to /3/0/14 UTC Offset when Timezone is unavailable, unless a more specific ADM or EMS accounting policy applies.
For non-recurring windows such as Since reboot or Lifetime, this resource identifies the beginning of the accounting window.
]]></Description>
      </Item>
      <Item ID="71">
        <Name>Next Reset Time</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type>Time</Type>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Time at which current-period counters and remaining quota values are expected to reset for this accounting instance.
The value is encoded as LwM2M Time using Unix epoch seconds. The encoded value does not carry timezone metadata.
Device-local accounting period boundaries are interpreted using /3/0/15 Timezone, with fallback to /3/0/14 UTC Offset when Timezone is unavailable, unless a more specific ADM or EMS accounting policy applies.
For non-recurring windows such as Since reboot or Lifetime, this resource may be unavailable.
]]></Description>
      </Item>
      <Item ID="72">
        <Name>Last Update Timestamp</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Time</Type>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Time at which the platform last generated, refreshed, or updated the
accounting snapshot used to populate this object instance.
The value is encoded as LwM2M Time using Unix epoch seconds.
The encoded value does not carry timezone metadata.
Device-local accounting period boundaries are interpreted using /3/0/15 Timezone, with fallback to /3/0/14 UTC Offset when Timezone is unavailable, unless a more specific ADM or EMS accounting policy applies.
This timestamp does not by itself prove that a new message, quota event, throttle transition, disabled transition, or policy violation occurred.
]]></Description>
      </Item>
      <Item ID="73">
        <Name>Last Accounting State Transition Time</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Mandatory</Mandatory>
        <Type>Time</Type>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Time at which Volume State, Throttle State, or Accounting Reason Code most recently changed. When the Object Instance is initialized, this Resource SHALL represent the time at which the initial values of those Resources were established. This is not limited to the time at which throttling began. The value is encoded as LwM2M Time using Unix epoch seconds. The encoded value does not carry timezone metadata. Device-local accounting period boundaries are interpreted using /3/0/15 Timezone, with fallback to /3/0/14 UTC Offset when Timezone is unavailable, unless a more specific ADM or EMS accounting policy applies. This Resource SHALL always report a valid time at which the current state was established.
]]></Description>
      </Item>
      <Item ID="74">
        <Name>Last Quota Exhausted Timestamp</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type>Time</Type>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Selected evidence summary resource for operations monitoring. This value records the last known time a quota or limit was exhausted for this scope.
It may be unavailable when no authoritative quota, limit, or policy source exists.
The value is encoded as LwM2M Time using Unix epoch seconds.
The encoded value does not carry timezone metadata. Device-local accounting period boundaries are interpreted using /3/0/15 Timezone, with fallback to /3/0/14 UTC Offset when Timezone is unavailable, unless a more specific ADM or EMS accounting policy applies.
]]></Description>
      </Item>
      <Item ID="75">
        <Name>Last Policy Violation Timestamp</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type>Time</Type>
        <RangeEnumeration/>
        <Units/>
        <Description><![CDATA[
Selected evidence summary resource for operations monitoring. This value records the last known time an accounting, communication, security, QoS, or enforcement policy violation associated with this scope was recorded.
It may be unavailable when no authoritative policy or enforcement evidence source exists.
The value is encoded as LwM2M Time using Unix epoch seconds.
The encoded value does not carry timezone metadata. Device-local accounting period boundaries are interpreted using /3/0/15 Timezone, with fallback to /3/0/14 UTC Offset when Timezone is unavailable, unless a more specific ADM or EMS accounting policy applies.
]]></Description>
      </Item>
      <Item ID="76">
        <Name>Violation Count Current Period</Name>
        <Operations>R</Operations>
        <MultipleInstances>Single</MultipleInstances>
        <Mandatory>Optional</Mandatory>
        <Type>Unsigned Integer</Type>
        <RangeEnumeration/>
        <Units>count</Units>
        <Description><![CDATA[
Selected evidence summary resource for operations monitoring.
This value records the count of accounting, communication, security, QoS, or enforcement policy violations associated with this scope during the active accounting period.
It may be unavailable when no authoritative policy or enforcement evidence source exists.
]]></Description>
      </Item>
    </Resources>
    <Description2><![CDATA[

]]></Description2>
  </Object>
</LWM2M>
