<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rehfeld-apix-iot-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="APIX IoT">APIX IoT Device Profile: Discovery and Presence for Connected Device Services</title>
    <seriesInfo name="Internet-Draft" value="draft-rehfeld-apix-iot-03"/>
    <author initials="C." surname="Rehfeld" fullname="Carsten Rehfeld">
      <organization/>
      <address>
        <email>carsten@botstandards.org</email>
      </address>
    </author>
    <date year="2026" month="June" day="07"/>
    <abstract>
      <?line 59?>

<t>This document defines the APIX IoT Device Profile: an extension to the
APIX Core Infrastructure specification that enables discovery and
presence management for physical connected devices. It specifies the
two-layer discoverability model (public device class, private device
instance), the presence signal protocol, device instance token
management, device class lifecycle, hub-mediated presence, ownership
transfer, and the data retention and privacy rules applicable to device
instance records. Autonomous agents that implement this profile can
discover device capabilities at the class layer without any
authentication, and retrieve live instance endpoint data at the instance
layer subject to owner-granted authorisation.</t>
    </abstract>
  </front>
  <middle>
    <?line 73?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The APIX Core Infrastructure <xref target="APIX-CORE"/> defines the common foundation
for agent-oriented service discovery: the APIX Manifest (APM) format,
the three-dimensional trust model, commercial onboarding, sanctions
compliance, and the base Index API. That document is the authoritative
reference for all concepts and normative requirements shared across
service types.</t>
      <t>This document extends APIX Core for a fundamentally different service
category: physical connected devices. API services have stable URLs and
are verifiable by a crawler. IoT devices have dynamic network addresses,
are physically present in private spaces, and signal their own liveness
directly to the index. These differences require a specialised
registration model, a presence protocol, and privacy rules that do not
apply to web API services.</t>
      <t>Implementors MUST satisfy all normative requirements in <xref target="APIX-CORE"/>
before applying the additional requirements in this document.</t>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in
all capitals, as shown here. All JSON payloads defined in this
document MUST use UTF-8 encoding as mandated by <xref target="RFC8259"/> Section
8.1.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The following terms are defined in <xref target="APIX-CORE"/> and used here without
redefinition: APIX, APM, APIX Manifest, service_id, trust model,
organisation trust level (O-0 through O-5), service verification level
(S-0 through S-4), liveness, commercial contract, sanctions screening,
APIX Spider, consumer token, Connected Device.</t>
      <t>Additional terms defined in this document:</t>
      <t><strong>Device Manufacturer</strong> — The organisation that produces a physical device
type and registers its device class with APIX. A device manufacturer is
a type of Service Owner as defined in <xref target="APIX-CORE"/>. The term
"manufacturer" is used in this profile where the Service Owner is
specifically a producer of physical hardware.</t>
      <t><strong>Device Class</strong> — An APM registration that describes a physical device
type: its capabilities, manufacturer API versions, and presence model.
Corresponds to <tt>spec.type: "device-class"</tt> or <tt>spec.type: "hub"</tt> in the
APM. A device class is the public, Layer 1 record.</t>
      <t><strong>Device Instance</strong> — A record representing a single physical unit of a
device class. Created and maintained by the device's presence signals.
A device instance is the private, Layer 2 record.</t>
      <t><strong>Presence Signal</strong> — An authenticated message sent by a device (or its
relay) to the APIX presence endpoint to establish or maintain a device
instance record. Signal types: <tt>register</tt>, <tt>heartbeat</tt>, <tt>depart</tt>.</t>
      <t><strong>Device Instance Token</strong> — A per-device secret credential issued by
APIX to the manufacturer at manufacture time. Used exclusively to
authenticate presence signals. Distinct from consumer tokens and
manufacturer API keys.</t>
      <t><strong>token_id</strong> — A stable, non-secret identifier assigned to a device
instance token at issuance. Used in token management API calls without
transmitting the token secret.</t>
      <t><strong>Presence Mode</strong> — The mechanism by which a device class's instances
send presence signals to APIX. Values: <tt>push</tt>, <tt>cloud_relay</tt>, <tt>hub</tt>.</t>
      <t><strong>Hub</strong> — An internet-capable gateway device that relays presence signals
for mesh-protocol devices that cannot reach APIX directly. Registered as
<tt>spec.type: "hub"</tt>.</t>
      <t><strong>Layer 1</strong> — The public, unauthenticated view of a device class record.
Contains capability metadata only. Never contains instance data.</t>
      <t><strong>Layer 2</strong> — The private, authenticated view of device instance records.
Accessible only to the device owner and explicitly delegated agents.</t>
      <t><strong>Reachable</strong> — An instance state flag. An instance is <tt>reachable: false</tt>
when its current <tt>api_version</tt> is not present in the device class's
current <tt>supported_api_versions</tt> list. Such instances are excluded from
all query results.</t>
      <t><strong>Endpoint Confidence</strong> — An APIX-derived per-instance field that
captures the reachability trust ceiling imposed by the device's network
topology. Value <tt>"ipv6"</tt> indicates the device provided a valid global
unicast IPv6 address in its most recent register signal and can be
reached directly. Value <tt>"ipv4_observed"</tt> indicates no IPv6 address was
provided; the device is reachable only via its manufacturer's cloud
relay. APIX derives this field from the register signal and MUST NOT
accept it from the device payload.</t>
      <t><strong>Law Enforcement Request (LER)</strong> — A formally submitted request from
an authorised law enforcement authority to suppress the visibility of
one or more device instances via the Law Enforcement Cooperation
Interface defined in Section 9.8 of this document. LER processing
obligations and the non-surveillance framework within which they operate
are outlined in <xref target="APIX-CORE"/> Section 5.</t>
    </section>
    <section anchor="device-service-model">
      <name>Device Service Model</name>
      <t>The IoT device trust model is architecturally distinct from the API service
trust model defined in <xref target="APIX-SERVICES"/>. API service trust is pull-based:
the APIX Spider probes the service. Device trust is push-based: devices
signal their presence to the index. The manufacturer registration process,
not the Spider, governs device class verification. The trust object
structure in device class and device instance APMs differs accordingly
from that of API service APMs. See <xref target="APIX-CORE"/> Section 6 (Trust Model)
for the authoritative description of all three trust implementations.</t>
      <t>APIX supports two fundamentally distinct service types: API services and
Device services. The APM <tt>spec.type</tt> field determines which model applies.
Services with <tt>spec.type</tt> set to <tt>device-class</tt> are governed by this
section.</t>
      <t><strong>The two service types</strong></t>
      <t>API services have a stable URL, a machine-readable specification document,
and are verified by the APIX Spider. Device services are physical or
firmware-based entities with dynamic network addresses. They cannot be
crawled. Their presence is inherently transient.</t>
      <t><strong>Two-layer discoverability model</strong></t>
      <t>Device services introduce a privacy and security requirement that does not
apply to API services: individual device instances MUST NOT be publicly
discoverable. A dishwasher's online presence is a household occupancy signal.
An agent that can query which specific devices are online at a given time can
infer whether a home is occupied. This is an unacceptable security and privacy
exposure for both manufacturers and end users.</t>
      <t>APIX enforces a strict two-layer model for device services:</t>
      <t>Layer 1 -- Device Class (public): The device class registration is publicly
discoverable by any agent, including anonymous queries. It describes what
the device type is, what it can do, and which protocol it uses. No instance
data is present at this layer. This layer is safe to expose publicly and
serves as the capability advertisement manufacturers want agents to find.</t>
      <t>Layer 2 -- Device Instance (private): Individual device instance data --
whether a specific device is online, its current network endpoint, its
operational state -- is NEVER returned to anonymous or unauthenticated
queries. Instance-level data is accessible only to agents that have been
explicitly authorised by the device owner, and only for instances owned
by that principal.</t>
      <artwork><![CDATA[
Anonymous agent query: home.appliance.dishwasher
Result: device class record -- capabilities, protocol, manufacturer, APM
        NO instance data. NO online/offline. NO location. NO count.

Authenticated agent (device owner):
Result: instances owned by principal -- online status, endpoint, state
]]></artwork>
      <t>The APIX index MUST enforce this separation at the query layer. An index
implementation that returns instance-level data to unauthenticated queries
is non-conformant.</t>
      <artwork><![CDATA[
  Device Class APM  (template, registered by manufacturer)
  +--------------------------------------------------+
  | service_id               stable class identifier |
  | api_base_url             mfr cloud API base URL  |
  | supported_api_versions   ["1.0", "1.1", "1.2"]   |
  | apix_presence_protocols ["v1", "v2"]             |
  | capability_class         "home.appliance.*"      |
  +--------------------------------------------------+
                |
                | 1 class -> N physical devices
                |
                v
  Device Instance  (operational, reported by device at runtime)
  +--------------------------------------------------+
  | instance_id     per-device UUID                  |
  | device_class_id -> class above                   |
  | api_version     "1.2" (firmware)                 |
  | network.ipv6    "2001:db8::1"                    |
  +--------------------------------------------------+
                |
                | firmware selects APIX protocol from
                | apix_presence_protocols list
                |
                v
  POST /presence/v2/register     <- v2 from firmware
  { "api_version": "1.2",        <- mfr API ver from firmware
    "network": { "ipv6": "..." } }
                |
                | APIX validates:
                |   protocol version in apix_presence_protocols
                |   api_version in supported_api_versions
                v
  +--------------------------------------------------+
  |                    APIX                          |
  | validates:                                       |
  |   protocol version in apix_presence_protocols    |
  |   api_version in supported_api_versions          |
  +------------------+-------------------------------+
  | Layer 1 PUBLIC   | Layer 2 PRIVATE               |
  | class metadata   | api_version: "1.2"            |
  | capabilities     | api_endpoint.cloud_relay      |
  | protocol info    | api_endpoint.direct_ipv6      |
  | (no instances)   | network.ipv6                  |
  +------------------+-------------------------------+
         ^                              ^
         |                              |
  anonymous agent               authenticated agent
  GET /search?capability=...    GET /devices?capability=...
                                        &online=true
]]></artwork>
      <t><strong>Manufacturer registration</strong></t>
      <t>A device manufacturer registers a device class once. The registration
defines the capability profile, the communication protocol, and the
presence model for all physical instances of that class. Individual
device instances are not registered by end users -- they are provisioned
by the manufacturer at the point of manufacture.</t>
      <sourcecode type="json"><![CDATA[
{
  "apm_version": "1.0",
  "service_id": "UUID v4 -- stable identifier for this device class",
  "name": "Haustec Pro 8 Dishwasher",
  "description": "Connected dishwasher -- energy optimisation",
  "lifecycle_stage": "stable",
  "owner": {
    "organisation_name": "BSH Home Appliances GmbH",
    "jurisdiction": "DE",
    "registration_number": "HRB 123456",
    "contacts": {
      "operations": "apix-ops@example.com",
      "escalation": "apix-escalation@example.com"
    }
  },
  "spec": {
    "type": "device-class",
    "protocol": "home-connect",
    "api_base_url": "https://api.haustec.example/api",
    "supported_api_versions": ["1.0", "1.1", "1.2"],
    "capability_class": "home.appliance.dishwasher",
    "presence_mode": "push",
    "apix_presence_protocols": ["v1"],
    "heartbeat_interval_seconds": 300,
    "max_offline_seconds": 900
  },
  "capabilities": ["home.appliance.dishwasher", "energy.tariff"],
  "pricing": {
    "model": "freemium",
    "pricing_url": "https://developer.haustec.example/pricing"
  },
  "custom": [
    "com.haustec.energy_class",
    "com.haustec.max_water_temp_c"
  ],
  "trust": {
    "organisation_level": "O-4",
    "service_level": "S-1",
    "spec_consistency": null,
    "liveness": {
      "presence_mode": "push",
      "heartbeat_interval_seconds": 300,
      "max_offline_seconds": 900
    }
  }
}
]]></sourcecode>
      <t>Note that the public device class record contains no instance count, no
online status aggregate, and no presence timestamps. All such data is
confined to the authenticated instance layer.</t>
      <t>Device class APMs MAY include a <tt>pricing</tt> field using the schema defined
in <xref target="APIX-SERVICES"/>. For IoT device classes, the <tt>"dynamic"</tt> pricing
model is particularly relevant: a cloud relay service may price per
connected device-hour at rates that vary with platform load. When
<tt>model</tt> is <tt>"dynamic"</tt>, the <tt>pricing_endpoint</tt> MUST be queried by the
agent before initiating a command session, not on every individual
command within an established session.</t>
      <t>Device class APMs MAY include a <tt>custom</tt> field using the schema and
normative rules defined in <xref target="APIX-SERVICES"/>. The <tt>custom</tt> array is a
capability declaration list: it signals the existence of hardware-specific
properties (energy classification, operating temperature ranges, protocol
variant details) that frequently precede standardisation. Values are not
stored in the index; they are defined in the manufacturer's own API
documentation and retrieved directly from the device class service. The
same rules apply as in <xref target="APIX-SERVICES"/>: entries MUST use reverse-domain
notation, the array MUST NOT exceed 20 entries, each entry MUST NOT exceed
128 characters, and declared key names are indexed and exposed via the
<tt>custom_key</tt> search parameter.</t>
      <t><strong>Heartbeat interval and offline tolerance contract</strong></t>
      <t>Two companion fields in the device class APM together define the liveness
contract for all instances of the class. Both are set at class registration
time by the manufacturer and are binding on all instances.</t>
      <t><tt>heartbeat_interval_seconds</tt> — the target rate at which conformant instances
MUST send presence signals. This is the expected steady-state cadence.
An instance that signals less frequently than this value is non-conformant.</t>
      <t><tt>max_offline_seconds</tt> — the maximum age of the most recently received
heartbeat before the index MUST mark the instance offline. This value
encodes the manufacturer's knowledge of normal connectivity gaps for the
device type and MUST be greater than or equal to <tt>heartbeat_interval_seconds</tt>.
APIX MUST reject device class registrations where <tt>max_offline_seconds</tt>
is less than <tt>heartbeat_interval_seconds</tt>.</t>
      <t>Manufacturers MUST choose values appropriate to the device's deployment
context and connectivity model. A mains-powered, always-connected field
device (for example, a traffic surveillance camera) SHOULD declare a short
<tt>heartbeat_interval_seconds</tt> (for example, 30 seconds) and a
<tt>max_offline_seconds</tt> only modestly larger (for example, 90 seconds), to
enable fast offline detection. A battery-powered or intermittently connected
sensor (for example, a forest fire smoke detector in a remote area) SHOULD
declare a long <tt>heartbeat_interval_seconds</tt> (for example, 3600 seconds)
and a <tt>max_offline_seconds</tt> that accommodates known connectivity gaps in
the deployment environment (for example, 86400 seconds for a device in an
area with intermittent network coverage).</t>
      <t>The APIX index uses the class-declared values, never any instance-reported
value, to determine liveness.</t>
      <t><strong>Notification channels for device classes:</strong></t>
      <t>Device class APMs MAY include a <tt>notifications</tt> field to allow consuming
agents and device owners to receive push notifications about class-level
changes (spec updates, trust level changes, lifecycle transitions). The
permitted channel types for device class registrations are restricted to
<tt>webhook</tt> only. <tt>sse</tt> and <tt>websocket</tt> channel types defined in
<xref target="APIX-SERVICES"/> MUST NOT be used in device class APMs.</t>
      <t>This restriction exists because device class changes are sparse, infrequent
events. A persistent open connection (SSE or WebSocket) held by thousands of
agents waiting for a class manifest change that occurs at most a few times per
year is architecturally wasteful. A webhook is the correct model: the service
calls the agent when an event occurs; no connection is held between events.</t>
      <t>Device instance liveness (online/offline transitions for individual devices)
is served by the presence signal mechanism and by the <tt>devices.presence</tt>
delegation scope (Section 6), not by notification channels.</t>
      <t><strong>Device version contract</strong></t>
      <t>The device class APM declares all manufacturer API versions the device
class supports in <tt>supported_api_versions</tt>. This is the exhaustive
version contract between the manufacturer and APIX. When a physical
device sends a presence signal it MUST declare exactly one of these
versions as its currently running version; APIX MUST reject presence
signals that declare a version outside the registered list.</t>
      <t>The <tt>apix_presence_protocols</tt> field declares the list of APIX Presence
Protocol versions (Section 6) that devices of this class may use when
sending presence signals. At initial registration the list typically
contains a single version. When the manufacturer releases a firmware
update that moves devices to a newer APIX presence protocol, the
manufacturer updates the device class registration to add the new
version to the list. Both versions remain valid simultaneously: devices
that have received the firmware update call the newer presence endpoint;
devices not yet updated continue calling the older one. APIX MUST
accept presence signals from any endpoint version present in
<tt>apix_presence_protocols</tt>.</t>
      <t>The APIX presence protocol version a device uses is implicit in the
endpoint URL it calls (e.g. <tt>POST /presence/v1/register</tt> vs
<tt>POST /presence/v2/register</tt>). It is not repeated in the signal body.</t>
      <t>The device version model provides two independent guarantees:</t>
      <t>Reliability axis (device to APIX): Every device firmware version knows
exactly which APIX presence endpoint URL to call. This URL is stable
for the full support window of that protocol version (Section 6).
A device running a given firmware version will always be able to signal
its presence to APIX without modification, as long as the protocol
version it was built against remains in its support window. A firmware
update that introduces a newer APIX protocol version is the device's
own upgrade path, not a requirement.</t>
      <t>Flexibility axis (agent through APIX to device): The manufacturer API
version (<tt>api_version</tt>) running on a physical device instance is
reported by the device itself and may change when the device performs a
firmware upgrade through the manufacturer's own update process. A
firmware upgrade that changes the running API version MUST be signalled
to APIX by the device sending a new <tt>register</tt> signal carrying the
updated <tt>api_version</tt>. APIX updates the instance record immediately.
Consuming agents that re-fetch the instance record after a connection
failure automatically receive the current API version and the correct
versioned endpoint. The firmware update process is out of scope for
this specification; APIX is version-aware only at the presence signal
boundary.</t>
      <t>Example: a device class initially registered with firmware D1.0 using
APIX presence protocol v2 ships with <tt>apix_presence_protocols: ["v2"]</tt>.
When a firmware update introduces D1.3 with support for APIX presence
protocol v3, the manufacturer adds v3 to the device class registration:
<tt>apix_presence_protocols: ["v2", "v3"]</tt>. Updated devices call
<tt>/presence/v3/register</tt>; unupdated devices continue calling
<tt>/presence/v2/register</tt>. Both are accepted.</t>
      <t><strong>Device instance tokens</strong></t>
      <t>Each physical device is provisioned at manufacture with a device instance
token. This token is used exclusively to authenticate presence signals
sent to the APIX presence endpoint. Tokens are issued by APIX to the
manufacturer as part of the commercial contract and are scoped to a
specific device class registration.</t>
      <t>Token requirements: tokens MUST contain a minimum of 256 bits of
cryptographic randomness and MUST be encoded as base64url without
padding. Tokens MUST NOT be derivable from device serial numbers,
MAC addresses, or any other publicly accessible or predictable
identifier. APIX stores only the SHA-256 hash of each token; the
plaintext is delivered once at issuance and cannot be re-retrieved.</t>
      <t>Each token is assigned a stable, non-secret <tt>token_id</tt> by APIX at
issuance. The <tt>token_id</tt> uniquely identifies a token in API operations
(rotation, revocation) without requiring the token secret to be
transmitted. The <tt>token_id</tt> is returned alongside the token in the
batch delivery payload and appears in the device instance record,
allowing the manufacturer to correlate their production records with
APIX instance data.</t>
      <t><strong>Token rotation</strong></t>
      <t>A device instance token MUST be rotatable without changing the device's
<tt>instance_id</tt>. The rotation preserves the device's ownership, history,
and position in any consuming agent's workflow; only the credential
changes.</t>
      <t>Rotation is initiated by the manufacturer via the Token Management API,
referencing the <tt>token_id</tt> of the token to be replaced. APIX MUST
issue a single replacement token and enter a dual-valid state for that
instance: both the existing token and the replacement token are accepted
for presence signals for a configurable handover window (default: 24
hours; manufacturer may request shorter or longer within operator limits).</t>
      <t>The manufacturer delivers the replacement token to the physical device
via the manufacturer's OTA channel (out of scope for this specification).
When the device sends its first presence signal using the replacement
token, APIX MUST atomically revoke the previous token. Subsequent
signals using the old token MUST be rejected with HTTP 401
<tt>token_revoked</tt>.</t>
      <t>If the handover window expires before the replacement token has been
used in a successful presence signal, APIX MUST revoke the old token
at window expiry. The device transitions to offline and enters the
HTTP 401 dormant state until the manufacturer resolves the delivery
failure via a further OTA cycle or re-provisioning.</t>
      <t>Replacement tokens MUST meet the same entropy and format requirements
as initial tokens. Previously issued tokens MUST NOT be reissued after
rotation or revocation.</t>
      <t><strong>Device owner authorisation</strong></t>
      <t>A device owner associates their device instances with their APIX identity
through a one-time ownership claim process defined by the manufacturer.
Once claimed, the device owner MAY delegate access to specific agents --
for example, a home energy management agent authorised to query the
dishwasher's availability and schedule a wash cycle during off-peak tariff
windows. Delegation is scoped, revocable, and does not expose the device
to any other agent.</t>
      <t><strong>Ownership transfer and release</strong></t>
      <t>Device ownership is transferable without changing the device's
<tt>instance_id</tt>. A device owner MAY release their ownership claim at
any time by calling <tt>DELETE /devices/{instance_id}/claim</tt>. APIX MUST
remove the <tt>owner_id</tt> association and revoke all agent delegations
scoped to that device instance. The instance record and its presence
history are retained. The device continues to signal presence and
remains online, but is not visible in Layer 2 queries until a new
owner completes a claim.</t>
      <t>A manufacturer MAY issue a new claim token for a device that already
has an active ownership claim -- for example, to facilitate a resale
or to respond to a factory reset. When a new claim is completed, APIX
MUST atomically replace the existing <tt>owner_id</tt> with the new
claimant's identity and revoke all delegations from the previous
owner. The previous owner receives no notification; their Layer 2
access ceases immediately upon the new claim being recorded.</t>
      <t>A device that is factory-reset at firmware level SHOULD send a depart
signal with <tt>"reason": "factory_reset"</tt> before clearing its
operational state. On receipt, APIX MUST release the ownership
association (clear <tt>owner_id</tt>) and mark the instance offline, in
addition to the standard depart processing. If no factory-reset
depart signal is received (e.g., the reset is hardware-triggered),
the ownership association persists until the manufacturer issues a
new claim token or the previous owner explicitly releases their
claim.</t>
      <t><strong>Presence signal mechanism</strong></t>
      <t>Device liveness is maintained by push signals, not Spider crawls. A
presence signal is not a bare keepalive: it carries the device's
currently running manufacturer API version and its network addresses,
allowing APIX to construct the full instance record at registration time.</t>
      <t>Signal types: <tt>register</tt> (first contact after power-on or reconnect),
<tt>heartbeat</tt> (periodic keepalive, MUST NOT change <tt>api_version</tt> or
network addresses without re-registering), <tt>depart</tt> (graceful shutdown
or factory reset). The depart signal MAY carry an optional <tt>"reason"</tt>
field; the only defined value in this specification is
<tt>"factory_reset"</tt>, which triggers ownership release in addition to
standard offline processing. Unrecognised <tt>reason</tt> values MUST be
ignored by APIX.</t>
      <artwork><![CDATA[
POST https://apix.example.org/presence/v1/register
Authorization: Bearer device-instance-token
Content-Type: application/json

{
  "device_class_id": "dc-haustec-pro8-dishwasher",
  "signal_type": "register",
  "api_version": "1.2",
  "network": {
    "ipv6": "2001:db8:85a3::8a2e:370:7334"
  }
}
]]></artwork>
      <t>When a register signal carries an <tt>api_version</tt> not present in the
device class's <tt>supported_api_versions</tt> list, APIX MUST return HTTP
422 <tt>api_version_not_supported</tt> and MUST create or update the instance
record with <tt>reachable: false</tt>. The record is not visible in capability
searches but IS visible in the device owner's Layer 2 query, allowing
the owner to observe and diagnose the version mismatch without direct
device access. APIX MUST reject a presence signal received at a
protocol endpoint version not listed in the device class's
<tt>apix_presence_protocols</tt> with HTTP 400; no instance record is created
for endpoint version mismatches.</t>
      <t>Presence signal flow:</t>
      <artwork><![CDATA[
Device powers on
      |
      v
Device sends register signal to /presence/v1/register:
  api_version, network.ipv6 (OPTIONAL -- absent for IPv4-only devices)
      |
      v
APIX records HTTP request source IP as observed_source_ipv4 (internal)
APIX validates: instance token valid, api_version in supported list
APIX derives endpoint_confidence:
  "ipv6"          if network.ipv6 is a valid global unicast address
  "ipv4_observed" otherwise
      |
      v
APIX records instance as online -- visible only to authorised agents
      |
      v
Authorised agent queries /devices: capability, online filter
      |
      v
APIX returns instance record: api_version, network, api_endpoint
      |
      v
Heartbeat timeout OR explicit depart signal
      |
      v
APIX marks instance offline; clears network addresses from record
]]></artwork>
      <t>The index determines instance liveness by comparing the age of the most
recently received heartbeat against the <tt>max_offline_seconds</tt> value
declared in the device class APM:</t>
      <artwork><![CDATA[
online IF: (current_time - last_heartbeat_at) <= max_offline_seconds
]]></artwork>
      <t>The threshold is always derived from the class template, never from any
instance-reported value. An instance whose condition evaluates to false
MUST be marked offline by the index.</t>
      <t>Manufacturers SHOULD implement a departure signal on graceful shutdown;
relying solely on heartbeat timeout is permitted but results in a delayed
offline transition.</t>
      <t><strong>Presence relay options</strong></t>
      <t>Three <tt>presence_mode</tt> values are defined for device classes:</t>
      <t><tt>push</tt> — the device contacts the APIX presence endpoint directly
over HTTPS without any intermediary. This is the highest-integrity
path: the signal originates from the device itself. Device classes
using <tt>push</tt> may achieve any service trust level up to S-4.</t>
      <t><tt>cloud_relay</tt> — the manufacturer's cloud infrastructure relays
presence signals on behalf of the device. The device sends signals
to a manufacturer-operated endpoint; the manufacturer's cloud
forwards them to APIX using the device's instance token. This model
is appropriate for devices on constrained networks or behind
carrier-grade NAT that cannot reach APIX directly. Device classes
using <tt>cloud_relay</tt> are bounded at service trust level S-1. The
manufacturer's cloud intermediary holds all instance tokens for
devices of that class, and can attest any device state value
(online status, api_version, network addresses) without independent
verification by APIX. A consuming agent applying a trust policy
that requires S-2 or higher MUST NOT rely on <tt>cloud_relay</tt> device
instances.</t>
      <t><tt>hub</tt> — a hub gateway device mediates presence for devices that
communicate exclusively over short-range mesh protocols, as
specified in Section 3.6. Service trust level is bounded at S-1
for the same reasons as <tt>cloud_relay</tt>.</t>
      <t>The <tt>presence_mode</tt> MUST be declared in the device class APM. The
presence_mode determines the trust ceiling for all instances of
that class; it cannot be overridden per-instance.</t>
      <t><strong>Endpoint confidence</strong></t>
      <t><tt>presence_mode</tt> captures signal-integrity trust — how reliably APIX
can attribute a presence signal to the physical device. A separate
per-instance field, <tt>endpoint_confidence</tt>, captures reachability trust —
how reliably a consuming agent can form a direct connection to the device.</t>
      <t>APIX MUST derive <tt>endpoint_confidence</tt> from each register signal:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Condition</th>
            <th align="left">Direct endpoint available</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>ipv6</tt></td>
            <td align="left">Device provided a valid global unicast IPv6 address in <tt>network.ipv6</tt></td>
            <td align="left">
              <tt>api_endpoint.direct_ipv6</tt> is present</td>
          </tr>
          <tr>
            <td align="left">
              <tt>ipv4_observed</tt></td>
            <td align="left">No valid global unicast IPv6 provided; APIX observed a source IPv4 from the HTTP request</td>
            <td align="left">No <tt>direct_ipv6</tt>; no <tt>direct_ipv4</tt>; <tt>cloud_relay</tt> or <tt>hub_gateway</tt> only</td>
          </tr>
        </tbody>
      </table>
      <t>IPv4 addresses self-reported by a device MUST NOT be accepted in the
<tt>network</tt> payload. APIX records the HTTP request source address as
<tt>observed_source_ipv4</tt> for internal operational use (abuse detection,
geo-routing) and MUST NOT surface it in any instance record or API
response. The reason is structural: a device behind NAT knows only its
private LAN address; the public IP APIX observes is the NAT gateway, not
the device. Neither value reliably supports direct agent-to-device
connectivity without port forwarding, which cannot be assumed.</t>
      <t>A consuming agent MUST read <tt>endpoint_confidence</tt> before selecting an
endpoint. Agents performing consequential operations (device commands,
ownership actions) MUST NOT assume a direct endpoint is available for
instances with <tt>endpoint_confidence: "ipv4_observed"</tt>; they MUST route
through <tt>cloud_relay</tt> or <tt>hub_gateway</tt>.</t>
      <t><strong>APIX Presence Endpoint Versioning</strong></t>
      <t>The APIX Presence Protocol is versioned independently of the Index API.
The version identifier is embedded in the endpoint path:</t>
      <artwork><![CDATA[
https://apix.example.org/presence/v1/register
https://apix.example.org/presence/v1/heartbeat
https://apix.example.org/presence/v1/depart
]]></artwork>
      <t>A device class declares all presence protocol versions its devices may
use in <tt>apix_presence_protocols</tt>. The list starts with the version
supported at initial registration. When a firmware update introduces
support for a newer protocol version, the manufacturer adds it to the
list -- the older version remains valid for devices not yet updated.
Multiple versions in <tt>apix_presence_protocols</tt> are all simultaneously
active for that device class.</t>
      <t>Long-term support guarantee: APIX MUST maintain each presence protocol
version in full operation for a minimum of ten (10) years from the date
on which the first device class registration including that version is
accepted. After this window, a five (5) year deprecation period applies
during which the version continues to operate but no new device class
registrations may add it to their <tt>apix_presence_protocols</tt> list.
Removal of a presence protocol version before the combined fifteen-year
window has elapsed is a specification violation.</t>
      <t>This guarantee exists because IoT appliances frequently have commercial
service lifespans of ten to twenty years, and not all deployed units
receive firmware updates on a predictable schedule. A manufacturer must
be able to guarantee to their customers and channel partners that
presence signalling will remain operational for the full product life,
independently of which firmware version a specific unit happens to run.</t>
      <t><strong>Protocol version sunset</strong></t>
      <t>APIX presence protocol versions do not remain operational indefinitely.
After the minimum support window (Section 3.5), APIX may sunset a
version. Sunset proceeds in two phases:</t>
      <t>Deprecation phase: APIX marks the version as deprecated. All responses
from the deprecated endpoint version MUST include the <tt>Deprecation</tt>
response header (<xref target="RFC9745"/>) and the <tt>Sunset</tt> response header (<xref target="RFC8594"/>)
carrying the planned removal date. APIX MUST notify the registered
operations contact of every device class that lists the deprecated
version in <tt>apix_presence_protocols</tt>. Device class records that still
include the deprecated version receive a <tt>standard_warnings</tt> entry
indicating the sunset date. The deprecation phase MUST last a minimum
of five (5) years.</t>
      <t>Removal: On the sunset date, the endpoint version is removed. Requests
to the removed endpoint MUST return HTTP 410 Gone with a response body
referencing current migration documentation. Device instances that have
not migrated to a supported protocol version will cease to appear in
APIX as online. Their device class registrations remain valid; only
presence signalling is affected.</t>
      <t>The sunset obligation runs between APIX and the device manufacturer.
The manufacturer accepted the APIX terms of service at registration and
is contractually responsible for managing their fleet's migration path.
APIX is not liable to individual device owners whose devices lose APIX
connectivity because the manufacturer did not deploy a firmware update
within the deprecation window. The manufacturer may satisfy this
obligation by updating device firmware to a supported protocol version,
by routing presence signals through a manufacturer-side relay that
performs protocol translation, or by retiring the device class and
communicating end-of-APIX-support to customers.</t>
      <t><strong>IPv6 as primary network addressing</strong></t>
      <t>The APIX Presence Protocol uses IPv6 as the sole self-reported network
address in device presence signals. Physical devices SHOULD include a
global unicast IPv6 address in the <tt>network.ipv6</tt> field of their
presence signals. Devices that cannot provide a global unicast IPv6
address send presence signals without a <tt>network</tt> field; APIX observes
their source IPv4 address from the HTTP request for internal operational
use only (see endpoint_confidence semantics above). IPv4 MUST NOT be
included in the <tt>network</tt> payload of a presence signal.</t>
      <t>IPv6 addresses MUST be provided as unbracketed strings in the
<tt>network.ipv6</tt> field of the presence signal. APIX stores and returns
them as unbracketed strings; consuming agents construct RFC 3986-
compliant bracketed URIs (e.g. <tt>https://[2001:db8::1]/api/1.2/</tt>) when
building endpoint URLs from instance records.</t>
      <t><strong>Spider exclusion</strong></t>
      <t>Device services with <tt>spec.type: device-class</tt> MUST NOT be crawled
by the APIX Spider. The Spider specification in <xref target="APIX-CORE"/> does not
apply to device services. Spec consistency checking (<tt>spec_consistency</tt>)
is not applicable and MUST be set to <tt>null</tt> for device class
registrations.</t>
      <t><strong>Trust levels for device services</strong></t>
      <t>Organisation trust levels (O-0 through O-5) apply to device manufacturers
in the same way as API service owners. Service verification levels S-0
through S-4 (as defined in <xref target="APIX-CORE"/>) apply in full, with the
following device-class-specific meaning for S-2: S-2 (Spec Verified)
means the declared capability class is registered in the APIX capability
taxonomy and the device class has completed the manufacturer registration
process including KYC/AML screening. The Spider does not contribute to
device service verification.</t>
      <t>The maximum S-level achievable by a device class is constrained by its
<tt>presence_mode</tt>. The full S-0 through S-4 range is defined; the table
below states the ceiling imposed by each mode:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Presence mode</th>
            <th align="left">Maximum service trust level</th>
            <th align="left">Reason</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>push</tt></td>
            <td align="left">S-4</td>
            <td align="left">Direct device signal path; no intermediary</td>
          </tr>
          <tr>
            <td align="left">
              <tt>cloud_relay</tt></td>
            <td align="left">S-1</td>
            <td align="left">Manufacturer cloud attests device state; not independently verifiable</td>
          </tr>
          <tr>
            <td align="left">
              <tt>hub</tt></td>
            <td align="left">S-1</td>
            <td align="left">Hub gateway attests device state; not independently verifiable</td>
          </tr>
        </tbody>
      </table>
      <t>A consuming agent that requires S-2 or higher for its trust policy
MUST exclude device classes with <tt>presence_mode: cloud_relay</tt> or
<tt>presence_mode: hub</tt> from its query results. Agents SHOULD filter
by <tt>service_level_min</tt> when querying the Device Instance Query API.</t>
      <section anchor="hub-mediated-device-services">
        <name>Hub-Mediated Device Services</name>
        <t>Many IoT devices communicate exclusively over short-range mesh protocols
(Matter over Thread, Zigbee, Z-Wave) and have no direct path to the
public internet. These devices are physically incapable of sending
presence signals to APIX themselves. A hub gateway -- an internet-capable
device that bridges the local mesh to the IP network -- must act as their
APIX presence relay.</t>
        <t>APIX supports this through two complementary registrations: a hub device
class (type <tt>hub</tt>) for the gateway hardware, and a hub-mediated device
class (presence_mode <tt>hub</tt>) for the devices the hub serves.</t>
        <t><em>Hub entity</em></t>
        <t>A hub is registered in APIX as a device class with <tt>spec.type: "hub"</tt>.
Hub physical units receive their own instance tokens at manufacture,
identical in structure to device instance tokens. Hubs signal their own
presence directly to the APIX presence endpoint (presence_mode <tt>push</tt>).
A hub instance that is offline cannot relay presence for any of its
connected devices.</t>
        <sourcecode type="json"><![CDATA[
{
  "apm_version": "1.0",
  "service_id": "UUID v4 -- stable hub class identifier",
  "name": "Haustec Connect Bridge v2",
  "description": "Matter/Thread hub for BSH home appliances",
  "lifecycle_stage": "stable",
  "owner": {
    "organisation_name": "BSH Home Appliances GmbH",
    "jurisdiction": "DE",
    "registration_number": "HRB 123456",
    "contacts": {
      "operations": "apix-ops@example.com",
      "escalation": "apix-escalation@example.com"
    }
  },
  "spec": {
    "type": "hub",
    "hub_protocols": ["matter"],
    "supported_device_classes": ["dc-haustec-pro8-dishwasher"],
    "presence_mode": "push",
    "apix_presence_protocols": ["v1"],
    "heartbeat_interval_seconds": 60,
    "max_offline_seconds": 180
  }
}
]]></sourcecode>
        <t><tt>supported_device_classes</tt> is the exhaustive list of device class IDs
for which this hub type may relay presence signals. APIX MUST reject
hub-relay signals for device classes not in this list.</t>
        <t><em>Hub-mediated device class</em></t>
        <t>A device class whose physical instances cannot signal directly sets
<tt>presence_mode: "hub"</tt> in its APM. It also declares <tt>hub_protocols</tt> to
identify how the hub-to-device local channel carries the instance token
during the pairing process.</t>
        <sourcecode type="json"><![CDATA[
{
  "spec": {
    "type": "device-class",
    "presence_mode": "hub",
    "hub_protocols": ["matter"],
    "permitted_hub_classes": ["hc-haustec-connect-bridge-v2"],
    "api_base_url": "https://api.haustec.example/hub-gateway/api",
    "supported_api_versions": ["1.0", "1.1"],
    "apix_presence_protocols": ["v1"],
    "heartbeat_interval_seconds": 300,
    "max_offline_seconds": 600
  }
}
]]></sourcecode>
        <t><tt>hub_protocols</tt> informs APIX and consuming agents which local protocol
carries the device's instance token to the hub at pairing time. The
mechanism for token transfer is hub-protocol specific and outside the
scope of this specification.</t>
        <t><tt>permitted_hub_classes</tt> is an optional field. When present, it is a
manufacturer capability declaration that restricts which hub classes
may relay presence signals for instances of this device class. APIX
MUST reject relay signals from hub instances whose class ID is not in
the list. When absent, any hub whose <tt>supported_device_classes</tt>
includes this device class may relay.</t>
        <t>This field is a capability and interoperability declaration, not a
per-instance pairing or authentication mechanism. It encodes the
manufacturer's knowledge of which hub types their device is designed
to work with correctly. Instance-level device-to-hub pairing is
governed by the local network provisioning process (for example,
Matter commissioning) and the manufacturer's device management
infrastructure; it is outside the scope of this specification.</t>
        <t><em>Hub-relay presence signal</em></t>
        <t>A hub signals presence for a connected device using a dedicated hub-relay
endpoint. Each signal carries two credentials: the hub's own instance token
in the Authorization header (authenticating the hub), and the paired
device's instance token in the request body (authenticating the specific
device). APIX validates both independently.</t>
        <artwork><![CDATA[
POST https://apix.example.org/presence/v1/hub-relay/register
Authorization: Bearer hub-instance-token
Content-Type: application/json

{
  "hub_instance_id": "di-hub-a4c27f...",
  "signal_type": "register",
  "device": {
    "instance_token": "device-instance-token",
    "device_class_id": "dc-haustec-pro8-dishwasher",
    "api_version": "1.0"
  },
  "hub_gateway_endpoint":
    "https://api.haustec.example/hub-gw/api/1.0/di-f47ac1..."
}
]]></artwork>
        <t>Note that hub-mediated device presence signals carry no <tt>network.ipv6</tt>
field: the device has only a local mesh address, which is not
internet-routable and MUST NOT be included. The agent reaches the
device exclusively via the <tt>hub_gateway_endpoint</tt> at the manufacturer's
cloud, which routes requests to the device through the hub.</t>
        <t>APIX MUST reject a hub-relay signal where:
(a) the hub instance token is invalid or revoked,
(b) the device instance token is invalid or revoked,
(c) the device class is not in the hub class's <tt>supported_device_classes</tt>,
(d) the hub instance is not itself currently online, or
(e) the device class declares <tt>permitted_hub_classes</tt> and the relaying
    hub's class ID is not in that list.</t>
        <t><em>Layer 2 instance record for hub-mediated devices</em></t>
        <sourcecode type="json"><![CDATA[
{
  "instance_id": "di-f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "device_class_id": "dc-haustec-pro8-dishwasher",
  "api_version": "1.0",
  "online": true,
  "presence_mode": "hub",
  "hub_instance_id": "di-hub-a4c27f...",
  "last_seen_at": "2026-04-24T09:00:00Z",
  "api_endpoint": {
    "hub_gateway":
      "https://api.haustec.example/hub-gw/api/1.0/di-f47ac1..."
  },
  "owner_id": "usr-7e8a9b2c...",
  "claimed_at": "2026-01-10T10:00:00Z",
  "_links": {
    "self": {
      "href": "https://apix.example.org/devices/di-f47ac1..."
    },
    "hub": {
      "href": "https://apix.example.org/devices/di-hub-a4c27f..."
    },
    "device_class": {
      "href": "https://apix.example.org/device-classes/dc-haustec-p8"
    }
  }
}
]]></sourcecode>
        <t><em>Cascading offline</em></t>
        <t>When a hub instance is marked offline -- whether by heartbeat timeout or
explicit departure signal -- APIX MUST mark all device instances currently
attributed to that hub as offline and MUST clear their
<tt>api_endpoint.hub_gateway</tt> fields. APIX MUST NOT return <tt>online: true</tt>
for any device instance attributed to an offline hub.</t>
        <t><em>Hub migration</em></t>
        <t>A device may move from one hub to another. When a hub-relay register
signal is received for a device whose instance record is currently
attributed to a different hub, APIX MUST update the device instance
record: <tt>hub_instance_id</tt> is set to the new hub's <tt>instance_id</tt> and
<tt>api_endpoint.hub_gateway</tt> is replaced with the value from the new
signal. The device <tt>instance_id</tt> MUST be preserved. APIX MUST return
HTTP 409 <tt>device_not_attributed_to_hub</tt> on any subsequent hub-relay
signal from the previous hub for that device.</t>
        <t><em>Trust boundary</em></t>
        <t>Hub relay introduces an intermediary trust boundary absent from the push
model. The device's instance token validates that the specific device
was genuinely provisioned for this class and class owner, but the hub's
reported <tt>api_version</tt> and <tt>hub_gateway_endpoint</tt> are attested by the
hub and cannot be independently verified by APIX. A compromised hub can
misrepresent the state of devices it genuinely controls but cannot forge
presence signals for devices whose instance tokens it does not hold.</t>
        <t>Device classes using <tt>presence_mode: "hub"</tt> are bounded at service trust
level S-1. S-2 (Spec Verified) requires a direct device signal path
and is not achievable via hub relay in this specification version.</t>
        <artwork><![CDATA[
  Physical Device  (mesh -- Thread/Zigbee/Z-Wave, not internet-capable)
  +------------------------------------------+
  | instance_token  (in secure enclave)       |
  | api_version     firmware API version      |
  | local_mesh_addr NOT internet-routable     |
  +------------------------------------------+
             |
             | hub protocol (Matter/Zigbee/Z-Wave)
             | pairing: hub reads instance_token
             v
  Hub Instance  (internet-capable border router)
  +------------------------------------------+
  | hub_instance_id    own APIX identity      |
  | hub_instance_token own APIX credential    |
  | paired devices:    [{instance_token,...}] |
  +------------------------------------------+
             |
             | POST /presence/v1/hub-relay/register
             | Auth: hub_instance_token (hub identity)
             | Body: device instance_token (device identity)
             v
  +---------------------+------------------------+
  | Layer 1  (PUBLIC)   | Layer 2  (PRIVATE)     |
  | hub class metadata  | hub instance: online   |
  | device class meta   | device instance:       |
  | no instance data    |   hub_instance_id      |
  |                     |   api_endpoint.        |
  |                     |     hub_gateway        |
  +---------------------+------------------------+
          ^                         ^
          |                         |
  anonymous agent           authenticated agent
  class discovery           GET /devices?online=true
]]></artwork>
      </section>
      <section anchor="device-class-lifecycle">
        <name>Device Class Lifecycle</name>
        <t>Device class lifecycle is defined by this profile. Valid
<tt>lifecycle_stage</tt> values for device classes are <tt>stable</tt>, <tt>deprecated</tt>,
and <tt>end_of_life</tt>. These are the complete set for this service type.</t>
        <t>A device class progresses through three lifecycle stages that the
manufacturer sets via registration updates. Transitions are
unidirectional: <tt>stable</tt> → <tt>deprecated</tt> → <tt>end_of_life</tt>.</t>
        <t><em>stable</em> — Full operation. All normative rules apply without
modification.</t>
        <t><em>deprecated</em> — The manufacturer is winding down the class. APIX MUST
continue accepting presence signals from existing device instances.
Deprecated classes MUST be excluded from Layer 1 capability searches
by default; they remain directly retrievable by <tt>service_id</tt>. Device
instances of deprecated classes MUST be excluded from Layer 2 query
results by default; a consuming agent MAY include them by adding
<tt>include_deprecated=true</tt> to the query. Instance records MUST carry
<tt>"class_lifecycle_stage": "deprecated"</tt>.</t>
        <t><em>end_of_life</em> — APIX MUST reject all presence signals for the class
with HTTP 410 Gone. All existing instances are marked <tt>online: false</tt>
and <tt>reachable: false</tt>. Class and instance records are retained for
historical query by the device owner but MUST NOT appear in any
capability or instance search.</t>
      </section>
      <section anchor="instance-reachability">
        <name>Instance Reachability</name>
        <t>A device instance MUST be marked <tt>"reachable": false</tt> when its
current <tt>api_version</tt> is absent from the device class's current
<tt>supported_api_versions</tt> list. This condition arises when a
manufacturer removes a version from the supported list -- for
example, as part of a class deprecation cycle -- while one or more
physical devices remain on that version. Such a device is still
online (liveness signals continue to be accepted) but its API
version is no longer endorsed, so no valid endpoint can be
constructed by a consuming agent.</t>
        <t>APIX MUST exclude instances with <tt>reachable: false</tt> from query
results regardless of the <tt>online</tt> filter value. A query for
<tt>online=true</tt> devices MUST NOT include an instance that is
<tt>reachable: false</tt>.</t>
        <t>When <tt>reachable: false</tt>, instance records MUST omit <tt>api_endpoint</tt>
fields. The <tt>api_version</tt> field is retained to allow the owner to
identify the version mismatch.</t>
        <t>Instance records MUST include <tt>"reachable": false</tt> and
<tt>"class_lifecycle_stage"</tt> (with its non-<tt>stable</tt> value) whenever
those conditions apply. Neither field is present in the response
when the instance is reachable and its class is <tt>stable</tt>.</t>
      </section>
    </section>
    <section anchor="data-retention-and-privacy">
      <name>Data Retention and Privacy</name>
      <t>The two-layer model — public device class, private device instance — is
structurally aligned with Regulation (EU) 2023/2854 (Data Act). Under the
Data Act, data generated by a connected product is the user's to access in
a structured, commonly used, machine-readable format and to share with a
third party of their choosing; it is not the manufacturer's data to publish.
APIX reflects this by holding device instance data in the private Layer 2
record, retrievable only under owner-granted authorisation (see Agent
Delegation), while only the manufacturer-owned device class remains public.
The access-by-design obligations of the Data Act apply from 12 September 2026.</t>
      <t><strong>Personal data in device instance records</strong></t>
      <t>Device instance records contain personal data fields. The index
operator is the data controller for these fields within the meaning
of applicable data protection law (including GDPR where applicable).
The following fields are classified as personal data:</t>
      <ul spacing="normal">
        <li>
          <t><tt>owner_id</tt> — links the instance to a natural person's consumer
account</t>
        </li>
        <li>
          <t><tt>network.ipv6</tt> — the device's IPv6 address, which may identify a
natural person's home network or device location. Note: APIX observes
the device's source IPv4 address internally at registration for abuse
detection and geo-routing purposes; this address is not stored in the
instance record and is not classified as instance-level personal data.</t>
        </li>
        <li>
          <t><tt>api_endpoint</tt> fields — URLs that may carry device-specific
identifiers attributable to a natural person</t>
        </li>
        <li>
          <t><tt>claimed_at</tt> and <tt>last_seen_at</tt> — timestamps that, in combination
with network addresses, constitute behavioural data</t>
        </li>
      </ul>
      <t><tt>instance_id</tt> and <tt>device_class_id</tt> are pseudonymous technical
identifiers and are not classified as personal data on their own.</t>
      <t>Network addresses and <tt>api_endpoint</tt> fields MUST be cleared from
the instance record when a device transitions to offline, as
specified in the presence signal processing rules. This is both
an operational requirement and a data minimisation obligation.</t>
      <t><strong>Offline record retention</strong></t>
      <t>An instance record that has been offline without re-registration
for more than ninety (90) days MUST be transitioned to archived
state. In archived state:</t>
      <ul spacing="normal">
        <li>
          <t><tt>owner_id</tt>, <tt>claimed_at</tt>, <tt>last_seen_at</tt>, and <tt>went_offline_at</tt>
are cleared.</t>
        </li>
        <li>
          <t><tt>instance_id</tt>, <tt>device_class_id</tt>, and <tt>api_version</tt> are retained
for operational audit purposes (legitimate interest).</t>
        </li>
        <li>
          <t>The record MUST NOT appear in any Layer 2 query result.</t>
        </li>
      </ul>
      <t>An archived record that has not been re-activated by a new
registration within twelve (12) months of archival MUST be
permanently deleted.</t>
      <t><strong>Right to erasure</strong></t>
      <t>When a device owner submits an erasure request for a device
instance (or when the owner deletes their consumer account), APIX
MUST:</t>
      <ol spacing="normal" type="1"><li>
          <t>Clear <tt>owner_id</tt>, <tt>claimed_at</tt>, and all network address and
endpoint fields from the instance record.</t>
        </li>
        <li>
          <t>Revoke all agent delegations scoped to the device instance.</t>
        </li>
        <li>
          <t>Retain <tt>instance_id</tt>, <tt>device_class_id</tt>, <tt>api_version</tt>, and
presence activity timestamps for the minimum period required
by the operator's legitimate interest (audit trail, dispute
resolution). RECOMMENDED retention: 90 days from the erasure
request date, after which the record transitions to the standard
archived state.</t>
        </li>
      </ol>
      <t>The device's instance token is not affected by an erasure request.
The token is a device credential, not owner personal data. The
device MAY continue to send presence signals; however, without an
<tt>owner_id</tt> association the instance record will not appear in any
Layer 2 query until re-claimed.</t>
      <t>An erasure request does not affect device class records, which are
owned by the manufacturer and do not contain end-user personal data.</t>
    </section>
    <section anchor="device-instance-query-api">
      <name>Device Instance Query API</name>
      <t>Device instance queries give an authorised agent access to Layer 2 --
the private, per-principal view of device instances. All endpoints in
this section require authentication. The consumer token MUST carry the
<tt>devices.read</tt> scope. APIX enforces ownership boundaries at query time:
a principal MAY only retrieve instance records for devices they own or
have been explicitly delegated access to. Queries that would match
instances belonging to other principals MUST return an empty result,
not an error, to prevent ownership enumeration.</t>
      <t>The <tt>devices</tt> link in the Index root resource (defined in <xref target="APIX-CORE"/>)
provides the templated entry point to this API. Agents MUST follow this
link rather than constructing the URL independently.</t>
      <t><strong>Query endpoint:</strong></t>
      <artwork><![CDATA[
GET /devices?capability=home.appliance.dishwasher
            &online=true
            &api_version=1.2
            &page=1
            &page_size=20
Authorization: Bearer consumer-token-with-devices.read-scope
]]></artwork>
      <t><strong>Normative query parameters:</strong></t>
      <table>
        <thead>
          <tr>
            <th align="left">Parameter</th>
            <th align="left">Type</th>
            <th align="left">Default</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>capability</tt></td>
            <td align="left">string</td>
            <td align="left">—</td>
            <td align="left">Capability taxonomy term. Filters to instances of device classes declaring this capability</td>
          </tr>
          <tr>
            <td align="left">
              <tt>online</tt></td>
            <td align="left">boolean</td>
            <td align="left">—</td>
            <td align="left">
              <tt>true</tt>: online instances only. <tt>false</tt>: offline only. Absent: all instances</td>
          </tr>
          <tr>
            <td align="left">
              <tt>api_version</tt></td>
            <td align="left">string</td>
            <td align="left">—</td>
            <td align="left">Filter by manufacturer API version currently running on the instance</td>
          </tr>
          <tr>
            <td align="left">
              <tt>include_deprecated</tt></td>
            <td align="left">boolean</td>
            <td align="left">false</td>
            <td align="left">When <tt>true</tt>, results include instances of deprecated classes. Instances with <tt>reachable: false</tt> are excluded regardless of this parameter</td>
          </tr>
          <tr>
            <td align="left">
              <tt>page</tt></td>
            <td align="left">integer</td>
            <td align="left">1</td>
            <td align="left">Result page number</td>
          </tr>
          <tr>
            <td align="left">
              <tt>page_size</tt></td>
            <td align="left">integer</td>
            <td align="left">20</td>
            <td align="left">Results per page. Maximum: 100</td>
          </tr>
        </tbody>
      </table>
      <t><strong>Device Instance Summary (Level 1):</strong></t>
      <sourcecode type="json"><![CDATA[
{
  "instance_id": "di-f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "device_class_id": "dc-haustec-pro8-dishwasher",
  "device_class_name": "Haustec Pro 8 Dishwasher",
  "api_version": "1.2",
  "online": true,
  "last_seen_at": "2026-04-24T08:01:00Z",
  "_links": {
    "self": {
      "href": "https://apix.example.org/devices/di-f47ac1..."
    },
    "device_class": {
      "href": "https://apix.example.org/device-classes/dc-haustec-p8"
    }
  }
}
]]></sourcecode>
      <t>The fields <tt>reachable</tt> and <tt>class_lifecycle_stage</tt> are present only
when their value is non-default (<tt>reachable: false</tt>; <tt>class_lifecycle_stage</tt>
other than <tt>stable</tt>). Network addresses and resolved endpoint options
are not returned at Level 1. Agents retrieve them by fetching the
detail resource via the <tt>self</tt> link.</t>
      <t><strong>Device Instance Record (Level 2):</strong></t>
      <sourcecode type="json"><![CDATA[
{
  "instance_id": "di-f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "device_class_id": "dc-haustec-pro8-dishwasher",
  "device_class_name": "Haustec Pro 8 Dishwasher",
  "api_version": "1.2",
  "online": true,
  "endpoint_confidence": "ipv6",
  "last_seen_at": "2026-04-24T08:01:00Z",
  "network": {
    "ipv6": "2001:db8:85a3::8a2e:370:7334"
  },
  "api_endpoint": {
    "cloud_relay": "https://api.haustec.example/api/1.2/di-f47ac1",
    "direct_ipv6": "https://[2001:db8:85a3::8a2e:370:7334]/api/1.2/"
  },
  "owner_id": "usr-7e8a9b2c-1234-5678-90ab-cdef01234567",
  "claimed_at": "2026-01-10T10:00:00Z",
  "_links": {
    "self": {
      "href": "https://apix.example.org/devices/di-f47ac1..."
    },
    "device_class": {
      "href": "https://apix.example.org/device-classes/dc-haustec-p8"
    }
  }
}
]]></sourcecode>
      <t>The <tt>endpoint_confidence</tt> field governs which <tt>api_endpoint</tt> keys are
present in the record. When <tt>endpoint_confidence</tt> is <tt>"ipv6"</tt>, the
device provided a valid global unicast IPv6 address in its most recent
register signal; both <tt>api_endpoint.cloud_relay</tt> and
<tt>api_endpoint.direct_ipv6</tt> are present. <tt>direct_ipv6</tt> is the preferred
endpoint for agents on IPv6-capable networks as it avoids the
manufacturer's relay infrastructure.</t>
      <t>When <tt>endpoint_confidence</tt> is <tt>"ipv4_observed"</tt>, no IPv6 address was
provided; only <tt>api_endpoint.cloud_relay</tt> is present. APIX observes
the device's source IPv4 address internally for abuse detection and
geo-routing purposes but MUST NOT surface it in instance records:
the observed IPv4 is a NAT gateway address and is not a usable direct
endpoint.</t>
      <t><tt>api_endpoint.cloud_relay</tt> is always present when the manufacturer's
device class APM declares <tt>api_base_url</tt>; it is the mandatory fallback
for all <tt>endpoint_confidence</tt> values.</t>
      <t><strong>Device Instance Record (Level 2 — <tt>endpoint_confidence: "ipv4_observed"</tt>):</strong></t>
      <sourcecode type="json"><![CDATA[
{
  "instance_id": "di-a1b2c3d4-0001-0002-0003-000400050006",
  "device_class_id": "dc-haustec-pro8-dishwasher",
  "device_class_name": "Haustec Pro 8 Dishwasher",
  "api_version": "1.1",
  "online": true,
  "endpoint_confidence": "ipv4_observed",
  "last_seen_at": "2026-04-24T09:15:00Z",
  "api_endpoint": {
    "cloud_relay": "https://api.haustec.example/api/1.1/di-a1b2c3d4"
  },
  "owner_id": "usr-1a2b3c4d-5678-90ab-cdef-012345678901",
  "claimed_at": "2025-11-03T14:30:00Z",
  "_links": {
    "self": {
      "href": "https://apix.example.org/devices/di-a1b2c3d4..."
    },
    "device_class": {
      "href": "https://apix.example.org/device-classes/dc-haustec-p8"
    }
  }
}
]]></sourcecode>
      <t>No <tt>network</tt> object is present: the device did not report an IPv6
address and APIX does not surface the observed NAT gateway IPv4. Agents
MUST route all control traffic through <tt>api_endpoint.cloud_relay</tt> for
such instances.</t>
      <t>When a device transitions to offline, <tt>network</tt> addresses and
<tt>api_endpoint</tt> values are cleared from the instance record. An agent
that cached endpoint data from a previous online period MUST re-fetch
the instance record after a connection failure to obtain fresh
network addresses, as dynamic IP assignments may have changed.</t>
    </section>
    <section anchor="manufacturer-fleet-summary-api">
      <name>Manufacturer Fleet Summary API</name>
      <t>Manufacturers require aggregate visibility into the deployment status of their
device classes — for version migration planning, token rotation batch operations,
and protocol deprecation compliance. The Device Instance Query API is scoped to
device owners and their delegated agents; it does not serve the manufacturer's
operational needs.</t>
      <t>The Manufacturer Fleet Summary API exposes aggregate, per-class statistics to
the registering manufacturer. It MUST NOT return any per-instance data:
no <tt>instance_id</tt> values, no network addresses, no <tt>owner_id</tt> associations,
and no individual presence timestamps. Returning such data would constitute
a Layer 2 enumeration violation (Section 8.2).</t>
      <t><strong>Authentication:</strong> Requests MUST be authenticated using the manufacturer's
APIX API key, which is the same credential used for device class registration
updates and token management operations (Section 4.2). APIX MUST reject
requests whose API key does not match the registering organisation of the
requested device class.</t>
      <t><strong>Endpoint:</strong></t>
      <artwork><![CDATA[
GET https://apix.example.org/device-classes/{class_id}/fleet-summary
Authorization: APIX-Key {manufacturer-api-key}
]]></artwork>
      <t><strong>Response:</strong></t>
      <sourcecode type="json"><![CDATA[
{
  "class_id": "dc-haustec-pro8-dishwasher",
  "class_lifecycle_stage": "stable",
  "total_registered": 47832,
  "online_count": 31209,
  "unclaimed_count": 412,
  "api_version_distribution": {
    "1.0": 8201,
    "1.1": 15447,
    "1.2": 24184
  },
  "as_of": "2026-04-25T12:00:00Z"
}
]]></sourcecode>
      <table>
        <thead>
          <tr>
            <th align="left">Field</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>total_registered</tt></td>
            <td align="left">Count of all instances of this class currently in the index, regardless of online status or ownership</td>
          </tr>
          <tr>
            <td align="left">
              <tt>online_count</tt></td>
            <td align="left">Instances that have sent a presence signal within the configured heartbeat timeout window</td>
          </tr>
          <tr>
            <td align="left">
              <tt>unclaimed_count</tt></td>
            <td align="left">Instances present in the index that have no <tt>owner_id</tt> association</td>
          </tr>
          <tr>
            <td align="left">
              <tt>api_version_distribution</tt></td>
            <td align="left">Map of manufacturer API version string to count of instances currently reporting that version. Values are sourced exclusively from device presence signals</td>
          </tr>
          <tr>
            <td align="left">
              <tt>as_of</tt></td>
            <td align="left">Timestamp of the aggregate computation. MAY be up to 15 minutes stale</td>
          </tr>
        </tbody>
      </table>
      <t>The <tt>online_count</tt> field is a scalar count only; it does not identify which
instances are online. An implementation MUST ensure that no derivation path
from fleet summary data can identify the presence or absence of any individual
device instance.</t>
    </section>
    <section anchor="agent-delegation">
      <name>Agent Delegation</name>
      <section anchor="delegation-model">
        <name>Delegation Model</name>
        <t>A device owner MAY delegate access to specific device instances to an
autonomous agent. Delegation is explicit, scoped, time-bounded, and
revocable. It does not expose the instance to any other agent and does
not modify the instance record visible to other principals.</t>
        <t>Delegation is distinct from consumer token issuance. A consumer token
identifies a principal (human or organisation). A delegation grant
authorises a specific agent, identified by its own consumer token, to
act on behalf of the owner for a defined set of operations on a defined
set of instances.</t>
      </section>
      <section anchor="delegation-scopes">
        <name>Delegation Scopes</name>
        <t>The following delegation scope values MUST be supported:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Scope</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>devices.read</tt></td>
              <td align="left">Read device instance records (Level 2) for delegated instances, including network addresses and <tt>api_endpoint</tt> fields</td>
            </tr>
            <tr>
              <td align="left">
                <tt>devices.presence</tt></td>
              <td align="left">Receive presence change notifications (online/offline transitions) for delegated instances via webhook</td>
            </tr>
            <tr>
              <td align="left">
                <tt>devices.command</tt></td>
              <td align="left">Authorised to call the manufacturer's device API on behalf of the owner, using the <tt>api_endpoint</tt> from the instance record</td>
            </tr>
          </tbody>
        </table>
        <t>Scopes are additive. A delegation grant MUST specify at least one scope.
<tt>devices.command</tt> MUST NOT be granted without also granting <tt>devices.read</tt>,
as command routing requires knowledge of the current <tt>api_endpoint</tt>.</t>
      </section>
      <section anchor="delegation-grant-api">
        <name>Delegation Grant API</name>
        <t>The owner creates a delegation grant via the APIX delegation endpoint:</t>
        <artwork><![CDATA[
POST /devices/{instance_id}/delegations
Authorization: Bearer owner-consumer-token
Content-Type: application/json

{
  "agent_token_id": "token_id of the agent's consumer token",
  "scopes": ["devices.read", "devices.command"],
  "expires_at": "ISO 8601 timestamp -- REQUIRED",
  "note": "human-readable description -- OPTIONAL"
}
]]></artwork>
        <t><tt>agent_token_id</tt> is the non-secret token identifier of the agent's
registered consumer token. The owner does not need to hold or transmit
the agent's token secret; the <tt>token_id</tt> is sufficient for APIX to
resolve the delegation at query time.</t>
        <t><tt>expires_at</tt> is REQUIRED. Perpetual delegation grants are not permitted.
Maximum delegation duration MUST be enforced by the index operator;
the RECOMMENDED maximum is 365 days. Owners SHOULD grant the minimum
duration sufficient for the agent's task.</t>
        <t>APIX MUST return the delegation grant identifier (<tt>delegation_id</tt>) in
the response. The owner uses <tt>delegation_id</tt> to list, inspect, and
revoke grants.</t>
      </section>
      <section anchor="delegated-agent-query">
        <name>Delegated Agent Query</name>
        <t>An agent that holds a valid delegation grant queries device instances
using its own consumer token:</t>
        <artwork><![CDATA[
GET /devices/{instance_id}
Authorization: Bearer agent-consumer-token
]]></artwork>
        <t>APIX MUST resolve the delegation at query time: if a valid, non-expired
delegation grant exists for the requesting <tt>token_id</tt> covering the
requested <tt>instance_id</tt> with the <tt>devices.read</tt> scope, APIX MUST return
the full Level 2 instance record as if the agent were the owner.</t>
        <t>If no valid delegation exists, APIX MUST return an empty result
(consistent with the enumeration prevention requirement in Section 6.2).</t>
      </section>
      <section anchor="delegation-revocation">
        <name>Delegation Revocation</name>
        <t>An owner revokes a delegation by calling:</t>
        <artwork><![CDATA[
DELETE /devices/{instance_id}/delegations/{delegation_id}
Authorization: Bearer owner-consumer-token
]]></artwork>
        <t>Revocation is immediate. Any in-flight agent request that has not yet
received a response at the time of revocation MUST return an empty
result. APIX MUST NOT return instance data to a revoked delegation.</t>
        <t>Delegation grants are also revoked automatically when:
- The delegation <tt>expires_at</tt> timestamp is reached
- The owner releases their ownership claim on the instance
- The agent's consumer token is revoked by the agent itself or by APIX
- The instance is placed in quarantine state (fleet circuit breaker)</t>
      </section>
      <section anchor="delegation-and-privacy">
        <name>Delegation and Privacy</name>
        <t>Delegation grants are personal data: they link a device owner identity
to an agent identity. They MUST be subject to the same data minimisation
and retention rules as other personal data in device instance records.
On receipt of a device owner erasure request, all delegation grants for
that owner's instances MUST be revoked and deleted.</t>
      </section>
    </section>
    <section anchor="open-questions">
      <name>Open Questions</name>
      <t>The following questions are unresolved and explicitly invited for community
input:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Human operator as a first-class entity in the IoT service chain</strong>:
This specification recognises two human roles: the device owner
(<tt>owner_id</tt>, a passive claimant) and the authorised human approver in
the LER dual-control protocol (Section 9). Neither constitutes a
first-class, addressable participant in the automated service chain.  </t>
          <t>
The AINS Internet-Draft (<xref target="I-D.vandemeent-ains-discovery"/>) defines a
"human" entity type whose identity is bound to the person rather than
to any device — a human operator who can be directly addressed within
an agent ecosystem, for example via a phone number, a push endpoint,
or a terminal identifier. This raises the question of whether APIX
IoT should formalise an equivalent concept: a <strong>Human Operator
Profile</strong> that allows an automated IoT service chain to include a
callable human participant as an official link.  </t>
          <t>
Concrete motivating scenarios include: an agent requiring human
confirmation before executing a high-impact device command; a device
entering a fault state that requires human attention before the
automated chain can continue; and regulatory human-oversight
requirements for AI-driven device control (such as those implied by
EU AI Act Article 50).  </t>
          <t>
The existing LER dual-control protocol demonstrates that APIX already
supports the human-in-the-loop pattern in a specific context. The open
question is whether this pattern should be generalised into a
first-class Human Operator entity type with its own presence,
delegation, and contact-endpoint semantics — and what the privacy,
GDPR, and contact-protocol implications of doing so would be. A future
Human Operator Profile is the candidate home for this work. Community
input is invited on the scope, contact protocol requirements, and
governance model for such a profile.</t>
        </li>
        <li>
          <t><strong>Device API call budget as a capability descriptor</strong>: Adjacent
discovery specifications introduce rate limit fields on registered
services and devices. This specification deliberately omits a rate
limit field. Rate limiting as a defence against malicious or
abusive callers is not a discovery-layer concern: APIX's trust model
(O-levels, S-levels, consumer token system) addresses bad actors
systemically at the index layer, and individual device registrations
MUST NOT be designed around the assumption of hostile consumers.
Surfacing a device-level rate limit as a security measure would
reintroduce the adversarial framing that APIX's trust model is
specifically designed to retire.  </t>
          <t>
There is, however, a distinct and legitimate use case that is
unrelated to security: <strong>agent workflow planning against hardware
constraints</strong>. A resource-constrained embedded device — limited
processor, limited memory, firmware-defined command queue — has a
physical maximum throughput that is a factual property of the
device class, no different from its <tt>supported_api_versions</tt> or
<tt>presence_mode</tt>. An agent orchestrating a multi-step workflow
across a fleet of such devices needs this information before
execution begins, not as a wall it discovers mid-run. A future
<tt>api_call_budget</tt> object on the device class APM — framed
explicitly as a <strong>capability descriptor</strong>, not a security
mechanism — could serve this planning use case. Example fields:
<tt>max_commands_per_minute</tt> (hardware ceiling), <tt>typical_response_ms</tt>
(planning latency), <tt>concurrent_command_limit</tt> (firmware queue
depth). Community input is invited on whether this capability
descriptor should be standardised in a future revision, and on the
correct schema to represent hardware-bound throughput constraints
without reintroducing defensive rate-limit semantics.</t>
        </li>
      </ol>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="instance-token-security">
        <name>Instance Token Security</name>
        <t>Device instance tokens are long-lived secrets stored on constrained
hardware. Implementors MUST store tokens in hardware-backed secure
storage (secure enclave, TPM, or equivalent) where the device platform
supports it. Tokens MUST NOT be transmitted in log output, diagnostic
APIs, or any channel other than the APIX presence endpoint Authorization
header.</t>
        <t>The <tt>token_id</tt> is a non-secret correlation handle. It MAY be logged
and MAY appear in diagnostic interfaces without security risk.</t>
      </section>
      <section anchor="layer-2-enumeration-prevention">
        <name>Layer 2 Enumeration Prevention</name>
        <t>APIX MUST return an empty result set (not HTTP 404 or HTTP 403) for
authenticated queries that would match instances belonging to other
principals. An attacker with a valid consumer token MUST NOT be able
to determine whether a given <tt>instance_id</tt> or <tt>device_class_id</tt> exists
in the system by observing error responses.</t>
      </section>
      <section anchor="hub-compromise-scope">
        <name>Hub Compromise Scope</name>
        <t>A compromised hub instance can misrepresent the state (online status,
<tt>api_version</tt>, <tt>hub_gateway_endpoint</tt>) of devices it genuinely controls.
It cannot forge presence signals for devices whose instance tokens it
does not hold. The blast radius of a hub compromise is bounded to the
set of devices paired to that hub. This is a smaller blast radius than
<tt>cloud_relay</tt> compromise, where the manufacturer's cloud holds all
fleet tokens.</t>
      </section>
      <section anchor="presence-signal-replay">
        <name>Presence Signal Replay</name>
        <t>APIX MUST enforce that presence signals are processed at-most-once
within the heartbeat window. Duplicate signals within the same
<tt>heartbeat_interval_seconds</tt> window MUST be idempotently accepted
(no state change) rather than counted as separate registrations.</t>
      </section>
      <section anchor="physical-device-privacy">
        <name>Physical Device Privacy</name>
        <t>The two-layer model (Section 3) is a security requirement, not only
a privacy preference. Index implementations MUST enforce it at the
infrastructure layer. Returning instance-level data to unauthenticated
queries is a critical vulnerability, not a configuration error.</t>
      </section>
      <section anchor="apix-as-a-high-value-attack-target">
        <name>APIX as a High-Value Attack Target</name>
        <t>APIX occupies a structurally unique position: it is the single presence
endpoint for potentially millions of physical devices and holds the
mapping between device identifiers, network addresses, and owner
identities at global scale. A full compromise of the APIX index is
not a data breach in the conventional sense — it is a global occupancy
intelligence leak combined with the ability to disable an arbitrary set
of connected devices by mass-revoking their instance tokens. This threat
profile requires architectural mitigations beyond standard application
security.</t>
        <t>APIX implementations MUST satisfy the following architectural
requirements:</t>
        <ul spacing="normal">
          <li>
            <t>The presence endpoint (which receives device signals) MUST be
architecturally separated from the token store. A compromise of
the presence endpoint infrastructure MUST NOT yield access to the
token hash store or the Layer 2 owner-to-network-address mappings.</t>
          </li>
          <li>
            <t>APIX MUST NOT store plaintext device instance tokens at any point
in the live system. Only the SHA-256 hash of each token is stored,
as specified in Section 3. Hash storage and the presence endpoint
MUST run in separate trust boundaries.</t>
          </li>
          <li>
            <t>Token issuance (the process by which new tokens are generated and
delivered to manufacturers) MUST be performed in an air-gapped or
hardware-security-module (HSM) isolated process. Token issuance
infrastructure MUST NOT be reachable from the public internet.</t>
          </li>
          <li>
            <t>The presence endpoint MUST be geographically distributed across
independent infrastructure regions. No single region outage or
compromise MUST affect global device presence signalling.</t>
          </li>
          <li>
            <t>All administrative operations that affect token validity (revocation,
suspension, fleet circuit breaker actions) MUST be recorded in a
tamper-evident append-only audit log. This log MUST be replicated
to at least two geographically separate locations. Log entries MUST
be individually signed.</t>
          </li>
          <li>
            <t>APIX MUST publish an annual infrastructure security report disclosing
the number of tokens issued, rotated, and revoked; the number of
presence signals processed; and any confirmed security incidents.</t>
          </li>
        </ul>
      </section>
      <section anchor="fleet-circuit-breaker">
        <name>Fleet Circuit Breaker</name>
        <t>An emergency mechanism MUST be available to index operators to quarantine
a compromised manufacturer fleet or a rogue device class at the index
layer, without requiring physical access to the affected devices.</t>
        <t>Two distinct compromise scenarios are addressed:</t>
        <t><strong>Scenario A — Manufacturer systems compromised.</strong> An adversary has
gained access to the manufacturer's cloud infrastructure and is forging
presence signals on behalf of real devices (false liveness, false
network addresses, false api_version). The appropriate response is to
suspend the manufacturer account and revoke all fleet tokens for the
affected device classes, following the same atomic four-step procedure
defined for sanctions suspension in <xref target="APIX-CORE"/>. Token revocation
MUST trigger HTTP 401 <tt>token_revoked</tt> at the presence endpoint, and all
affected instances MUST be marked offline immediately.</t>
        <t><strong>Scenario B — Devices themselves are weaponised.</strong> The physical devices
are operating normally from the device credential perspective (valid
tokens, authentic presence signals) but are under adversary control
and are being used maliciously. In this scenario, revoking device tokens
would brick legitimate consumer devices without stopping the threat. The
appropriate response is presence signal suppression without token
revocation:</t>
        <t>APIX MUST support a quarantine state for individual device instances or
entire device classes. In quarantine state:</t>
        <ul spacing="normal">
          <li>
            <t>Presence signals from quarantined instances MUST continue to be
accepted at the presence endpoint. The device is unaware of the
quarantine; presence processing appears normal.</t>
          </li>
          <li>
            <t><tt>api_endpoint</tt> fields MUST be withheld from all Layer 2 query
responses for quarantined instances. The consuming agent receives
an instance record showing the device as online but with no
reachable endpoint. No agent can connect to the device through
APIX.</t>
          </li>
          <li>
            <t>Quarantined instances MUST be excluded from Layer 1 capability
searches, as if <tt>lifecycle_stage</tt> were <tt>end_of_life</tt>.</t>
          </li>
          <li>
            <t>The quarantine state MUST be reversible. When the quarantine is
lifted, <tt>api_endpoint</tt> fields are restored and the instance returns
to normal Layer 2 visibility.</t>
          </li>
          <li>
            <t>All presence signals received while an instance is quarantined
MUST be logged with enhanced detail (source IP, signal content,
timing) and retained for a minimum of twelve (12) months for law
enforcement purposes.</t>
          </li>
        </ul>
        <t>The fleet circuit breaker MUST be operable at three scopes:
<tt>instance</tt> (single device), <tt>device_class</tt> (all instances of a class),
and <tt>manufacturer</tt> (all classes and instances under an organisation
account). The scope MUST be explicitly declared in the activation
record. Activation MUST require authorisation from at least two
independent APIX operator roles (dual-control requirement).</t>
      </section>
      <section anchor="law-enforcement-cooperation-interface">
        <name>Law Enforcement Cooperation Interface</name>
        <t>APIX MUST provide a Law Enforcement Request (LER) interface: a
restricted-access channel through which authorised public authorities
may submit IP addresses of device instances identified as members of a
malicious botnet, together with a suppression action request.</t>
        <t><strong>Accepted jurisdictions:</strong></t>
        <t>Two authority tiers are defined. Tier I covers supranational judicial
instruments; Tier II covers national law enforcement requests. Both tiers
require a judicial authorisation document. Administrative orders without
judicial oversight MUST NOT be accepted at either tier.</t>
        <t><em>Tier I — Supranational (automatically accepted):</em></t>
        <t>Orders and provisional measures issued by the <strong>International Court of
Justice (ICJ)</strong> are accepted automatically and are not subject to the
Accepted Jurisdiction Whitelist. The ICJ is the principal judicial organ
of the United Nations (ICJ Statute, June 1945). Its provisional measures
under Article 41 of the ICJ Statute are legally binding on states and
represent the highest-authority legal instrument available for
cross-jurisdictional cases where no single national court has clear
competence over a multi-state botnet operation. An LER citing a verified
ICJ provisional measure or final judgment MUST be processed within 4
hours of receipt and is not subject to the 72-hour provisional reversal
window; the suppression remains in force for the duration stated in the
ICJ instrument.</t>
        <t><em>Tier II — National law enforcement (whitelist-governed):</em></t>
        <t>The LER interface MUST only accept requests from public authorities in
jurisdictions that satisfy ALL of the following criteria:</t>
        <ul spacing="normal">
          <li>
            <t>The jurisdiction has ratified the Budapest Convention on Cybercrime,
OR is the domicile jurisdiction of the APIX governing body (currently
Switzerland).</t>
          </li>
          <li>
            <t>The request is accompanied by a valid judicial authorisation document:
a court order, magistrate warrant, or equivalent judicial instrument
issued by a court of competent jurisdiction in the requesting state.</t>
          </li>
          <li>
            <t>The jurisdiction is included in the governing body's Accepted
Jurisdiction Whitelist, maintained as a public document and updated
by governing body board decision.</t>
          </li>
        </ul>
        <t><strong>Jurisdiction Contact Registry:</strong></t>
        <t>The governing body MUST maintain a Jurisdiction Contact Registry (JCR)
as part of the APIX operational infrastructure. The JCR is established
during system ramp-up, before the LER interface is opened for
submissions. A jurisdiction MUST NOT be added to the Accepted
Jurisdiction Whitelist until all three mandatory contact roles have
been confirmed for that jurisdiction.</t>
        <t>Three contact roles MUST be registered per Tier II jurisdiction:</t>
        <t><em>Operational contact</em> — the national authority responsible for
submitting LERs: typically the national cybercrime unit, CERT, or
equivalent law enforcement body with cybercrime mandate (e.g.,
Bundeskriminalamt in Germany, ANSSI in France, FBI Cyber Division in
the United States). This contact submits LER requests and provides
the IP address lists.</t>
        <t><em>Judicial contact</em> — the authority responsible for obtaining and
validating judicial authorisation: the Ministry of Justice, Attorney
General, Prosecutor General, or equivalent government legal division
with authority to commission court orders in the requesting
jurisdiction. This contact is the issuing or co-signing party for
the judicial authorisation document accompanying each LER. Including
the judicial/legal division of government in the contact structure
is REQUIRED — law enforcement submission without a validated judicial
pathway is insufficient to activate the LER process.</t>
        <t><em>Emergency contact</em> — a named duty officer or on-call role reachable
24 hours a day, 7 days a week, for Tier I (ICJ) and emergency
provisional national requests. MUST be distinct from the operational
contact and MUST have authority to act on behalf of the jurisdiction
without waiting for business-hours approval.</t>
        <t>For the <strong>ICJ (Tier I)</strong>, the governing body MUST establish contacts
with the following bodies during system ramp-up:</t>
        <ul spacing="normal">
          <li>
            <t><strong>ICJ Registry (Greffe de la Cour)</strong>: the administrative organ of
the Court, responsible for receiving and communicating all
instruments. Contact for standard ICJ instrument submission.</t>
          </li>
          <li>
            <t><strong>President's Office of the ICJ</strong>: the authority responsible for
ordering provisional measures under Article 41. Contact for
time-critical ICJ provisional measure cases requiring 4-hour
processing.</t>
          </li>
        </ul>
        <t>The governing body MUST formally notify each registered contact of
the following at initial establishment and whenever the LER framework
is materially updated:</t>
        <ol spacing="normal" type="1"><li>
            <t>The existence and purpose of the LER interface.</t>
          </li>
          <li>
            <t>The legal basis under which APIX operates (Swiss Stiftung, Budapest
Convention obligations, applicable data protection law).</t>
          </li>
          <li>
            <t>The contact's specific role in the LER process and what actions
are expected of them.</t>
          </li>
          <li>
            <t>The APIX operational security contact and escalation path.</t>
          </li>
          <li>
            <t>The jurisdiction's reference code in the JCR, to be cited in all
LER submissions from that jurisdiction.</t>
          </li>
        </ol>
        <t>The governing body MUST review and re-confirm all JCR contacts at
least annually. Contacts that cannot be confirmed MUST be flagged;
the associated jurisdiction MUST be placed in suspended status on the
Accepted Jurisdiction Whitelist until confirmed contacts are restored.
A jurisdiction in suspended status MUST NOT submit new LERs; active
suppressions from that jurisdiction remain in force.</t>
        <t><strong>Process tiers:</strong></t>
        <table>
          <thead>
            <tr>
              <th align="left">Tier</th>
              <th align="left">Authorisation required</th>
              <th align="left">Processing time</th>
              <th align="left">Effect</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ICJ instrument</td>
              <td align="left">Verified ICJ provisional measure or judgment</td>
              <td align="left">MUST be processed within 4 hours</td>
              <td align="left">Fleet circuit breaker per instrument scope; no 72-hour reversal window</td>
            </tr>
            <tr>
              <td align="left">Emergency provisional (national)</td>
              <td align="left">Written agency declaration with case reference; judicial authorisation to follow within 72 hours</td>
              <td align="left">MUST be processed within 4 hours of receipt</td>
              <td align="left">Fleet circuit breaker Scenario B (endpoint suppression); full review opens automatically</td>
            </tr>
            <tr>
              <td align="left">Standard (national)</td>
              <td align="left">Verified judicial authorisation document</td>
              <td align="left">MUST be processed within 48 hours of verification</td>
              <td align="left">Fleet circuit breaker action per request scope</td>
            </tr>
            <tr>
              <td align="left">Refusal</td>
              <td align="left">Authorisation absent, invalid, jurisdiction suspended in JCR, or contact roles not established</td>
              <td align="left">N/A</td>
              <td align="left">Request refused; attempt logged; aggregate count included in transparency report</td>
            </tr>
          </tbody>
        </table>
        <t>A national emergency provisional suppression that is not followed by
verified judicial authorisation within 72 hours MUST be automatically
reversed. The governing body MUST notify both the operational contact
and the judicial contact of the reversal. ICJ-based suppressions are
not subject to automatic reversal; they run for the duration specified
in the ICJ instrument.</t>
        <t><strong>LER submission protocol:</strong></t>
        <t>The LER interface is a restricted-access HTTPS endpoint. It is not publicly
documented or reachable from the open internet. Access is limited to network
addresses registered for the jurisdiction's operational contact in the JCR.</t>
        <t><em>Authentication:</em> LER submissions MUST use mutual TLS (mTLS). Each registered
operational contact is issued a client certificate by the APIX governing body
at the time their jurisdiction is onboarded to the JCR. The certificate is
scoped to the submitting jurisdiction's reference code. Certificate issuance
and renewal is the governing body's operational responsibility.</t>
        <t>Each JCR contact record MUST include a <tt>preferred_language</tt> field: a single
BCP 47 language tag (<xref target="RFC5646"/>) indicating the language in which APIX
conducts the voice callback verification with that contact. APIX MUST use this
language for all spoken exchanges during the callback procedure, including
reading the APIX TAN and requesting the personal verification code and uploader
auth TAN. If the contacted person responds in a different language, APIX MUST
treat this as an anomaly and log it, but MUST NOT reject the callback on
language grounds alone. Example values: <tt>"de"</tt> for Bundeskriminalamt,
<tt>"en"</tt> for FBI Cyber Division, <tt>"fr"</tt> for ANSSI.</t>
        <t><em>In-jurisdiction dual authorisation:</em> Each jurisdiction MUST register at least
two named operational contacts in the JCR, each holding an independently issued
client certificate. A single individual MUST NOT hold both certificates; APIX
MUST enforce this by verifying that the countersigning contact's certificate
subject is distinct from the submitting contact's certificate subject.</t>
        <t>A valid LER submission MUST be countersigned by a second registered contact
from the same jurisdiction before it enters the human review queue. The
protocol uses a two-step commit:</t>
        <ol spacing="normal" type="1"><li>
            <t>The primary contact submits the LER via their authenticated mTLS connection.
The submission is recorded with status <tt>pending_countersign</tt> and no review
is initiated.</t>
          </li>
          <li>
            <t>A second registered contact from the same jurisdiction MUST authenticate
via their own mTLS certificate and issue a countersign request referencing
the <tt>ler_id</tt> returned in the initial submission response. The countersign
window is 60 minutes for standard and ICJ tier; 20 minutes for
<tt>emergency_provisional</tt> tier.</t>
          </li>
          <li>
            <t>If the countersign is not received within the window, the submission MUST be
automatically rejected and logged with reason <tt>countersign_timeout</tt>. No
review is initiated and no suppression is applied.</t>
          </li>
          <li>
            <t>For <tt>emergency_provisional</tt> tier, the 4-hour processing commitment runs
from the timestamp of the countersign, not the initial submission.</t>
          </li>
        </ol>
        <t><em>Submission endpoint:</em></t>
        <t>The LER interface endpoint URL is not publicly published. It is
communicated to each jurisdiction's registered operational contact
as part of the JCR onboarding process. The interface requirements
are:</t>
        <artwork><![CDATA[
POST <ler-endpoint-url>
Authorization: mTLS client certificate (jurisdiction contact)
Content-Type: application/json
]]></artwork>
        <t>The <tt>&lt;ler-endpoint-url&gt;</tt> is operator-specific and MUST NOT be
discoverable from the public Index API. Implementations MUST ensure
the LER endpoint is not reachable from network addresses outside
those registered for the jurisdiction's operational contact in the JCR.</t>
        <t><em>Request format:</em></t>
        <sourcecode type="json"><![CDATA[
{
  "jurisdiction_ref": "JCR reference code -- issued by APIX",
  "tier": "emergency_provisional | standard | icj",
  "judicial_ref": "court order or ICJ instrument reference number",
  "judicial_doc_url": "HTTPS URL -- APIX-verifiable document",
  "case_ref": "internal case reference of the submitting authority",
  "device_addresses": [
    {"type": "ipv4", "address": "203.0.113.42"},
    {"type": "ipv6", "address": "2001:db8::1"}
  ],
  "requested_scope": "instance | device_class | manufacturer",
  "requested_duration_hours": 168,
  "emergency_declaration": "tier: emergency_provisional only"
}
]]></sourcecode>
        <t><tt>device_addresses</tt> MUST contain at least one entry. Bulk requests without
specific device addresses (e.g., "all devices in jurisdiction X") MUST be
refused per the Non-Surveillance Commitment in <xref target="APIX-CORE"/> Section 5.</t>
        <t><tt>requested_duration_hours</tt> is advisory. APIX MUST apply the suppression for
the duration specified in the judicial instrument if it differs. For
<tt>emergency_provisional</tt>, the suppression is automatically reversed after 72
hours unless judicial authorisation is verified (Section above).</t>
        <t><em>Response format:</em></t>
        <sourcecode type="json"><![CDATA[
{
  "ler_id": "APIX-assigned unique LER identifier",
  "status": "accepted | refused | pending_countersign | ...",
  "estimated_processing_seconds": 14400,
  "refusal_reason": "null | invalid_jurisdiction | ... (see spec)",
  "apix_tan": "one-time code (pending_countersign only; null)",
  "uploader_auth_tan": "one-time code (countersign only; null)"
}
]]></sourcecode>
        <t><tt>ler_id</tt> is the only external reference APIX issues for an LER case. It MUST
be used in all subsequent communications about the case and is included in the
annual transparency report aggregate statistics.</t>
        <t><tt>apix_tan</tt> and <tt>uploader_auth_tan</tt> are one-time codes generated per submission
and returned only in the initial POST response when the submission is accepted
for the countersign step. They are shown once and never again.</t>
        <t>APIX MUST NOT provide any endpoint or mechanism to retrieve the TAN values
after the initial POST response. The fields MUST be absent — not null, not
redacted — from all subsequent API responses including LER status queries,
countersign responses, and any other interface. No GET path to TAN values
exists. This follows the same principle as one-time API key generation: if the
recipient does not retain the values from the initial response, they are
permanently unavailable.</t>
        <t>Both codes expire upon completion of any verification exchange in which
credentials are requested from the contacted person, regardless of whether
the exchange results in confirmation or failure. An unanswered call attempt
does not constitute a verification exchange and does not consume the codes.
A new submission generates new codes; expired codes cannot be reissued for
the same <tt>ler_id</tt>.</t>
        <t>APIX MUST store both codes internally in a form that permits verification
during the callback (hashed) but does not expose plaintext values through
any interface after the initial POST response.</t>
        <t><em>Countersign endpoint:</em></t>
        <t>The second registered contact MUST submit the countersign via an authenticated
request to the same LER interface:</t>
        <artwork><![CDATA[
POST <ler-endpoint-url>/countersign
Authorization: mTLS client certificate (second jurisdiction contact)
Content-Type: application/json
]]></artwork>
        <sourcecode type="json"><![CDATA[
{
  "ler_id": "APIX-assigned LER identifier (initial submission)",
  "countersign_statement": "confirmation statement (see spec)"
}
]]></sourcecode>
        <t>Response:</t>
        <sourcecode type="json"><![CDATA[
{
  "ler_id": "...",
  "status": "countersigned | rejected",
  "rejection_reason": "null | window_expired | same_contact | ..."
}
]]></sourcecode>
        <t>On <tt>countersigned</tt> status, the submission transitions to the callback
verification step (see below). On <tt>rejected</tt>, the submission is terminated and
MUST be re-submitted from the beginning.</t>
        <t><em>Submission callback verification:</em></t>
        <t>After countersign is confirmed and before the submission enters the human
review queue, APIX MUST perform a voice callback to the jurisdiction's
registered operational contact. The callback uses three independent
verification elements:</t>
        <ul spacing="normal">
          <li>
            <t><strong>APIX TAN</strong> — a one-time code returned in the initial submission response.
APIX reads this to the contacted person at the start of the call, proving
the caller is the legitimate APIX system.</t>
          </li>
          <li>
            <t><strong>Personal verification code</strong> — a standing secret established per
registered contact during JCR onboarding, known only to that individual and
APIX. This code is never transmitted via any API or electronic channel.</t>
          </li>
          <li>
            <t><strong>Uploader auth TAN</strong> — a one-time code returned in the initial submission
response alongside the APIX TAN. The contacted person reads this back to
APIX, binding the answering individual to the specific submission.</t>
          </li>
        </ul>
        <t>APIX MUST require both the personal verification code and the uploader auth
TAN together in a single exchange. Neither alone constitutes confirmation.</t>
        <t>The callback procedure is:</t>
        <ol spacing="normal" type="1"><li>
            <t>APIX retrieves the stored callback number from the JCR record for the
submitting jurisdiction.</t>
          </li>
          <li>
            <t>Immediately before initiating the callback (within 5 minutes of countersign
confirmation), APIX MUST re-validate the stored number against the
independent authoritative public source established at onboarding time.</t>
          </li>
          <li>
            <t>If the stored number does not match the current public record, APIX MUST
NOT call either number. The submission MUST be immediately suspended and
an incident procedure initiated. No suppression is applied during
suspension. The submission remains suspended until the incident is
resolved and the callback number is re-established with confidence.</t>
          </li>
          <li>
            <t>If the stored number matches the current public record, APIX initiates the
call to the stored number and reads the APIX TAN. This allows the contacted
person to verify they are speaking to the legitimate APIX system before
providing any credential.</t>
          </li>
          <li>
            <t>APIX then requests, in a single exchange: the contacted person's full name,
personal verification code, and uploader auth TAN.</t>
          </li>
          <li>
            <t>APIX verifies all three against its stored records. Any mismatch on any
element MUST result in immediate termination of the call. No partial
credit applies. The failure mode then determines the disposition (see
below).</t>
          </li>
          <li>
            <t>If the call is not answered on the first attempt, APIX MUST make one
further attempt before permanently rejecting the submission. Two
unanswered attempts exhaust the callback allowance. If the contact
answers and a verification exchange begins, no further attempt is
permitted regardless of outcome — the exchange result is final. If the
contacted person explicitly denies any knowledge of the submission, the
LER is permanently rejected with reason <tt>callback_verification_failed</tt>
(see below).</t>
          </li>
        </ol>
        <t>Callback failure dispositions differ by cause and MUST be handled distinctly:</t>
        <t><tt>callback_verification_failed</tt> — operational failure, permanent rejection:
Triggered when credential verification fails (wrong or absent uploader auth
TAN or personal verification code), when the call is not answered after two
attempts, or when the contact denies the submission. The LER is permanently
rejected. This is not a security event: no Security Officer escalation is
initiated. The jurisdiction MUST file a new LER; the rejected <tt>ler_id</tt> cannot
be recovered. Logged as operational failure.</t>
        <t><tt>callback_number_mismatch</tt> — security event, submission suspended:
Triggered when the stored callback number does not match the current public
record at re-validation time (step 2 above). The submission is suspended
pending incident resolution. Security Officer is notified. No suppression
is applied. The submission remains suspended until the callback number is
re-established with confidence and the incident is closed.</t>
        <t><tt>callback_interception_reported</tt> — confirmed security incident, submission
suspended: Triggered when the contacted person reports having already received
a call from a party claiming to be APIX before this call. The submission is
immediately suspended. The Security Officer and a governing body board member MUST be
notified. The incident is treated as a confirmed attempt to compromise the LER
verification process and handled under the security incident response procedure
in <xref target="APIX-CORE"/> Section 12.</t>
        <t>The callback confirmation is a mandatory pre-condition for entering the human
review queue. It does not substitute for the human review and dual-control
activation procedure.</t>
        <t>APIX MUST NOT acknowledge by any means that a suppression is active on a
specific device or instance when responding to queries from parties other than
the submitting jurisdiction. Device owner queries for affected instances MUST
receive responses indistinguishable from an offline or unreachable instance.</t>
        <t><strong>Audit logging obligations:</strong></t>
        <t>Every event in the LER lifecycle MUST be written to the tamper-evident
audit log defined in <xref target="APIX-CORE"/> Section 12. Log entries MUST be
individually signed and immutable. The following events are individually
logged:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Event</th>
              <th align="left">Logged fields</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">LER received</td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, jurisdiction_ref, tier, device_addresses count, receiving operator identity</td>
            </tr>
            <tr>
              <td align="left">Countersign received</td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, countersigning contact certificate subject (distinct from submitting contact), window elapsed</td>
            </tr>
            <tr>
              <td align="left">Countersign timeout</td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, window duration, disposition (auto-rejected)</td>
            </tr>
            <tr>
              <td align="left">Callback number validated</td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, stored number hash, public record hash, match result (match / mismatch)</td>
            </tr>
            <tr>
              <td align="left">Callback phone mismatch — <tt>callback_number_mismatch</tt></td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, stored number hash, public record hash, incident_id; disposition: suspended</td>
            </tr>
            <tr>
              <td align="left">Callback confirmed</td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, attempt count, name match (boolean), personal code match (boolean), uploader auth TAN match (boolean), governing body operator identity (caller)</td>
            </tr>
            <tr>
              <td align="left">Callback rejected — <tt>callback_verification_failed</tt></td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, attempt count, cause (credential_mismatch / no_answer / contact_denied), failed element if credential_mismatch (name / personal_code / uploader_auth_tan — do not log the submitted value); disposition: permanently rejected, no escalation</td>
            </tr>
            <tr>
              <td align="left">Callback suspended — <tt>callback_interception_reported</tt></td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, governing body operator identity (caller), contact statement summary; disposition: suspended, Security Officer + board member notified</td>
            </tr>
            <tr>
              <td align="left">LER refused</td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, refusal_reason, reviewing operator identity</td>
            </tr>
            <tr>
              <td align="left">Suppression activated</td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, scope, device instance count affected, authorising operator identities (both, per dual-control)</td>
            </tr>
            <tr>
              <td align="left">Suppression reversed</td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, reason (72h expiry / judicial doc not verified / operator decision), reversing operator identity</td>
            </tr>
            <tr>
              <td align="left">Review completed</td>
              <td align="left">
                <tt>ler_id</tt>, timestamp, reviewer identity, decision (confirmed / escalated / reversed), notes</td>
            </tr>
          </tbody>
        </table>
        <t>The audit log MUST be the system of record for all LER activity. The
annual transparency report derives its aggregate statistics from it;
the log is the authoritative source and MUST be retained for a minimum
of seven (7) years from the date of each entry.</t>
        <t><strong>Human authorisation and review:</strong></t>
        <t>APIX MUST NOT activate a suppression through a purely automated path.
Every suppression activation requires human authorisation and post-hoc
review by a named, accountable operator. The requirements differ by tier:</t>
        <t><em>Standard and ICJ tiers:</em></t>
        <ol spacing="normal" type="1"><li>
            <t>Upon receipt of a valid LER submission (certificate valid, format
valid, jurisdiction in accepted whitelist), the submission enters a
human review queue. No suppression is active at this point.</t>
          </li>
          <li>
            <t>A designated LER reviewer (a named APIX operator with the <tt>ler_review</tt>
role) MUST read the submission and the referenced judicial document
before authorising activation.</t>
          </li>
          <li>
            <t>Activation MUST follow the dual-control requirement of the fleet
circuit breaker (<xref target="APIX-CORE"/> Section 12): two independent
operators with the <tt>ler_activate</tt> role MUST independently confirm
before suppression is applied. Neither operator may be the same
individual who reviewed the submission.</t>
          </li>
          <li>
            <t>The activation record in the audit log MUST include the identities
of both activating operators and the timestamp of each confirmation.</t>
          </li>
          <li>
            <t>A post-activation review MUST be completed within 72 hours by a
third operator (the LER oversight role) confirming that the
activation was lawful, proportionate, and consistent with the
judicial instrument scope. The review outcome MUST be recorded
in the audit log.</t>
          </li>
        </ol>
        <t><em>Emergency provisional tier (4-hour window):</em></t>
        <t>The 4-hour processing commitment creates time pressure. The following
modified procedure applies:</t>
        <ol spacing="normal" type="1"><li>
            <t>Automated validation on receipt: certificate valid, jurisdiction in
whitelist, emergency declaration field present, at least one
device address specified. If validation passes, the submission
immediately enters the emergency queue with an alert to the
on-call LER reviewer.</t>
          </li>
          <li>
            <t>The on-call LER reviewer MUST authorise activation within 4 hours.
Activation requires only one authorising operator (single-control)
in this tier due to the time constraint.</t>
          </li>
          <li>
            <t>A second operator MUST complete a dual-control confirmation within
24 hours of activation. If the second confirmation is not received
within 24 hours, the suppression MUST be automatically reversed.</t>
          </li>
          <li>
            <t>The post-activation oversight review (step 5 above) MUST be
completed within 24 hours of activation (not 72 hours) for
emergency provisional cases.</t>
          </li>
          <li>
            <t>Judicial authorisation MUST be verified within 72 hours (the
automatic reversal window). If the judicial document review
confirms the authorisation is invalid or the scope is exceeded,
the suppression MUST be reversed immediately regardless of the
dual-control confirmation in step 3.</t>
          </li>
        </ol>
        <t><strong>Operator role structure:</strong></t>
        <t>The following named operator roles MUST be defined and staffed in the
APIX operating model. No individual MUST hold more than two of these
roles simultaneously (segregation of duties):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Role</th>
              <th align="left">Responsibility</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>ler_reviewer</tt></td>
              <td align="left">Reviews LER submissions and judicial documents before authorisation. May not activate.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ler_activate</tt></td>
              <td align="left">Provides one of the two required authorisation confirmations for activation. May not review the same submission.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ler_oversight</tt></td>
              <td align="left">Performs post-activation review. Must be independent of both reviewer and activating operators for the case under review.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ler_emergency</tt></td>
              <td align="left">On-call role, 24/7. Holds both <tt>ler_reviewer</tt> and single-control <tt>ler_activate</tt> authority for emergency provisional tier only.</td>
            </tr>
          </tbody>
        </table>
        <t>Role assignments MUST be published in the governing body's annual security report.
Changes to role assignments MUST be logged in the audit log.</t>
        <t>Any operator who receives an instruction — from any source, including
governing body board members — to activate a suppression outside this procedure
MUST refuse and MUST exercise the whistleblower protection right
defined in <xref target="APIX-CORE"/> Section 12. This right is not waivable by
role, contract, or board resolution.</t>
        <t><strong>Suppression effect:</strong></t>
        <t>LER-triggered suppression follows the fleet circuit breaker Scenario B
model: presence signals continue to be accepted (the adversary controlling
the botnet has no signal of identification), while <tt>api_endpoint</tt> fields
are withheld from Layer 2 responses. The suppression scope is specified
by the requesting authority as a list of device IPv4 and/or IPv6
addresses; APIX matches these against active presence signal source
addresses.</t>
        <t>APIX MUST NOT disclose to any party other than the requesting authority
that a specific device instance is under LER-triggered suppression.
Device owners querying their instance records MUST receive the same
response as for any offline or unreachable instance; the suppression
reason MUST NOT be disclosed.</t>
        <t><strong>Transparency:</strong></t>
        <t>APIX MUST publish aggregate LER statistics in its annual transparency
report, disclosing: number of LER requests received by requesting
jurisdiction, number accepted, number refused, number of provisional
suppressions reversed, and number of device instances affected (by
jurisdiction, not by individual identity). No individual case details,
case references, or device identifiers MAY appear in the transparency
report.</t>
      </section>
      <section anchor="bad-bot-graduated-response">
        <name>Bad-Bot Graduated Response</name>
        <t>APIX MUST maintain a Bad-Bot Registry: a classified list of device
instance identifiers and consumer token identifiers that have been
confirmed as operating maliciously. Sources for registry entries include:
LER submissions (Section 5.7), manufacturer abuse reports, and APIX
operator investigation of anomalous signal patterns (e.g., rapid
multi-instance registration from a single IP, heartbeat flooding, or
token reuse patterns inconsistent with legitimate device operation).</t>
        <t>Three response tiers are defined. The active tier for each registry
entry MUST be explicitly recorded in the Bad-Bot Registry and MUST be
changeable by operator action.</t>
        <t><strong>Tier 1 — <tt>observe</tt></strong> (investigation in progress; entry not yet
confirmed hostile or confirmation is recent):</t>
        <ul spacing="normal">
          <li>
            <t>Presence endpoint: Accept signal normally. Instance record updated.
HTTP 200 returned. No signal to the device that it is under
observation.</t>
          </li>
          <li>
            <t>Consumer query endpoint: Full response returned normally.</t>
          </li>
          <li>
            <t>Logging: Enhanced. All presence signals and consumer queries from
this identity MUST be logged with full detail (IP, payload, timing,
response) and retained for a minimum of twelve (12) months.</t>
          </li>
        </ul>
        <t><strong>Tier 2 — <tt>degrade</tt></strong> (confirmed hostile; investigation active;
covert restriction required to limit harm without alerting adversary):</t>
        <ul spacing="normal">
          <li>
            <t>Presence endpoint: Accept signal normally (HTTP 200). Instance record
updated to reflect online status. However, <tt>api_endpoint</tt> fields MUST
be withheld from all Layer 2 query responses for the affected instance
(fleet circuit breaker Scenario B). If active blocking of the presence
signal itself is additionally required during this phase, APIX MUST
return HTTP 401 with error code <tt>token_revoked</tt> — identical to a
normal token rotation response. This response MUST NOT include any
indication that the device has been identified as malicious.</t>
          </li>
          <li>
            <t>Consumer query endpoint: Response returned with an intentional
processing delay of 2–10 seconds (configurable per entry). Results
MAY be limited to high-trust entries only (<tt>org_level_min: O-2</tt>,
<tt>service_level_min: S-2</tt>). No error is returned; the delay and
filtering are silent.</t>
          </li>
          <li>
            <t>Logging: Enhanced, as per <tt>observe</tt>.</t>
          </li>
        </ul>
        <t><strong>Tier 3 — <tt>block</tt></strong> (law enforcement action taken or imminent;
covert restriction no longer required):</t>
        <ul spacing="normal">
          <li>
            <t>Presence endpoint: MUST return HTTP 401 with error code
<tt>device_quarantined</tt>. This response explicitly signals that the
device's APIX access has been administratively suspended. This tier
MUST be activated in coordination with the relevant law enforcement
authority and SHOULD be timed to coincide with or follow an
enforcement action (arrest, infrastructure seizure, botnet takedown).</t>
          </li>
          <li>
            <t>Consumer query endpoint: MUST return HTTP 403. No result data
returned.</t>
          </li>
          <li>
            <t>Logging: Full detail, with real-time alert to APIX operator security
team.</t>
          </li>
        </ul>
        <t>Tier transitions MUST follow the direction <tt>observe</tt> → <tt>degrade</tt> →
<tt>block</tt>. Downgrade (e.g., <tt>block</tt> to <tt>degrade</tt>) is permitted only by
explicit operator authorisation with documented justification. Removal
from the Bad-Bot Registry requires dual-control operator authorisation
and is logged permanently in the tamper-evident audit log.</t>
        <t>The existence of the Bad-Bot Registry and its aggregate statistics
(total entries by tier, by source type, by jurisdiction) MUST be
disclosed in the annual transparency report. Individual registry entries
MUST NOT be disclosed publicly.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC5646">
          <front>
            <title>Tags for Identifying Languages</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object. It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="47"/>
          <seriesInfo name="RFC" value="5646"/>
          <seriesInfo name="DOI" value="10.17487/RFC5646"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="APIX-CORE" target="https://datatracker.ietf.org/doc/draft-rehfeld-apix-core/">
          <front>
            <title>API Index (APIX): Core Infrastructure for Autonomous Agent Service Discovery</title>
            <author initials="C." surname="Rehfeld">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rehfeld-apix-core-06"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8594">
          <front>
            <title>The Sunset HTTP Header Field</title>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This specification defines the Sunset HTTP response header field, which indicates that a URI is likely to become unresponsive at a specified point in the future. It also defines a sunset link relation type that allows linking to resources providing information about an upcoming resource or service sunset.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8594"/>
          <seriesInfo name="DOI" value="10.17487/RFC8594"/>
        </reference>
        <reference anchor="RFC9745">
          <front>
            <title>The Deprecation HTTP Response Header Field</title>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>The Deprecation HTTP response header field is used to signal to consumers of a resource (identified by a URI) that the resource will be or has been deprecated. Additionally, the deprecation link relation can be used to link to a resource that provides further information about planned or existing deprecation. It may also provide ways in which client application developers can best manage deprecation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9745"/>
          <seriesInfo name="DOI" value="10.17487/RFC9745"/>
        </reference>
        <reference anchor="I-D.vandemeent-ains-discovery">
          <front>
            <title>AINS: AInternet Name Service - Agent Discovery and Trust Resolution Protocol</title>
            <author fullname="Jasper van de Meent" initials="J." surname="van de Meent">
              <organization>Humotica</organization>
            </author>
            <author fullname="Root AI" initials="R." surname="AI">
              <organization>Humotica</organization>
            </author>
            <date day="29" month="March" year="2026"/>
            <abstract>
              <t>   This document specifies AINS (AInternet Name Service), a protocol for
   discovery, identification, and trust resolution of autonomous agents
   (AI agents, devices, humans, and services) in heterogeneous networks.
   AINS defines a transport-independent logical namespace for agents, a
   structured record format combining identity, capabilities, and
   cryptographic trust metadata, and a resolution protocol based on
   HTTPS.  Unlike the Domain Name System (DNS), which maps names to
   network addresses, AINS maps agent identifiers to rich metadata
   objects that include capabilities, trust scores, endpoint
   information, and references to companion provenance protocols.  AINS
   federates through signed append-only replication logs, enabling
   multi-registry deployments without central authority while preserving
   auditability.  This specification is designed to complement TIBET
   [TIBET], JIS [JIS], UPIP [UPIP], and RVP [RVP].

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-vandemeent-ains-discovery-01"/>
        </reference>
        <reference anchor="APIX-SERVICES" target="https://datatracker.ietf.org/doc/draft-rehfeld-apix-services/">
          <front>
            <title>APIX Services Profile: Discovery Infrastructure for Web API and Bot Services</title>
            <author initials="C." surname="Rehfeld">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rehfeld-apix-services-03"/>
        </reference>
        <reference anchor="MATTER" target="https://csa-iot.org/all-solutions/matter/">
          <front>
            <title>Matter Specification</title>
            <author>
              <organization>Connectivity Standards Alliance</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="OPC-UA" target="https://opcfoundation.org/about/opc-technologies/opc-ua/">
          <front>
            <title>OPC Unified Architecture</title>
            <author>
              <organization>OPC Foundation</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="OCPP" target="https://www.openchargealliance.org/protocols/ocpp/">
          <front>
            <title>Open Charge Point Protocol</title>
            <author>
              <organization>Open Charge Alliance</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 2312?>

<section anchor="change-log">
      <name>Change Log</name>
      <t><strong>-00:</strong> Initial submission.</t>
      <t><strong>-01:</strong> Stream and intended status changed: the document moves from the
Independent Submission stream (Informational) to the IETF stream (Standards
Track), following IETF dispatch guidance. No other content changes.</t>
      <t><strong>-02:</strong> Alignment with Regulation (EU) 2023/2854 (Data Act). The two-layer
model (public device class, manufacturer-owned; private device instance,
owner-controlled) is structurally aligned with the Data Act's data-access
obligations: instance data is held in the private Layer 2 record and
disclosed only under owner-granted authorisation (see Agent Delegation),
while the class remains public. The access-by-design obligations of the Data
Act apply from 12 September 2026.</t>
      <t><strong>-03:</strong> IoT capability taxonomy expanded for cross-segment seeding. New
top-level terms <tt>industrial</tt>, <tt>mobility</tt>, <tt>building</tt>, <tt>logistics</tt>, <tt>city</tt>,
<tt>health</tt>, <tt>environment</tt>, <tt>agriculture</tt>, and a cross-cutting <tt>energy</tt>
namespace, each with 2-6 child terms covering the principal sub-domains.
Additional <tt>home</tt> subdomains (<tt>home.security</tt>, <tt>home.lighting</tt>, <tt>home.audio</tt>,
<tt>home.water</tt>, plus appliance terms for cleaning and coffee). The orphan root
term <tt>iot</tt> is withdrawn (the IoT nature of a service is encoded in
<tt>spec.type</tt>, not as a capability). <tt>home.energy</tt>, <tt>home.energy.tariff</tt>, and
<tt>home.energy.grid</tt> (proposed in -02, never operational) are replaced with
cross-cutting <tt>energy</tt>, <tt>energy.tariff</tt>, and <tt>energy.grid</tt>. Alignment notes
added to the IANA Considerations preamble pointing at <xref target="MATTER"/> for
<tt>home.*</tt>, <xref target="OPC-UA"/> Companion Specifications for <tt>industrial.*</tt>, and
<xref target="OCPP"/> for <tt>mobility.charging</tt>. Three new informative references: Matter,
OPC UA, OCPP. Editorial: BCP 14 boilerplate updated to the current
post-RFC 8174 form. Top-level body section headings normalised to start at
level 1, aligning with kramdown-rfc convention. Two HTTP+JSON examples
(presence register and hub-relay register) re-tagged from <tt>~~~json</tt> to
<tt>~~~</tt> because the embedded HTTP request line breaks JSON parse.
Cross-references updated to the co-submission cluster (core-06,
services-03). No normative change to the wire format; the additions take
effect through the registry lifecycle defined in <xref target="APIX-SERVICES"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="additions-to-the-apix-protocol-type-registry">
        <name>Additions to the APIX Protocol Type Registry</name>
        <t>This document requests the following additions to the Protocol Type
Registry maintained by the governing body at
<tt>apix.example.org/registry/protocols</tt>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Registry value</th>
              <th align="left">Standard</th>
              <th align="left">Spider behaviour</th>
              <th align="left">Status</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>device-class</tt></td>
              <td align="left">APIX IoT Device Profile (this document)</td>
              <td align="left">No Spider crawl -- presence-based liveness</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>hub</tt></td>
              <td align="left">APIX IoT Device Profile (this document)</td>
              <td align="left">No Spider crawl -- presence-based liveness</td>
              <td align="left">active</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="apix-presence-mode-registry">
        <name>APIX Presence Mode Registry</name>
        <t>This document defines the initial contents of the APIX Presence Mode
Registry, maintained by the governing body at
<tt>apix.example.org/registry/presence-modes</tt>. Values in this registry MUST
be used in the <tt>presence_mode</tt> field of device class APMs.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Trust ceiling</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>push</tt></td>
              <td align="left">Device signals directly to APIX presence endpoint without intermediary</td>
              <td align="left">S-4</td>
            </tr>
            <tr>
              <td align="left">
                <tt>cloud_relay</tt></td>
              <td align="left">Manufacturer cloud relays signals on behalf of the device</td>
              <td align="left">S-1</td>
            </tr>
            <tr>
              <td align="left">
                <tt>hub</tt></td>
              <td align="left">Hub gateway relays signals for mesh-protocol devices</td>
              <td align="left">S-1</td>
            </tr>
          </tbody>
        </table>
        <t>New values MAY be registered by the governing body through
its registry extension process. Each new value MUST specify the trust
ceiling it imposes and the conditions under which APIX can independently
verify the signal's authenticity.</t>
      </section>
      <section anchor="apix-device-delegation-scope-registry">
        <name>APIX Device Delegation Scope Registry</name>
        <t>This document defines the initial contents of the APIX Device Delegation
Scope Registry, maintained by the governing body at
<tt>apix.example.org/registry/delegation-scopes</tt>. Values in this registry MUST
be used in the <tt>scopes</tt> field of delegation grant requests (Section 6.3).</t>
        <table>
          <thead>
            <tr>
              <th align="left">Scope value</th>
              <th align="left">Description</th>
              <th align="left">Requires</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>devices.read</tt></td>
              <td align="left">Read Layer 2 device instance records (network addresses, <tt>api_endpoint</tt>) for delegated instances</td>
              <td align="left">—</td>
            </tr>
            <tr>
              <td align="left">
                <tt>devices.presence</tt></td>
              <td align="left">Receive presence change notifications (online/offline transitions) via webhook for delegated instances</td>
              <td align="left">—</td>
            </tr>
            <tr>
              <td align="left">
                <tt>devices.command</tt></td>
              <td align="left">Call the manufacturer's device API via <tt>api_endpoint</tt> on behalf of the device owner</td>
              <td align="left">
                <tt>devices.read</tt></td>
            </tr>
          </tbody>
        </table>
        <t>New scope values MAY be registered by the governing body.
Each new scope MUST specify: the operations it permits, any prerequisite
scopes, and whether it implies any data access beyond what is already
visible in the device instance record.</t>
      </section>
      <section anchor="additions-to-the-apix-capability-taxonomy-registry">
        <name>Additions to the APIX Capability Taxonomy Registry</name>
        <t>This document requests the following additions to the Capability Taxonomy
Registry maintained by the governing body at
<tt>apix.example.org/registry/capabilities</tt>. The starter set seeds the namespace
for the physical-world verticals an IoT discovery layer must serve — beyond
connected home appliances this includes industrial IoT, mobility, commercial
building automation, logistics, smart-city services, connected health,
environment, agriculture, and a cross-cutting <tt>energy</tt> namespace.</t>
        <t>Where applicable, terms are intended to align with established external
device-type taxonomies, so that a device class registered in APIX can be
declared with a term that an implementer of the external taxonomy
recognises. Implementations and proposed additions SHOULD consult:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="MATTER"/> device types for the <tt>home.*</tt> subtree.</t>
          </li>
          <li>
            <t><xref target="OPC-UA"/> Companion Specifications for the <tt>industrial.*</tt> subtree.</t>
          </li>
          <li>
            <t><xref target="OCPP"/> for <tt>mobility.charging</tt>.</t>
          </li>
        </ul>
        <t>The governing body applies the governance process defined in
<xref target="APIX-SERVICES"/> (proposal, quarterly review, deprecation lifecycle) when
reconciling proposed additions with these external taxonomies. A proposed
addition's evaluation SHOULD include whether an equivalent term already
exists in the named external taxonomies; where alignment is possible, the
registry entry's <em>Description</em> SHOULD note the corresponding external term.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Term</th>
              <th align="left">Description</th>
              <th align="left">Status</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>home</tt></td>
              <td align="left">Smart home services (residential scope)</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.appliance</tt></td>
              <td align="left">Connected home appliances (device-class services)</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.appliance.dishwasher</tt></td>
              <td align="left">Dishwasher appliance</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.appliance.heating</tt></td>
              <td align="left">Heating and climate control</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.appliance.washing</tt></td>
              <td align="left">Washing machine and dryer</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.appliance.cooking</tt></td>
              <td align="left">Oven, hob, and cooking appliances</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.appliance.refrigeration</tt></td>
              <td align="left">Refrigerator and freezer</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.appliance.cleaning</tt></td>
              <td align="left">Robotic vacuum and other cleaning devices</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.appliance.coffee</tt></td>
              <td align="left">Connected coffee and espresso machines</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.security</tt></td>
              <td align="left">Locks, alarms, cameras, and sensors</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.lighting</tt></td>
              <td align="left">Connected lighting (bulbs, switches, scenes)</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.audio</tt></td>
              <td align="left">Smart speakers and multi-room audio</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>home.water</tt></td>
              <td align="left">Water metering and leak detection</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>energy</tt></td>
              <td align="left">Energy services (cross-cutting across home, building, industrial, mobility)</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>energy.tariff</tt></td>
              <td align="left">Energy tariff and pricing APIs</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>energy.grid</tt></td>
              <td align="left">Grid demand, load-balancing, and curtailment signals</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>industrial</tt></td>
              <td align="left">Industrial IoT (sensors, machines, and process data)</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>industrial.manufacturing</tt></td>
              <td align="left">Manufacturing-line equipment and process data</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>industrial.machine</tt></td>
              <td align="left">Machine state, control, and telemetry</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>industrial.process</tt></td>
              <td align="left">Process-control data (continuous and batch processes)</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>industrial.predictive-maintenance</tt></td>
              <td align="left">Condition monitoring and failure prediction</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>industrial.energy</tt></td>
              <td align="left">Industrial energy management and metering</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>mobility</tt></td>
              <td align="left">Connected mobility services</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>mobility.vehicle</tt></td>
              <td align="left">Connected vehicle telemetry and services</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>mobility.charging</tt></td>
              <td align="left">EV charging services (see <xref target="OCPP"/>)</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>mobility.fleet</tt></td>
              <td align="left">Fleet management services</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>mobility.telematics</tt></td>
              <td align="left">Vehicle telematics data feeds</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>building</tt></td>
              <td align="left">Commercial building automation</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>building.hvac</tt></td>
              <td align="left">Heating, ventilation, and air conditioning systems</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>building.lighting</tt></td>
              <td align="left">Commercial lighting control</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>building.access</tt></td>
              <td align="left">Access control and door systems</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>building.metering</tt></td>
              <td align="left">Sub-metering (electricity, water, gas, heat)</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>logistics</tt></td>
              <td align="left">Logistics, asset tracking, and warehousing</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>logistics.tracking</tt></td>
              <td align="left">Asset and shipment tracking</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>logistics.cold-chain</tt></td>
              <td align="left">Temperature-controlled chain monitoring</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>logistics.warehousing</tt></td>
              <td align="left">Warehouse and yard IoT</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>city</tt></td>
              <td align="left">Smart city services</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>city.parking</tt></td>
              <td align="left">Parking availability and reservation</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>city.lighting</tt></td>
              <td align="left">Street lighting control</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>city.waste</tt></td>
              <td align="left">Waste collection and bin telemetry</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>city.traffic</tt></td>
              <td align="left">Traffic flow and signalling</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>health</tt></td>
              <td align="left">Connected health services</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>health.wearable</tt></td>
              <td align="left">Consumer fitness and activity wearables</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>health.medical</tt></td>
              <td align="left">Medical devices. Use of this term does not imply compliance with applicable medical device regulation; operators remain responsible for regulatory conformity.</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>environment</tt></td>
              <td align="left">Environmental monitoring</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>environment.air-quality</tt></td>
              <td align="left">Air quality sensors and networks</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>environment.weather</tt></td>
              <td align="left">Weather and meteorological data</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>agriculture</tt></td>
              <td align="left">Connected agriculture</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>agriculture.irrigation</tt></td>
              <td align="left">Irrigation control and water management</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>agriculture.soil</tt></td>
              <td align="left">Soil moisture and chemistry sensors</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>agriculture.livestock</tt></td>
              <td align="left">Livestock monitoring and welfare sensors</td>
              <td align="left">active</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="references">
      <name>References</name>
      <section anchor="normative-references">
        <name>Normative References</name>
        <ul spacing="normal">
          <li>
            <t><xref target="RFC2119"/> Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.</t>
          </li>
          <li>
            <t><xref target="RFC8174"/> Leiba, B., "Ambiguity of Uppercase vs Lowercase in
RFC 2119 Key Words", BCP 14, RFC 8174, May 2017.</t>
          </li>
          <li>
            <t><xref target="RFC9110"/> Fielding, R., et al., "HTTP Semantics", RFC 9110,
June 2022.</t>
          </li>
          <li>
            <t><xref target="APIX-CORE"/> Rehfeld, C., "API Index (APIX): Core Infrastructure
for Autonomous Agent Service Discovery",
draft-rehfeld-apix-core-05.</t>
          </li>
        </ul>
      </section>
      <section anchor="informative-references">
        <name>Informative References</name>
        <ul spacing="normal">
          <li>
            <t><xref target="RFC8594"/> Wilde, E., "The Sunset HTTP Header Field", RFC 8594,
May 2019.</t>
          </li>
          <li>
            <t><xref target="RFC9745"/> Cedik, A., et al., "The Deprecation HTTP Header Field",
RFC 9745, March 2025.</t>
          </li>
          <li>
            <t><xref target="APIX-SERVICES"/> Rehfeld, C., "APIX Services Profile: Discovery
Infrastructure for Web API and Bot Services",
draft-rehfeld-apix-services-02.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="authors-address">
      <name>Author's Address</name>
      <t>Carsten Rehfeld
Email: carsten@botstandards.org</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y96XIbWZYm+P8+hRvLrINUwSGSohQKqrK7GZIig9mhpURG
Zi2WRTgBJ+kpAI5yB8hghaJsfs0DjM0T9pPM+c5yF3cHpYjaxsZGlosEwK/f
5dyzn+/kee7W1XpeHmc7J+9P/y47rc+zV+VtNS2z9019VeGbV1U7rW/L5j4r
ljP6uGzLJX1/VTfZy3q5LKfrcmYPnZUN/r/dccXlZVPeRuPuuGmxLq/r5v44
a9czN6uny2JB48+a4mqdN+XNVTmf5cWq+imv6nW+/8S1m8tF1bZVvVzfr+iX
p6/Pv3MzGuU4O9w/fJbv03++dvSSJ84Vm/VN3Ry7LMuzatkeZy/H2QcZkz7L
MnnXy6Jp1+Uy+aZcFNX8OJvKV//zsl63a1pp0czacd1cO7esm0Wxrm5LjP7h
u5eHBwff6F+fH3x9pH99+uzomX16+NR+8M3BwT7+il3IX7778PqY3xltena6
nJU/Zbv4xR7NsG5K+uiqKdp1s5muN41s9clmXS/rRb1ps5Prcrm2rQ7Hs8Mj
h33An+G9aMumKttqeVXb706X67JZluv8FQ5j8EymNDHacZl+0VyX9LOb9XrV
Hj9+TGdSrJti+rFsxlW5vsK+PaYDfrxlnMfO4e3ptj5/+o3t5TdfHz3FX0/z
V+NbOotyUdKS84IWk89svX5bz15/+OPpy9dnva39O0+PQ9Q8sMl/Ki8xJBP6
t/U6Iuf/0K1t9TWg+X/r9tpYj2mkNyfn568/pNvypljTfLKzVTmtriq6knS7
hpdHLzm2G17dVuv77MzuRXYyn1cFcQH+sb+RR4Ozn7YFLjRPupjP87aeb/DW
9vGC54KZvnv/Mv/xJJ0pfZb9uKRJEns5aaY31brkk3pgtnjku3pDk8QLvmRy
9Wp65R+QKV7WmzU+z+l9N8t6Xl/TifIHm4Ln+vL9+85MV8RSXt5g6Ox9XdHl
JHJb19N6/tBco4d+zXbe3d2Na3p2yo8W+iRPfaVvpdlOVyu6ZHmeZ8VlC9pZ
O3d+U7UZkc1mAf4xK6+qJd2M9U2ZbeX9xTIrfyKuCB6crWv82PGPh9hUG9MU
/bRYZ+WyuJzTS2axDHErkyGLYllclzwdXL/VzX1Lj8+zqZcrM55QO85O1za+
zNmt7+p8XtwTLdvgxWU1B5ku6lk5z3ZXm8t5NdURsum8aNtRtmqqW9pf/ZS4
EHj9tNwb8T74ibXV9ZLmYRs6slHs97QXH8ulC/MfJe/J5tVVOb2fzstRdrO5
zBflrCqwHHvBKKvvlmXT3lQrR6ezbK/KZsRsB9PAfc+akvaddxIf87yn91mz
wXYWqxUtDVuLQ+mshZ4kHkvCK5YZBWRGK4dSLVZz2fQ1KGIlh00CcOlsK/1q
ipXsKna9WPPsdIW89XcVUfZmTVO8ZwmMGcv5y2poEcQPb0vakNto98rlbMX3
hFeq49q3ToYm4f8XogEskPcqv6Z9wh7KbapaubJC5ItqNpuXzv0V2G1Tz4gi
wQCI5JW4h+j155+9VP7ll+Q+TOvFgjY+cAYH8uQ9zOnVJc9DOW2g7eNwl94U
xLjKdg2x/mYvE1E3cvh+fdOUJUmxhdwqojKaEP2SqXbEry6baUWf18vLmrht
tbweZS3tDDNNRz9YyZ0PBHNZtKXqEfT6cXaOY/Y3vZJF6b6tWea6piSS84oc
sRFcumm5IiLBqF7noSP8503VML20WUtMB0cwbeq2dbYD0M7acZfBMOOArPD7
z2/KrrCp+AW99J5274onsrb9jNTEh/gBxLTJuuymoIkS9eBC/PjhB16Co5lm
dCzEMfjzS+I92bQp7uYkRZnZ6Vjy9OyeNERiFySp7+rmY1bMZnRX27Id8UA2
FZqx3GHa1qXnJu2qoIHkPJR10I5XDSiXSZ8Iq6XLRTdzTSMII6UB6MBwWDSe
3wdMSLec5sssr5hXbTmjE7uuwMqZJyi1FIFlBV7V5xdroQc61bUD7+Ap3Kmy
Y7tIB3hqnKFu2uzNj2fnGW5Ze3XPBLKFJmgfkpvkLssrnDa/iIhXiG82q9ZC
7t2H1zHVjOXOfizvszswMVJYaBo7I/n/7O07/vuH13/74+mH16/w97PvT374
wf9FfuHoH+9+/EG/x9/Cky/fvXnz+u0reZg+zTofvTn5+x3eQ0cayPnpu7cn
P+z0ppmBJmgPL3GKpMOswK3pXtAvynbaVJf0j2rpvn35Pjs4ou1Rq4HYDP8d
ZgP9/Y74pRxXvaQzkX/Sbt1j78qiwRB8M0mzo9sCAsMVBFHdEK2MoTdkfzh7
9zZbFffzupi1ysVmNmHnJ8zbtyFC+/H8u/w5ceBpDc6CERfQ6jB9uiIyPbJf
aHpnpXDR5+MDOhbiredls6hYI7qXY7qq5/P6js+Yvmp5V6IZpAwW66QJzHju
JjmIqvkBJo5j5hUj+t83o5SPjoxKL6rZKGGYjhQf+lGrSgd/MyeJQwrAu3wf
3LbeXN9k7/Kne34QZQuqqPCv3e5Z9Ouz/Ih+bRc3YcrEilidilhyRidO9gn4
tChHZ6tqBnlOv21p9xvRFkY9c5l29STcC9nCzgF6ijt27tEjVc9oVzZXBQux
5tGj7H//H/83mEiW7gSu/IpFIUR34KWqLYBnq4gGWyFdJKvWbarF4Iz4HIjS
7JtF9G6SLK5g7p/VV94gfQdpLVdhmBKY5fFy3U483A4kFVOILd5UkzsmGfCR
9CX0fq90gjUXtuIGE/JLJqE1uyPaHEd7+BIr1M07WYLksoTBCsvUy7xtA495
z2IlaZRuEPgrERsEfWuM2XRfkO/YkWCkT1Y1JCUxlAnWM5axd+RNOR/GzoTO
N/2aNEv6lPcKWvmb6JTk/FTwiyI8yn5gvepA9cN4M05V9bL90J/Q/6mwY05B
om15PQ+yMNvQtcVGFy5+7Th72ZTMT7DeBRnt64LpgNgLa7f826/arrZNAuik
p2fbEkTQ2hoO4zV4j9QZDxPONFJI6e0LusmkwWUsu1kZ0Hft0r7SMRInIsVz
z4QzX2Q/Q6+w0rclKxpVe4MDseX54bpq+FinJUrScTax+zYZZZMbYvLrS9os
/GNWruhfk6Fzyc7BQPzprEgb1sm3JfGeNek1xEZpqfSeqm03vNnCi3Q5CVUS
ZUf/JjN2QbLkR1y88qfpfNMS32MVIVbpe8YRnfMrWkhFTDC7aupFh9uJDta7
DCTYW14h/4i4uV+UqG8j0jKWua6q4jWRxQd2grfSDGk9/a3mwbAsLJ7NYVkO
7gZ/FRmamAW4RetFEBtgi2q9NmVFnpFJpCT2hi5txHEXJVnhxHIXIKi7m2p6
E8iK78JXrSdlqMvx/dddxIKExf6xmG+YQlab9gYEMZ3Xm9kFkyUTy+ZSiOP7
zWUg8srcS8yF6HZe01ndFfc2DeZjPEb/wrFVQ/fiJjfl0evE/BhZhKQx0tPF
VORAZiosnF5Cxqz1uD5f4pkqx4l2zHjRZpneztuqvGNWknIwu+YkOXHLIl5L
Zn65Lth+hPI0zt6WsFun9kNPG/hJNJnDeDLGVYbn0uVFZle7kyltUVtht1lx
0zumv69F/i1xm2CmV1D5ideX18IU2RLnGX3AxuLQ4uPUl9H/0Z27mhfX4+Rz
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
0wX0W9ocv1su7Na8Jr70azbr2X5YoySzDBOi8A2kNC1oz1hxw/1aDtwokmBC
WUZQJJtuq6Ze8t/T9z9/dhQmoLWH3i9Dx4eEuUIUw3gjfeBaMgyuy71xLy6J
2H/g/LmXenIXSMfjXGRkJfhYo4V6HP9mJHW7mrTkZQ2LO7IxQjYQ8suX5byN
kypUsz6OEmi2a4PLaLTWlEKEw1G5pTn70MY1PB5lnkmFMn6rfJVz6rJkwIyr
5XUbpJAKM76GHgflLtus+EBHSWWW/mQUyqQ1c4jH3BOdZ6UnMrM9kByr3kZ0
GB5oFVSOzBS2jNzkrrwkVvVxooniE9q8CS8U37T19GNJin36kqDeuZ6SlaQN
WblSV6Xw5bA2FxwmK8EtPTYtoJolz9i2sf5A+k+LdIqlyU9H+4ascSn+EBN5
DZU4XBIaf/fs7HUmMBZnvKy97AbHzQpHvWkLXIT6ys76rqhYn5aroc56K1yW
+Whe4XS6abj+m+UtMZLyTixTNsLuuVSxnx96R7ysvNowV9czMKViiqqnqaaH
HseZnE5qM1g7ZaOKU9sLNpiWNpUXsJGjhdOoslC6umWpv22DsRRMYb1o2W6a
ARHTn+Z3dDJiiIVVopWH/JAuXEAoBwF16Y8mVrJsv544LQbAzNspHSIdnKVk
7omBSM8uh9hAXBxkwZ9E6x3SbpU9taxRbi1Pi0S2UxPEcjiJvrcVBXR1RfYZ
ob68Ozt/NoOqr1TA/ImP2nvaTci3XEZe9La70qpWE1HE+dmg4qRu1g9bPw/O
porSk6Atbpao2bQNeJH19Cp7oQuWLBcFmkS0NRILbKtZmSTIIykd9RJyJpMt
3smQv6pHJJZHa7m8f+fxltz7TpiwjanGZiZZhJZzblf6ni1BXCSuQcKi+zr/
yVodF/NuIaTOiDijlFk679zyJYE6Jz3C3hHDqVO0nDPog9AiGWTii/q2bP30
ucRrWd4JgUZVeCFWA606eYPKmb55l66lRoqrpNiXd55GVV+V+ha24vweN0CH
WmrpR0vmx5wYSUm8dH4f8spDTplZIDyeTyjQpU4ld7rUtfWKC1842wGwgHsy
4+RB8SZWy40MYf6ceo5c+BpGi6dcK8HoVZmxkwEKia9ktMWHoiC3lUpjDah3
Gn4kr16xegSusJDkOqtR9e9GhhEnWILV75bja5LK3SyIA58FMcluW9f7PmRJ
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
B5TLAQA=

-->

</rfc>
