<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.17 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-scim-device-model-10" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SCIM Device Schema Extensions">Device Schema Extensions to the SCIM model</title>

    <author initials="M." surname="Shahzad" fullname="Muhammad Shahzad">
      <organization>North Carolina State University</organization>
      <address>
        <postal>
          <street>Department of Computer Science</street> <street>890 Oval Drive</street> <street>Campus Box 8206</street>
          <city>Raleigh, NC</city>
          <code>27695-8206</code>
          <country>USA</country>
        </postal>
        <email>mshahza@ncsu.edu</email>
      </address>
    </author>
    <author initials="H." surname="Iqbal" fullname="Hassan Iqbal">
      <organization>North Carolina State University</organization>
      <address>
        <postal>
          <street>Department of Computer Science</street> <street>890 Oval Drive</street> <street>Campus Box 8206</street>
          <city>Raleigh, NC</city>
          <code>27695-8206</code>
          <country>USA</country>
        </postal>
        <email>hassaniqbal931@gmail.com</email>
      </address>
    </author>
    <author initials="E." surname="Lear" fullname="Eliot Lear">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Richtistrasse 7</street>
          <city>Wallisellen</city>
          <code>CH-8304</code>
          <country>Switzerland</country>
        </postal>
        <phone>+41 44 878 9200</phone>
        <email>lear@cisco.com</email>
      </address>
    </author>

    <date year="2024" month="November" day="26"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 71?>

<t>The initial core schema for SCIM (System for Cross Identity
Management) was designed for provisioning users. This memo specifies
schema extensions that enables provisioning of devices, using various
underlying bootstrapping systems, such as Wi-fi Easy Connect, FIDO
device onboarding vouchers, BLE passcodes, and MAC authenticated bypass.</t>



    </abstract>



  </front>

  <middle>


<?line 79?>

<section anchor="introduction"><name>Introduction</name>

<t>The Internet of Things presents a management challenge in many
dimensions. One of them is the ability to onboard and manage large
number of devices. There are many models for bootstrapping trust
between devices and network deployments. Indeed it is expected that
different manufacturers will make use of different methods.</t>

<t>SCIM (System for Cross Identity Management) <xref target="RFC7643"/> <xref target="RFC7644"/>
defines a protocol and a schema for provisioning of users. However, it
can easily be extended to provision device credentials and other
attributes into a network. The protocol and core schema were designed
to permit just such extensions. Bulk operations are supported. This is
good because often devices are procured in bulk.</t>

<t>A primary purpose of this specification is to provision the network
for onboarding and communications access to and from devices within a
local deployment based on the underlying capabilities of those
devices. The underlying security mechanisms of some devices range from
non-existent such as the Bluetooth Low Energy (BLE) "Just Works"
pairing method to a robust FIDO Device Onboard (FDO) mechanism.
Information from the SCIM server is dispatched to control functions
based on selected schema extensions to enable these communications
within a network.  The SCIM database is therefore essentially
equivalent to a network's Authentication, Authorization, and
Accounting (AAA) database, and should be carefully treated as such.</t>

<section anchor="why-scim-for-devices"><name>Why SCIM for devices?</name>
<t>Some might ask why SCIM is well suited for this purpose and not, for
example, NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/> with YANG
<xref target="RFC7950"/>. After all, there are all sorts of existing models
available. The answer is that the only information being passed about
the device is neither state nor device configuration information, but
only information necessary to bootstrap trust so that the device may
establish connectivity.</t>

</section>
<section anchor="protocol-participants"><name>Protocol Participants</name>

<t>In the normal SCIM model, it was presumed that large federated
deployments would be SCIM clients who provision and remove employees
and contractors as they enter and depart those deployments, and
federated services such as sales, payment, or conferencing services
would be the servers.</t>

<t>In the device model, the roles are reversed, and may be somewhat more
varied. A deployment network management system gateway (NMS gateway)
plays the role of the server, receiving information about devices that
are expected to be connected to its network. That server will apply
appropriate local policies regarding whether/how the device should be
connected.</t>

<t>The client may be one of a number of entities:</t>

<t><list style="symbols">
  <t>A vendor who is authorized to add devices to a network as part of
a sales transaction. This is similar to the sales integration
sometimes envisioned by Bootstrapping Remote Key Infrastructure
(BRSKI) <xref target="RFC8995"/>.</t>
  <t>A client application that administrators or employees use to add,
remove, or get information about devices. An example might be an
tablet or phone app that scans Wi-fi Easy Connect QR codes.</t>
</list></t>

<figure title="Basic Architecture" anchor="arch"><artwork><![CDATA[

                            +-----------------------------------+
                            |                                   |
    +-----------+   Request |  +---------+                      |
    | onboarding|------------->|  SCIM   |                      |
    |    app    |<-------------| Server  |                      |
    +-----------+  Ctrl Endpt  +---------+                      |
                            |                                   |
    +-----------+           |  +------------+         +-------+ |
    |  Control  |...........|..|    ALG     |.........|device | |
    |    App    |           |  +------------+         +-------+ |
    +-----------+           |                                   |
                            |                                   |
                            +-----------------------------------+

]]></artwork></figure>

<t>In <xref target="arch"/>, the onboarding app provides the device particulars. As
part of the response, the SCIM server might provide additional
information, especially in the case of non-IP devices, where an
application-layer gateway may need to be used to communicate with
the device. The control endpoint is one among a number of objects
that may be returned.</t>

</section>
<section anchor="schema-description"><name>Schema Description</name>

<t>RFC 7643 does not prescribe a language to describe a schema. We have
chosen the JSON schema language <xref target="I-D.bhutton-json-schema"/> for this
purpose. The use of XML for SCIM devices is not supported.</t>

<t>Several additional schemas specify specific onboarding mechanisms,
such as BLE and Wi-fi Easy Connect.</t>

</section>
<section anchor="schema-representation"><name>Schema Representation</name>

<t>Attributes defined in the device core schema and extensions comprise
characteristics and SCIM datatypes defined in Sections 2.2 and 2.3 of
the <xref target="RFC7643"/>. This specifciation does not define new
characteristics and datatypes for the SCIM attributes.</t>

</section>
<section anchor="terminology"><name>Terminology</name>
<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.</t>

</section>
</section>
<section anchor="resourcetype-device"><name>ResourceType Device</name>

<t>A new resource type 'Device' is specified. The "ResourceType" schema
specifies the metadata about a resource type (see section 6 of
<xref target="RFC7643"/>).  It comprises a core device schema and several
extension schemas. The core schema provides a minimal resource
representation, whereas extension schemas extend the core schema
depending on the device's capability. The JSON schema for Device
resource type is in <xref target="resource-schema"/>.</t>

<section anchor="common-attributes"><name>Common Attributes</name>

<t>The Device schema contains three common attributes as defined in the
<xref target="RFC7643"/>.</t>

<t>id</t>

<t>An id is a required and unique attribute of the device core schema
(see section 3.1 of <xref target="RFC7643"/>).</t>

<t>externalID</t>

<t>An externalID is an optional attribute (see section 3.1 of <xref target="RFC7643"/>).</t>

<t>meta</t>

<t>Meta is a complex attribute and is required (see section 3.1 of <xref target="RFC7643"/>).</t>

</section>
</section>
<section anchor="scim-core-device-schema"><name>SCIM Core Device Schema</name>

<t>The core device schema provides the minimal representation of a
resource "Device". It contains only those attributes that any device
may need, and only one attribute is required. The core schema for
"Device" is identified using the schema URI:
"urn:ietf:params:scim:schemas:core:2.0:Device". The following
attributes are defined in the device core schema.</t>

<section anchor="singular-attributes"><name>Singular Attributes</name>

<t>displayName</t>

<t>This attribute is of type "string" and provides a human-readable name 
for a device. It is intended to be displayed to end-users and should be
suitable for that purpose. The attribute is not required, and is not 
case-sensitive. It may be modified and SHOULD be returned 
by default. No uniqueness constraints are imposed on this attribute.</t>

<t>active</t>

<t>The "active" attribute is of type "boolean" and is a mutable
attribute, and is required. If set to TRUE, it means that this device
is intended to be operational. Attempts to control or access a device
where this value is set to FALSE may fail. For example, when used in
conjunction with NIPC <xref target="I-D.brinckman-nipc"/>, commands such as
connect, disconnect, subscribe that control app sends to the
controller for the devices any command coming from the control app for
the device will be rejected by the controller.</t>

<t>mudUrl</t>

<t>The mudUrl attribute represents the URL to the MUD file associated
with this device. This attribute is optional and mutable. The mudUrl
value is case sensitive and not unique. When present, this attribute
may be used as described in <xref target="RFC8520"/>. This attribute is case 
sensitive and returned by default.</t>

<texttable title="Characteristics of device schema attributes. (Req = Required,
T = True, F = False, RW = ReadWrite, and Def = Default)" anchor="tabDevice">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>displayName</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>active</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>mudUrl</c>
      <c>F</c>
      <c>F</c>
      <c>T</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<t>An example of a device SCIM object is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device"],
        "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
        "displayName": "BLE Heart Monitor",
        "active": true,
        "meta": {
          "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
          "lastModified": "2022-05-13T04:42:34Z",
          "version": "W\/\"a330bc54f0671c9\"",
          "location": "https://example.com/v2/Device/e9e30dba-f08f
             -4109-8486-d5c6a3316111"
        }
}
<CODE ENDS>
]]></artwork></figure>

<t>The schema for the device is presented in JSON format in Section
<xref target="device-schema-json"/>, while the openAPI representation is provided in 
Section <xref target="device-schema-openapi-representation"/>.</t>

</section>
</section>
<section anchor="device-groups"><name>Device Groups</name>

<t>Device groups are created using the SCIM groups as defined in
<xref target="RFC7643"/> Section 4.2.</t>

</section>
<section anchor="resource-type-endpointapp"><name>Resource Type EndpointApp</name>

<t>This section defines a new resource type, 'EndpointApp'. The 
"ResourceType" schema specifies the metadata about a resource type 
(see section 6 of <xref target="RFC7643"/>). The resource "EndpointApp" represents
client applications that can control and/or receive data from the
devices. The JSON schema for EndpointApp resource type is in <xref target="resource-schema"/>.</t>

<t>The attributes comprising EndpointsApp are listed in <xref target="endpointapp-schema"/>.
The "EndpointApp" are included in the endpoint applications extension 
("endpointAppsExt") <xref target="endpointsappext-schema"/>.</t>

</section>
<section anchor="endpointapp-schema"><name>SCIM EndpointApp Schema</name>

<t>The EndpointApp schema is used to authorize clients control
or telemetry services for clients.  The schema identifies the application
and how clients are to authenticate to the various services.</t>

<t>The schema for "EndpointApp" is identified using the schema URI:
"urn:ietf:params:scim:schemas:core:2.0:EndpointApp". The following
attributes are defined in this schema.</t>

<section anchor="common-attributes-1"><name>Common Attributes</name>

<t>The EndpointApp schema contains three common attributes as defined in the
<xref target="RFC7643"/>.</t>

</section>
<section anchor="singular-attributes-1"><name>Singular Attributes</name>

<t>applicationType</t>

<t>This attribute is of type "string" and represents the type of 
application. It will only contain two values; 'deviceControl' 
or 'telemetry'. 'deviceControl' is the application that sends commands
to control the device. 'telemetry' is the application that receives
data from the device. The attribute is required, and is not 
case-sensitive. The attribute is readOnly and should be returned 
by default. No uniqueness constraints are imposed on this attribute.</t>

<t>applicationName</t>

<t>The "applicationName" attribute is of type "string" and represents a
human readable name for the application. This attribute is required and
mutable. The attribute should be returned by default and there is no 
uniqueness contraint on the attribute.</t>

<t>clientToken</t>

<t>This attribute type string contains a token that the client will use
to authenticate itself. Each token may be a string up to 500
characters in length. It is not mutable, read-only, generated if
no certificateInfo object is provisioned, case sensitive and returned
by default if it exists.  The SCIM server should expect that client
tokens will be shared by the SCIM client with other components within
the client's infrastructure.</t>

</section>
<section anchor="complex-attributes"><name>Complex Attributes</name>

<section anchor="certificateinfo"><name>certificateInfo</name>

<t>It is the complex attribute that contains x509 certificate's subject
name and root CA information associated with application clients that
will connect for purposes of device control or telemetry.</t>

<t>rootCA</t>

<t>This is the base64 encoding a trust anchor certificate as
described in <xref target="rfc4648"/> Section 4.  This trust anchor is applicable
for certificates used for client application access.  The object
is not required, singular, case sensitive, and read/write.  If not
present, a set of trust anchors MUST be configured out of band.</t>

<t>subjectName</t>

<t>If present, this field may contain one of two names:</t>

<t><list style="symbols">
  <t>a distinguished name as that will be present in the certificate
subject field, as de  scribed in Section 4.1.2.4 of <xref target="RFC5280"/>; or</t>
  <t>or a dnsName as part of a subjectAlternateName as  described in
Section 4.2.1.6 of <xref target="RFC5280"/>.</t>
</list></t>

<t>In the latter case, servers validating such certificates SHALL reject
connections when name of the peer as resolved by a DNS reverse lookup
does not match the dnsName in the certificate.  If multiple dnsNames
are present, it is left to server implementations to address any
authorization conflicts associated with those names.  This attribute
is not required, read write, singular and NOT case sensitive.</t>

<texttable title="Characteristics of EndpointApp schema attributes. (Req = Required, T = True, F = False, R = ReadOnly, RW = ReadWrite, Manuf = Manufacturer, N = No, and Def = Default)" anchor="tabEndpointApp">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>applicationType</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>R</c>
      <c>Def</c>
      <c>None</c>
      <c>applicationName</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>clientToken</c>
      <c>F</c>
      <c>F</c>
      <c>T</c>
      <c>R</c>
      <c>N</c>
      <c>None</c>
      <c>certificateInfo</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>rootCA</c>
      <c>F</c>
      <c>F</c>
      <c>T</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>subjectName</c>
      <c>F</c>
      <c>T</c>
      <c>T</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<t>Note that either clientToken and certificateInfo are used for the
authentication of the application.  If certificateInfo is NOT present
when an endpointApp is object created, then the server SHOULD return
a clientToken.  Otherwise, if the server accepts the certificateInfo
object for authentication, it SHOULD NOT return a clientToken.
If the server accepts and produces a clientToken, then control and
telemetry servers MUST validate both.  The SCIM client will know
that this is the case based on the SCIM object that is returned.</t>

<t>certificateInfo is preferred in situations where client functions
are federated such that different clients may connect for different
purposes.</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:EndpointApp"],
  "id": "e9e30dba-f08f-4109-8486-d5c6a3316212",
  "applicationType": "deviceControl",
  "applicationName": "Device Control App 1",
  "certificateInfo": {
      "rootCA" : "MIIBIjAN...",
      "subjectName": "wwww.example.com"
  },
  "meta": {
    "resourceType": "EndpointApp",
    "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/EndpointApp/e9e30dba-f08f
       -4109-8486-d5c6a3316212"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>The schema for the endpointApp is presented in JSON format in Section
<xref target="endpointapp-schema-json"/>, while the openAPI representation is provided in 
Section <xref target="endpointapp-schema-openapi-representation"/>.</t>

</section>
</section>
</section>
<section anchor="extensions"><name>SCIM Device Extensions</name>

<t>SCIM provides various extension schemas, their attributes, JSON
representation, and example object. The core schema is extended with a
new resource type, as described in <xref target="resource-schema"/>.  No
schemaExtensions list is specified in that definition.  Instead, an
IANA registry is created, where all values for "required" are set to
false.  All extensions to the Device schema MUST be registered via IANA,
as described in <xref target="device-schema-extensions"></xref>.  The schemas below demonstrate how
this model is to work.</t>

<section anchor="ble-extension"><name>BLE Extension</name>

<t>This schema extends the device schema to represent the devices
supporting BLE. The extension is identified using the following 
schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:ble:2.0:Device</t>

<t>The attributes are as follows:</t>

<section anchor="singular-attributes-2"><name>Singular Attributes</name>

<t>deviceMacAddress</t>

<t>A string value that represent a public MAC address assigned by the 
manufacturer. It is a unique  48-bit value. Ir is required, case 
insensitive, and it is mutable and return as default. The regex 
pattern is the following:</t>

<figure><artwork><![CDATA[
^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$
]]></artwork></figure>

<t>isRandom</t>

<t>A boolean flag taken from the BLE core specification, 5.3. If FALSE,
the device is using a public MAC address. If TRUE, the device uses a
random address.  If an Idenifying Resolving Key (IRK) is present, the
address represents a resolvable private address.  Otherwise, the
address is assumed to be a random static address.  Non-resolvable
private addresses are not supported by this specification.  This
attribute is not required. It is mutable, and is returned by default.
The default value is FALSE.</t>

<t>separateBroadcastAddress</t>

<t>When present, this address is used for broadcasts/advertisements.
This value MUST NOT be set when an IRK is provided. Its form is the
same as deviceMacAddress. It is not required, multivalued, mutable,
and returned by default.</t>

<t>irk</t>

<t>A string value that specifies the identity resolving key (IRK), which
is unique to each device. It is used to resolve private random
address. It should only be provisioned when isRandom is TRUE. It is
mutable and never returned.  For more information about the use of
the IRK, see Section 5.4.5 of <xref target="BLE54"/>.</t>

<t>mobility</t>

<t>A boolean attribute to enable BLE device mobility. If set to TRUE, the
device could be expected to move within a network of APs.  For
example, BLE device is connected with AP-1 and moves out of range but
comes in range of AP-2, it will be disconnected with AP-1 and connects
with AP-2. It is returned by default and mutable.</t>

</section>
<section anchor="multivalued-attributes"><name>Multivalued Attributes</name>

<t>versionSupport</t>

<t>A multivalued attribute that provides all the BLE versions supported by the
device in the form of an array. For example, 
[4.1, 4.2, 5.0, 5.1, 5.2, 5.3]. It is required, mutable, and 
return as default.</t>

<t>pairingMethods</t>

<t>An array of pairing methods associated with the BLE
device. The pairing methods may require sub-attributes, such as
key/password, for the device pairing process. To enable the
scalability of pairing methods in the future, they are represented as
extensions to incorporate various attributes that are part of the
respective pairing process. Pairing method extensions are nested
inside the BLE extension. It is required, case sensitive, mutable, and 
returned by default.</t>

</section>
<section anchor="ble-pairing-method-extensions"><name>BLE Pairing Method Extensions</name>

<t>The details on pairing methods and their associated attributes are in
section 2.3 of <xref target="BLE54"/>. This memo defines extensions for four
pairing methods that are nested insided the BLE extension schema. Each 
extension contains the common attributes <xref target="common-attributes"></xref>. These 
extension are as follows:</t>

<t>(i) pairingNull extension is identified using the following schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:pairingNull:2.0:Device</t>

<t>pairingNull does not have any attribute. It allows pairing for BLE
devices that do not require a pairing method.</t>

<t>(ii) pairingJustWorks extension is identified using the following 
schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:pairingJustWorks:2.0:Device</t>

<t>Just works pairing method does not require a key to pair devices. For
completeness, the key attribute is included and is set to 'null'. Key 
attribute is required, immutable, and returned by default.</t>

<t>(iii) pairingPassKey extension is identified using the following 
schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0:Device</t>

<t>The passkey pairing method requires a 6-digit key to pair devices.
This extension has one singular integer attribute, "key", which is 
required, mutable and returned by default. The key pattern is
as follows:</t>

<figure><artwork><![CDATA[
^[0-9]{6}$
]]></artwork></figure>

<t>(iv) pairingOOB extension is identified using the following 
schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:pairingOOB:2.0:Device</t>

<t>The out-of-band pairing method includes three singular attributes,
i.e., key, randomNumber, and confirmationNumber.</t>

<t>key</t>

<t>The key is string value, required and received from out-of-bond 
sources such as NFC. It is case sensitive, mutable, and returned 
by default.</t>

<t>randomNumber</t>

<t>This attribute represents a nonce added to the key. It is an
integer value that is a required attribute. It is mutable and 
returned by default.</t>

<t>confirmationNumber</t>

<t>An integer which some solutions require in RESTful message
exchange. It is not required. It is mutable and returned by default if
it exists.</t>

<texttable title="Characteristics of BLE extension schema attributes. 
sepBroadcastAdd is short for separateBroadcastAddress. (Req = Required,
T = True, F = False, RW = ReadWrite, WO=Write Only, Def = Default,
Nev = Never, and Manuf = Manufacturer)." anchor="tabBLE">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>deviceMacAddress</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>Manuf</c>
      <c>isRandom</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>sepBroadcastAdd</c>
      <c>T</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>irk</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>WO</c>
      <c>Nev</c>
      <c>Manuf</c>
      <c>versionSupport</c>
      <c>T</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>mobility</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>pairingMethods</c>
      <c>T</c>
      <c>T</c>
      <c>T</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<t>An example of a device object with BLE extension is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:ble:2.0:Device"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "BLE Heart Monitor",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:ble:2.0:Device" : {
    "versionSupport": ["5.3"],
    "deviceMacAddress": "2C:54:91:88:C9:E2",
    "isRandom": false,
    "separateBroadcastAddress": ["AA:BB:88:77:22:11", "AA:BB:88:77
       :22:12"],
    "mobility": true,
    "pairingMethods": ["urn:ietf:params:scim:schemas:extension
       :pairingPassKey:2.0:Device"],
    "urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0
       :Device" : {
      "key": 123456
    }
  },
  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Device/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>In the above example, the pairing method is "pairingPassKey", which implies
that this BLE device pairs using only a passkey. In another example below,
the pairing method is "pairingOOB", denoting that this BLE device uses the
out-of-band pairing method.</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:ble:2.0:Device"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "BLE Heart Monitor",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:ble:2.0:Device" : {
    "versionSupport": ["5.3"],
    "deviceMacAddress": "2C:54:91:88:C9:E2",
    "isRandom": false,
    "separateBroadcastAddress": ["AA:BB:88:77:22:11", "AA:BB:88:77
       :22:12"],
    "mobility": true,
    "pairingMethods": ["urn:ietf:params:scim:schemas:extension
       :pairingOOB:2.0:Device"],
    "urn:ietf:params:scim:schemas:extension:pairingOOB:2.0:Device":
        {
      "key": "TheKeyvalueRetrievedFromOOB",
      "randomNumber": 238796813516896
    }
  },
  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Device/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>However, a device can have more than one pairing method. Support for multiple
pairing methods is also provided by the multi-valued attribute pairingMethods.
In the example below, the BLE device can pair with both passkey and OOB pairing
methods.</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:ble:2.0:Device"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "BLE Heart Monitor",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:ble:2.0:Device" : {
    "versionSupport": ["5.3"],
    "deviceMacAddress": "2C:54:91:88:C9:E2",
    "isRandom": false,
    "separateBroadcastAddress": ["AA:BB:88:77:22:11", "AA:BB:88:77
       :22:12"],
    "mobility": true,
    "pairingMethods": ["urn:ietf:params:scim:schemas:extension
       :pairingPassKey:2.0:Device",
        "urn:ietf:params:scim:schemas:extension:pairingOOB:2.0
           :Device"],
    "urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0
       :Device" : {
      "key": 123456
    },
    "urn:ietf:params:scim:schemas:extension:pairingOOB:2.0:Device":
        {
      "key": "TheKeyvalueRetrievedFromOOB",
      "randomNumber": 238796813516896
    }
  },
  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Device/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>The schema for the BLE extension is presented in JSON format in Section 
<xref target="ble-extension-schema-json"></xref>, while the openAPI representation is provided in 
Section <xref target="ble-extension-schema-openapi-representation"></xref>.</t>

</section>
</section>
<section anchor="wi-fi-easy-connect-extension"><name>Wi-Fi Easy Connect Extension</name>

<t>A schema that extends the device schema to enable Wi-Fi Easy Connect
(otherwise known as Device Provisioning Protocol or DPP). Throughout this
specification we use the term DPP.  The extension
is identified using the following schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:dpp:2.0:Device</t>

<t>The attributes in this extension are adopted from <xref target="DPP2"/>. The 
attributes are as follows:</t>

<section anchor="singular-attributes-3"><name>Singular Attributes</name>

<t>dppVersion</t>

<t>An integer that represents the version of DPP the device supports. 
This attribute is required, case insensitive, mutable, and 
returned by default.</t>

<t>bootstrapKey</t>

<t>A string value representing Elliptic-Curve Diffie–Hellman (ECDH) public 
key. The base64 encoded lengths for P-256, P-384, and P-521 are 
80, 96, and 120 characters. This attribute is required, case-sensitive,
mutable, and returned by default.</t>

<t>deviceMacAddress</t>

<t>The manufacturer assigns the MAC address stored as string. It is a 
unique 48-bit value. This attribute is optional, case insensitive, 
mutable, and returned by default. The regex pattern is as follows:</t>

<figure><artwork><![CDATA[
^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$
]]></artwork></figure>

<t>serialNumber</t>

<t>An alphanumeric serial number, stored as string, may also be passed 
as bootstrapping information. This attribute is optional, case 
insensitive, mutable, and returned by default.</t>

</section>
<section anchor="multivalued-attributes-1"><name>Multivalued Attributes</name>

<t>bootstrappingMethod</t>

<t>It is the array of strings of all the bootstrapping methods available 
on the enrollee device. For example, [QR, NFC]. This attribute is 
optional, case insensitive, mutable, and returned by default.</t>

<t>classChannel</t>

<t>This attribute is an array of strings of global operating class and 
channel shared as bootstrapping information. It is formatted as 
class/channel. For example, ['81/1','115/36']. This attribute 
is optional, case insensitive, mutable, and returned by default.</t>

<texttable title="Characteristics of DPP extension schema attributes. 
(Req = Required, T = True, F = False, RW = ReadWrite, WO = Write Only,
Def = Default, Nev = Never, and Manuf = Manufacturer)." anchor="tabDPP">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>dppVersion</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>bootstrapKey</c>
      <c>F</c>
      <c>T</c>
      <c>T</c>
      <c>WO</c>
      <c>Nev</c>
      <c>None</c>
      <c>deviceMacAddress</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>Manuf</c>
      <c>serialNumber</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>bootstrappingMethod</c>
      <c>T</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>classChannel</c>
      <c>T</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<t>An example of a device object with DPP extension is below:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
                 "urn:ietf:params:scim:schemas:extension:dpp:2.0
                    :Device"],

        "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
        "displayName": "WiFi Heart Monitor",
        "active": true,
        "urn:ietf:params:scim:schemas:extension:dpp:2.0:Device" : {
                "dppVersion": 2,
                "bootstrappingMethod": ["QR"],
                "bootstrapKey":
                    "MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgADURzxmt
                   tZoIRIPWGoQMV00XHWCAQIhXruVWOz0NjlkIA=",
                "deviceMacAddress": "2C:54:91:88:C9:F2",
                "classChannel": ["81/1", "115/36"],
                "serialNumber": "4774LH2b4044"
        },

        "meta": {
          "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
          "lastModified": "2022-05-13T04:42:34Z",
          "version": "W\/\"a330bc54f0671c9\"",
          "location": "https://example.com/v2/Device/e9e30dba-f08f
             -4109-8486-d5c6a3316111"
        }
}
<CODE ENDS>
]]></artwork></figure>

<t>The schema for the DPP extension is presented in JSON format in Section 
<xref target="dpp-extension-schema-json"></xref>, while the openAPI representation is provided 
in Section <xref target="dpp-extension-schema-openapi-representation"></xref>.</t>

</section>
</section>
<section anchor="ethernet-mab-extension"><name>Ethernet MAB Extension</name>

<t>This extension enables a legacy means of (very) weak authentication,
known as MAC Authenticated Bypass (MAB), that is supported in many wired
ethernet solutions. If the MAC address is known, then the device may
be permitted (perhaps limited) access. The extension is identified
by the following URI:</t>

<t>urn:ietf:params:scim:schemas:extension:ethernet-mab:2.0:Device</t>

<section anchor="single-attribute"><name>Single Attribute</name>

<t>This extension has a singular attribute:</t>

<t>deviceMacAddress</t>

<t>This is the Ethernet address to be provisioned onto the network. It
takes the identical form as found in both the BLE and DPP extensions.</t>

<texttable title="Characteristics of MAB extension schema attributes
(Req = Required, T = True, F = False, RW = ReadWrite, and 
Def = Default)" anchor="tabMAB">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>deviceMacAddress</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<t>An example of a device object with EthernetMAB extension is shown below:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:ethernet-mab:2.0
        :Device"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "Some random Ethernet Device",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:ethernet-mab:2.0:Device" 
     : {
    "deviceMacAddress": "2C:54:91:88:C9:E2"
  },

  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Device/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>The schema for the EthernetMAB extension is presented in JSON format in
Section <xref target="ethernet-mab-extension-schema-json"></xref>, while the openAPI
representation is provided in Section <xref target="ethernet-mab-extension-schema-openapi-representation"></xref>.</t>

</section>
</section>
<section anchor="fido-device-onboard-extension"><name>FIDO Device Onboard Extension</name>

<t>This extension specifies a voucher to be used by the FDO Device Onboard
(FDO) protocols <xref target="FDO11"/> to complete a trusted transfer of ownership and control
of the device to the environment.</t>

<t>urn:ietf:params:scim:schemas:extension:fido-device-onboard:2.0:Device</t>

<section anchor="single-attribute-1"><name>Single Attribute</name>

<t>This extension has a singular attribute:</t>

<t>fdoVoucher</t>

<t>The voucher is formated as a PEM-encoded object in accordance with <xref target="FDO11"/>.</t>

<texttable title="Characteristics of FDO extension schema attributes
(Req = Required, T = True, F = False, WO = WriteOnly, and 
Nev = Never)" anchor="tabFDO">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>fdoVoucher</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>WO</c>
      <c>Nev</c>
      <c>None</c>
</texttable>

<t>An example of a device object with FDO extension is shown below:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Devices",
     "urn:ietf:params:scim:schemas:extension:fido-device-onboard
        :2.0:Devices"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "Some random Ethernet Device",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:fido-device-onboard:2.0
     :Devices" : {
     "fdoVoucher": "{... voucher ...}"
  },

  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Device/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>The schema for the FDO extension is presented in JSON format in
Section <xref target="fdo-extension-schema-json"></xref>, while the openAPI
representation is provided in Section <xref target="fdo-extension-schema-openapi-representation"></xref>.</t>

</section>
</section>
<section anchor="zigbee-extension"><name>Zigbee Extension</name>

<t>A schema that extends the device schema to enable the provisioning of 
Zigbee devices. The extension is identified using the following 
schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device</t>

<t>It has one singular attribute and one multivalued 
attribute. The attributes are as follows:</t>

<section anchor="singular-attribute"><name>Singular Attribute</name>

<t>deviceEui64Address</t>

<t>An EUI-64 (Extended Unique Identifier) device address stored as string.
This attribute is required, case insensitive, mutable, and returned by
default. The regex pattern is as follows:</t>

<figure><artwork><![CDATA[
^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){7}$
]]></artwork></figure>

</section>
<section anchor="multivalued-attribute"><name>Multivalued Attribute</name>

<t>versionSupport</t>

<t>An array of strings of all the Zigbee versions supported
by the device. For example, [3.0]. This attribute is required, case 
insensitive, mutable, and returned by default.</t>

<texttable title="Characteristics of Zigbee extension schema attributes.
(Req = Required, T = True, F = False, RW = ReadWrite, and 
Def = Default)" anchor="tabZigbee">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>deviceEui64Address</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>versionSupport</c>
      <c>T</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<t>An example of a device object with Zigbee extension is shown below:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "Zigbee Heart Monitor",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device" : {
    "versionSupport": ["3.0"],
    "deviceEui64Address": "50:32:5F:FF:FE:E7:67:28"
  },

  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Device/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>The schema for the Zigbee extension is presented in JSON format in 
Section <xref target="zigbee-extension-schema-json"></xref>, while the openAPI 
representation is provided in Section <xref target="zigbee-extension-schema-openapi-representation"></xref>.</t>

</section>
</section>
<section anchor="endpointsappext-schema"><name>The Endpoint Applications Extension Schema</name>

<t>Sometimes non-IP devices such as those using BLE or Zigbee require an
application gateway interface to manage them. SCIM clients MUST NOT
specify this to describe native IP-based devices.</t>

<t>endpointAppsExt provides the list application that connect to 
enterprise gateway. The endpointAppsExt has one multivalued attribute 
and two singular attributes. The extension is identified using the
following schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:endpointAppsExt:2.0:Device</t>

<section anchor="singular-attributes-4"><name>Singular Attributes</name>

<t>deviceControlEnterpriseEndpoint</t>

<t>Device control apps use this URL of the enterprise endpoint to reach
the enterprise gateway. When the enterprise receives the SCIM object from
the onboarding app, it adds this attribute to it and sends it back as
a response to the onboarding app. This attribute is required,
case-sensitive, mutable, and returned by default. The uniqueness is
enforced by the enterprise.</t>

<t>telemetryEnterpriseEndpoint</t>

<t>Telemetry apps use this URL of the enterprise endpoint to reach the
enterprise gateway. When the enterprise receives the SCIM object from
the onboarding app, it adds this attribute to it and sends it back as
a response to the onboarding app. This attribute is optional,
case-sensitive, mutable, and returned by default. The uniqueness is
enforced by the enterprise.  An implementation MUST generate an
exception if telemetryEnterpriseEndpoint is not returned and telemetry
is required for the proper functioning of a device.</t>

</section>
<section anchor="multivalued-attribute-1"><name>Multivalued Attribute</name>

<t>applications</t>

<t>This is a complex multivalued attribute. It represents a list of 
endpoint applications i.e., deviceControl and telemetry. Each entry in
the list comprises two attributes including "value" and "$ref".</t>

<t>value</t>

<t>It is the identifier of the endpoint application formated as UUID. It
is same as the common attribute "$id" of the resource "endpointApp".
It is read/write, required, case insensitive and returned by default.</t>

<t>$ref</t>

<t>It is the reference to the respective endpointApp resource object 
stored in the SCIM server. It is readOnly, required, case sensitive
and returned by default.</t>

<texttable title="Characteristics of EndpointAppsExt extension schema 
attributes. DevContEntEndpoint represents attribute 
deviceControlEnterpriseEndpoint and telEntEndpoint represents 
telemetryEnterpriseEndpoint. (Req = Required, T = True, F = False, 
R = ReadOnly, RW = ReadWrite, Ent = Enterprise, and Def = Default)." anchor="tabEndpointAppsExt">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>devContEntEndpoint</c>
      <c>F</c>
      <c>T</c>
      <c>T</c>
      <c>R</c>
      <c>Def</c>
      <c>Ent</c>
      <c>telEntEndpoint</c>
      <c>F</c>
      <c>F</c>
      <c>T</c>
      <c>R</c>
      <c>Def</c>
      <c>Ent</c>
      <c>applications</c>
      <c>T</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>value</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>$ref</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>R</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<t>An example of a device object with endpointAppsExt extension is below:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:ble:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:endpointAppsExt:2.0
        :Device"],
  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "BLE Heart Monitor",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:ble:2.0:Device" : {
    "versionSupport": ["5.3"],
    "deviceMacAddress": "2C:54:91:88:C9:E2",
    "isRandom": false,
    "separateBroadcastAddress": ["AA:BB:88:77:22:11", "AA:BB:88:77
       :22:12"],
    "mobility": false,
    "pairingMethods": [
        "urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0
           :Device"],
    "urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0
       :Device" : {
      "key": 123456
    }
  },
  "urn:ietf:params:scim:schemas:extension:endpointAppsExt:2.0
     :Device": {
    "applications": [
      {
        "value" : "e9e30dba-f08f-4109-8486-d5c6a3316212",
        "$ref" : "https://example.com/v2/EndpointApp/e9e30dba-f08f
           -4109-8486-d5c6a3316212"
      },
      {
        "value" : "e9e30dba-f08f-4109-8486-d5c6a3316333",
        "$ref" : "https://example.com/v2/EndpointApp/e9e30dba-f08f
           -4109-8486-d5c6a3316333"
      }
    ],
      "deviceControlEnterpriseEndpoint": "https
         ://example.com/device_control_app_endpoint/",
      "telemetryEnterpriseEndpoint": "https
         ://example.com/telemetry_app_endpoint/"
  },
  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Device/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>The schema for the endpointAppsExt extension along with BLE extension is 
presented in JSON format in Section <xref target="endpointappsext-extension-schema-json"/>, while 
the openAPI representation is provided in Section <xref target="endpointappsext-extension-schema-openapi-representation"/>.</t>

</section>
</section>
</section>
<section anchor="schema-json-representation"><name>Schema JSON Representation</name>

<section anchor="resource-schema"><name>Resource Schema</name>

<figure><artwork><![CDATA[
<CODE BEGINS>
[
  {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0
       :ResourceType"],
    "id": "Device",
    "name": "Device",
    "endpoint": "/Devices",
    "description": "Device Account",
    "schema": "urn:ietf:params:scim:schemas:core:2.0:Device",
    "meta": {
      "location": "https://example.com/v2/ResourceTypes/Device",
      "resourceType": "ResourceType"
    }
  },
  {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0
       :ResourceType"],
    "id": "EndpointApp",
    "name": "EndpointApp",
    "endpoint": "/EndpointApp",
    "description": "Endpoint application such as device control and
        telemetry.",
    "schema": "urn:ietf:params:scim:schemas:core:2.0:EndpointApp",
    "meta": {
      "location": "https
         ://example.com/v2/ResourceTypes/EndpointApp",
      "resourceType": "ResourceType"
    }
  }
]
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="device-schema-json"><name>Device Core Schema JSON</name>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:core:2.0:Device",
  "name": "Device",
  "description": "Device account",
  "attributes" : [
    {
      "name": "displayName",
      "type": "string",
      "description": "Human readable name of the device, suitable
          for displaying to end-users. For example, 'BLE Heart
          Monitor' etc.",
      "multivalues": false,
      "required": false,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "active",
      "type": "boolean",
      "description": "A mutable boolean value indicating the device
          administrative status. If set TRUE, the commands (such as
          connect, disconnect, subscribe) that control app sends to
          the controller for the devices will be processeed by the
          controller. If set FALSE, any command comming from the
          control app for the device will be rejected by the
          controller.",
      "multivalues": false,
      "required": true,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "mudUrl",
      "type": "reference",
      "description": "A URL to MUD file of the device (RFC 8520).",
      "multivalues": false,
      "required": false,
      "caseExact": true,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" :
      "/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Device"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="endpointapp-schema-json"><name>EndpointApp Schema JSON</name>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:core:2.0:EndpointApp",
  "name": "EndpointApp",
  "description": "Endpoint application and their credentials",
  "attributes" : [
    {
      "name": "applicationType",
      "type": "string",
      "description": "This attribute will only contain two values;
          'deviceControl' or 'telemetry'.",
      "multivalues": false,
      "required": true,
      "caseExact": false,
      "mutability": "readOnly",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "applicationName",
      "type": "string",
      "description": "Human readable name of the application.",
      "multivalues": false,
      "required": true,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "certificateInfo",
      "type": "complex",
      "description": "Contains x509 certificate's subject name and
          root CA information associated with the device control or
          telemetry app.",
      "multivalues": false,
      "required": false,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none",
      "subAttributes" : [
        {
          "name" : "rootCA",
          "type" : "string",
          "description" : "The base64 encoding of the DER encoding
              of the CA certificate",
          "multiValued" : false,
          "required" : false,
          "caseExact" : true,
          "mutability" : "readWrite",
          "returned" : "default",
          "uniqueness" : "none"
        },
        {
          "name" : "subjectName",
          "type" : "string",
          "description" : "A Common Name (CN) of the form of CN =
              dnsName",
          "multiValued" : false,
          "required" : true,
          "caseExact" : true,
          "mutability" : "readWrite",
          "returned" : "default",
          "uniqueness" : "none"
        }
      ]
    },
    {
      "name": "clientToken",
      "type": "string",
      "description": "This attribute contains a token that the
          client will use to authenticate itself.  Each token may
          be a string up to 500 characters in length.",
      "multivalues": false,
      "required": false,
      "caseExact": true,
      "mutability": "readOnly",
      "returned": "default",
      "uniqueness": "none"
    }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" :
      "/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Device"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="ble-extension-schema-json"><name>BLE Extension Schema JSON</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
[
  {
    "id": "urn:ietf:params:scim:schemas:extension:ble:2.0:Device",
    "name": "bleExtension",
    "description": "Ble extension for device account",
    "attributes" : [
      {
        "name": "versionSupport",
        "type": "string",
        "description": "Provides a list of all the BLE versions
            supported by the device. For example, [4.1, 4.2, 5.0,
            5.1, 5.2, 5.3].",
        "multivalues": true,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "deviceMacAddress",
        "type": "string",
        "pattern": "^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$",
        "description": "A unique public MAC address assigned by the
            manufacturer.",
        "multivalues": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "Manufacturer"
      },
      {
        "name": "isRandom",
        "type": "boolean",
          "description": "The isRandom flag is taken from the BLE
              core specifications 5.3. If TRUE, device is using a
              random address.  Default value is false.",
        "multivalues": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "separateBroadcastAddress",
        "type": "string",
        "description": "When present, this address is used for
            broadcasts/advertisements.  This value MUST NOT be set
            when an IRK is provided.  Its form is the same as
            deviceMa`cAddress.",
        "multivalues": true,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "irk",
        "type": "string",
        "description": "Identity resolving key, which is unique for
            every device. It is used to resolve random address. 
            This value MUST NOT be set when
            separateBroadcastAddress is set.",
        "multivalues": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "Manufacturer"
      },
      {
        "name": "mobility",
        "type": "bool",
        "description": "If set to True, the BLE device will
            automatically connect to the closest AP. For example,
            BLE device is connected with AP-1 and moves out of
            range but comes in range of AP-2, it will be
            disconnected with AP-1 and connects with AP-2.",
        "multivalues": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "pairingMethods",
        "type": "string",
        "description": "List of pairing methods associated with the
            ble device, stored as schema URI.",
        "multivalues": true,
        "required": true,
        "caseExact": true,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      }
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:ble:2.0:Device"
    }
  },
  {
    "id": "urn:ietf:params:scim:schemas:extension:pairingNull:2.0
       :Device",
    "name": "nullPairing",
    "description": "Null pairing method for ble. It is included for
        the devices that do not have a pairing method.",
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:pairingNull:2.0:Device"
    }
  },
  {
    "id": "urn:ietf:params:scim:schemas:extension:pairingJustWorks
       :2.0:Device",
    "name": "pairingJustWorks",
    "description": "Just works pairing method for ble.",
    "attributes" : [
      {
        "name": "key",
        "type": "integer",
        "description": "Just works does not have any key value. For
            completeness, it is added with a key value 'null'.",
        "multivalues": false,
        "required": true,
        "caseExact": false,
        "mutability": "immutable",
        "returned": "default",
        "uniqueness": "none"
      }
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:pairingJustWorks:2.0:Device"
    }
  },
  {
    "id": "urn:ietf:params:scim:schemas:extension:pairingPassKey
       :2.0:Device",
    "name": "pairingPassKey",
    "description": "Pass key pairing method for ble.",
    "attributes" : [
      {
        "name": "key",
        "type": "integer",
        "description": "A six digit passkey for ble device. The
            pattern of key is ^[0-9]{6}$.",
        "multivalues": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      }
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:pairingPassKey:2.0:Device"
    }
  },
  {
    "id": "urn:ietf:params:scim:schemas:extension:pairingOOB:2.0
       :Device",
    "name": "pairingOOB",
    "description": "Pass key pairing method for ble.",
    "attributes" : [
      {
        "name": "key",
        "type": "string",
        "description": "A key value retrieved from out of band
            source such as NFC.",
        "multivalues": false,
        "required": true,
        "caseExact": true,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "randomNumber",
        "type": "integer",
        "description": "Nonce added to the key.",
        "multivalues": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "confirmationNumber",
        "type": "integer",
        "description": "Some solutions require confirmation number
            in RESTful message exchange.",
        "multivalues": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      }
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:pairingOOB:2.0:Device"
    }
  }
]
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="dpp-extension-schema-json"><name>DPP Extension Schema JSON</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
{
    "id": "urn:ietf:params:scim:schemas:extension:dpp:2.0:Device",
    "name": "dppExtension",
    "description": "Device extension schema for Wi-Fi Easy Connect
        / Device Provisioning Protocol (DPP)",
    "attributes" : [
      {
        "name": "dppVersion",
        "type": "integer",
        "description": "Version of DPP this device supports.",
        "multivalues": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "bootstrappingMethod",
        "type": "string",
        "description": "The list of all the bootstrapping methods
            available on the enrollee device. For example, [QR,
            NFC].",
        "multivalues": true,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "bootstrapKey",
        "type": "string",
        "description": "This key is Elliptic-Curve Diffie–Hellman 
           (ECDH) public key. The base64 encoded length for P-256,
            P-384, and P-521 is 80, 96, and 120 characters.",
        "multivalues": false,
        "required": true,
        "caseExact": true,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "deviceMacAddress",
        "type": "string",
        "pattern": "^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$",
        "description": "A unique public MAC address assigned by the
            manufacturer.",
        "multivalues": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "Manufacturer"
      },
      {
        "name": "classChannel",
        "type": "string",
        "description": "A list of global operating class and
            channel shared as bootstrapping information. It is
            formatted as class/channel. For example, '81/1',
            '115/36'.",
        "multivalues": true,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "serialNumber",
        "type": "string",
        "description": "An alphanumeric serial number that may also
            be passed as bootstrapping information.",
        "multivalues": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      }

    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:dpp:2.0:Device"
    }
  }
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="ethernet-mab-extension-schema-json"><name>Ethernet MAB Extension Schema JSON</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:extension:ethernet-mab:2.0
     :Device",
  "name": "ethernetMabExtension",
  "description": "Device extension schema for MAC authentication
      Bypass.",
  "attributes" : [
      {
        "name": "deviceMacAddress",
        "type": "string",
        "pattern": "^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$",
        "description": "A MAC address assigned by the manufacturer",
        "multivalues": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "Manufacturer"
      }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
       :extension:ethernet-mab:2.0:Device"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="fdo-extension-schema-json"><name>FDO Extension Schema JSON</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:extension:fido-device-onboard
     :2.0:Devices",
  "name": "FDOExtension",
  "description": "Device extension schema for FIDO Device Onboard 
     (FDO).",
  "attributes" : [
      {
        "name": "fdoVoucher",
        "type": "string",
        "description": "A voucher as defined in the FDO
            specification",
        "multivalues": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "Manufacturer"
      }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
       :extension:fido-device-onboard:2.0:Devices"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="zigbee-extension-schema-json"><name>Zigbee Extension Schema JSON</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device",
  "name": "zigbeeExtension",
  "description": "Device extension schema for zigbee.",
  "attributes" : [
    {
      "name": "versionSupport",
      "type": "string",
      "description": "Provides a list of all the zigbee versions
          supported by the device. For example, [3.0].",
      "multivalues": true,
      "required": true,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "deviceEui64Address",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){7}$",
      "description": "The EUI-64 (Extended Unique Identifier)
          device address.",
      "multivalues": false,
      "required": true,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
       :extension:zigbee:2.0:Device"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="endpointappsext-extension-schema-json"><name>EndpointAppsExt JSON Extension Schema</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:extension:endpointAppsExt:2.0
     :Device",
  "name": "endpointAppsExt",
  "description": "Extension for partner endpoint applications that
      can onboard, control, and communicate with the device.",
  "attributes" : [
    {
      "name": "applications",
      "type": "complex",
      "description": "Includes references to two types of
          application that connect with entrprise, i.e.,
          deviceControl and telemetry.",
      "multivalues": true,
      "required": true,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none",
      "subAttributes" : [
        {
          "name" : "value",
          "type" : "string",
          "description" : "The identifier of the endpointApp.",
          "multiValued" : false,
          "required" : true,
          "caseExact" : false,
          "mutability" : "readWrite",
          "returned" : "default",
          "uniqueness" : "none"
        },
        {
          "name" : "$ref",
          "type" : "reference",
          "referenceTypes" : "EndpointApps",
          "description" : "The URI of the corresponding
              'EndpointApp' resource which will control or obtain
              data from the device.",
          "multiValued" : false,
          "required" : false,
          "caseExact" : true,
          "mutability" : "readOnly",
          "returned" : "default",
          "uniqueness" : "none"
        }
      ]
    },
    {
      "name": "deviceControlEnterpriseEndpoint",
      "type": "reference",
      "description": "The URL of the enterprise endpoint which
          device control apps use to reach enterprise network
          gateway.",
      "multivalues": false,
      "required": true,
      "caseExact": true,
      "mutability": "readOnly",
      "returned": "default",
      "uniqueness": "Enterprise"
    },
    {
      "name": "telemetryEnterpriseEndpoint",
      "type": "reference",
      "description": "The URL of the enterprise endpoint which
          telemetry apps use to reach enterprise network gateway.",
      "multivalues": false,
      "required": false,
      "caseExact": true,
      "mutability": "readOnly",
      "returned": "default",
      "uniqueness": "Enterprise"
    }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
       :extension:endpointAppsExt:2.0:Device"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="representation-of-schema"><name>Representation of Schema</name>

<t>The following is the JSON representation of the Schema. Implementors MUST NOT vary from the schema definitions in their implementations.  They may choose not to implement a particular extension, but if they do, they MUST implement all mandatory elements, and they must implement optional elements as specified.</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id" : "urn:ietf:params:scim:schemas:core:2.0:Schema",
  "name" : "Schema",
  "description" : "Specifies the schema that describes a SCIM
      schema",
  "attributes" : [
    {
      "name" : "id",
      "type" : "string",
      "multiValued" : false,
      "description" : "The unique URI of the schema. When
          applicable, service providers MUST specify the URI.",
      "required" : true,
      "caseExact" : false,
      "mutability" : "readOnly",
      "returned" : "default",
      "uniqueness" : "none"
    },
    {
      "name" : "name",
      "type" : "string",
      "multiValued" : false,
      "description" : "The schema's human-readable name.  When
          applicable, service providers MUST specify the name,
          e.g., 'Device'.",
      "required" : true,
      "caseExact" : false,
      "mutability" : "readOnly",
      "returned" : "default",
      "uniqueness" : "none"
    },
    {
      "name" : "description",
      "type" : "string",
      "multiValued" : false,
      "description" : "Human-readable description of the schema,
          e.g., 'Device account'.",
      "required" : false,
      "caseExact" : false,
      "mutability" : "readOnly",
      "returned" : "default",
      "uniqueness" : "none"
    },
    {
      "name" : "attributes",
      "type" : "complex",
      "multiValued" : true,
      "description" : "A complex attribute that includes the
          attributes of a schema.",
      "required" : true,
      "mutability" : "readOnly",
      "returned" : "default",
      "subAttributes" : [
        {
          "name" : "name",
          "type" : "string",
          "multiValued" : false,
          "description" : "The attribute's name, e.g.,
              'displayName'.",
          "required" : true,
          "caseExact" : true,
          "mutability" : "readOnly",
          "returned" : "default",
          "uniqueness" : "none"
        },
        {
          "name" : "type",
          "type" : "string",
          "multiValued" : false,
          "description" : "The attribute's data type. Valid values
              include 'string', 'complex', 'boolean', 'decimal',
              'integer', 'dateTime', 'reference'.",
          "required" : true,
          "caseExact" : false,
          "mutability" : "readOnly",
          "returned" : "default",
          "uniqueness" : "none",
          "canonicalValues" : [
            "string",
            "complex",
            "boolean",
            "decimal",
            "integer",
            "dateTime",
            "reference"
          ]
        },
        {
          "name" : "multiValued",
          "type" : "boolean",
          "multiValued" : false,
          "description" : "A Boolean value indicating an
              attribute's plurality.",
          "required" : true,
          "mutability" : "readOnly",
          "returned" : "default"
        },
        {
          "name" : "description",
          "type" : "string",
          "multiValued" : false,
          "description" : "A human-readable description of the
              attribute.",
          "required" : true,
          "caseExact" : false,
          "mutability" : "readOnly",
          "returned" : "default",
          "uniqueness" : "none"
        },
        {
          "name" : "required",
          "type" : "boolean",
          "multiValued" : false,
          "description" : "A boolean value indicating whether or
            not the attribute is required.",
          "required" : true,
          "mutability" : "readOnly",
          "returned" : "default"
        },
        {
          "name" : "canonicalValues",
          "type" : "string",
          "multiValued" : true,
          "description" : "A collection of canonical values.  When
              applicable, service providers MUST specify the
              canonical types, e.g., mutability of an attribute,
              return type, uniqueness.",
          "required" : false,
          "caseExact" : true,
          "mutability" : "readOnly",
          "returned" : "default",
          "uniqueness" : "none"
        },
        {
          "name" : "caseExact",
          "type" : "boolean",
          "multiValued" : false,
          "description" : "A Boolean value indicating whether or
              not a string attribute is case sensitive.",
          "required" : false,
          "mutability" : "readOnly",
          "returned" : "default"
        },
         {
          "name" : "mutability",
          "type" : "string",
          "multiValued" : false,
          "description" : "Indicates whether or not an attribute is
              modifiable.",
          "required" : false,
          "caseExact" : true,
          "mutability" : "readOnly",
          "returned" : "default",
          "uniqueness" : "none",
          "canonicalValues" : [
            "readOnly",
            "readWrite",
            "immutable",
            "writeOnly"
          ]
        },
        {
          "name" : "returned",
          "type" : "string",
          "multiValued" : false,
          "description" : "Indicates when an attribute is returned
              in a response (e.g., to a query).",
          "required" : false,
          "caseExact" : true,
          "mutability" : "readOnly",
          "returned" : "default",
          "uniqueness" : "none",
          "canonicalValues" : [
            "always",
            "never",
            "default",
            "request"
          ]
        },
        {
          "name" : "uniqueness",
          "type" : "string",
          "multiValued" : false,
          "description" : "Indicates how unique a value must be.",
          "required" : false,
          "caseExact" : true,
          "mutability" : "readOnly",
          "returned" : "default",
          "uniqueness" : "none",
          "canonicalValues" : [
            "none",
            "Enterprise",
            "Manufacturer"
          ]
        },
        {
          "name" : "referenceTypes",
          "type" : "string",
          "multiValued" : false,
          "description" : "Used only with an attribute of type
              'reference'.  Specifies a SCIM resourceType that a
              reference attribute MAY refer to, e.g.,
              'EndpointApp'.",
          "required" : false,
          "caseExact" : true,
          "mutability" : "readOnly",
          "returned" : "default",
          "uniqueness" : "none"
        },
        {
          "name" : "subAttributes",
          "type" : "complex",
          "multiValued" : true,
          "description" : "Used to define the sub-attributes of a
              complex attribute.",
          "required" : false,
          "mutability" : "readOnly",
          "returned" : "default",
          "subAttributes" : [
            {
              "name" : "name",
              "type" : "string",
              "multiValued" : false,
              "description" : "The attribute's name.",
              "required" : true,
              "caseExact" : true,
              "mutability" : "readOnly",
              "returned" : "default",
              "uniqueness" : "none"
            },
            {
              "name" : "type",
              "type" : "string",
              "multiValued" : false,
              "description" : "The attribute's data type. Valid
                  values include 'string', 'complex', 'boolean',
                  'decimal', 'integer', 'dateTime', 'reference'.",
              "required" : true,
              "caseExact" : false,
              "mutability" : "readOnly",
              "returned" : "default",
              "uniqueness" : "none",
              "canonicalValues" : [
                "string",
                "complex",
                "boolean",
                "decimal",
                "integer",
                "dateTime",
                "reference"
              ]
            },
            {
              "name" : "multiValued",
              "type" : "boolean",
              "multiValued" : false,
              "description" : "A Boolean value indicating an
                  attribute's plurality.",
              "required" : true,
              "mutability" : "readOnly",
              "returned" : "default"
            },
            {
              "name" : "description",
              "type" : "string",
              "multiValued" : false,
              "description" : "A human-readable description of the
                  attribute.",
              "required" : true,
              "caseExact" : false,
              "mutability" : "readOnly",
              "returned" : "default",
              "uniqueness" : "none"
            },
            {
              "name" : "required",
              "type" : "boolean",
              "multiValued" : false,
              "description" : "A boolean value indicating whether
                  or not the attribute is required.",
              "required" : true,
              "mutability" : "readOnly",
              "returned" : "default"
            },
            {
              "name" : "canonicalValues",
              "type" : "string",
              "multiValued" : true,
              "description" : "A collection of canonical values. 
                  When applicable, service providers MUST specify
                  the canonical types, e.g., mutability of an
                  attribute, return type, uniqueness.",
              "required" : false,
              "caseExact" : true,
              "mutability" : "readOnly",
              "returned" : "default",
              "uniqueness" : "none"
            },
            {
              "name" : "caseExact",
              "type" : "boolean",
              "multiValued" : false,
              "description" : "A Boolean value indicating whether
                  or not a string attribute is case sensitive.",
              "required" : false,
              "mutability" : "readOnly",
              "returned" : "default"
            },
            {
              "name" : "mutability",
              "type" : "string",
              "multiValued" : false,
              "description" : "Indicates whether or not an
                  attribute is modifiable.",
              "required" : false,
              "caseExact" : true,
              "mutability" : "readOnly",
              "returned" : "default",
              "uniqueness" : "none",
              "canonicalValues" : [
                "readOnly",
                "readWrite",
                "immutable",
                "writeOnly"
              ]
            },
            {
              "name" : "returned",
              "type" : "string",
              "multiValued" : false,
              "description" : "Indicates when an attribute is
                  returned in a response (e.g., to a query).",
              "required" : false,
              "caseExact" : true,
              "mutability" : "readOnly",
              "returned" : "default",
              "uniqueness" : "none",
              "canonicalValues" : [
                "always",
                "never",
                "default",
                "request"
              ]
            },
            {
              "name" : "uniqueness",
              "type" : "string",
              "multiValued" : false,
              "description" : "Indicates how unique a value must
                  be.",
              "required" : false,
              "caseExact" : true,
              "mutability" : "readOnly",
              "returned" : "default",
              "uniqueness" : "none",
              "canonicalValues" : [
                "none",
                "Enterprise",
                "Manufacturer"
              ]
            },
            {
              "name" : "referenceTypes",
              "type" : "string",
              "multiValued" : false,
              "description" : "Used only with an attribute of type
                  'reference'.  Specifies a SCIM resourceType that
                  a reference attribute MAY refer to, e.g.,
                  'EndpointApp'.",
              "required" : false,
              "caseExact" : true,
              "mutability" : "readOnly",
              "returned" : "default",
              "uniqueness" : "none"
            }
          ]
        }
      ]
    }
  ]
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Because provisioning operations are sensitive, each client must be
appropriately authenticated. Certain objects may be read-only or
not visible based on who is connected.</t>

<section anchor="scim-operations"><name>SCIM operations</name>

<t>An attacker that has authenticated to a trusted SCIM client could
manipulate portions of the SCIM database.  To be clear on the risks,
we discuss each operation below:</t>

<section anchor="object-creation"><name>Object Creation</name>

<t>Object creation in this framework grants a device access to the
infrastructure and will to a greater or lesser extent grant the
infrastructure access to the device.  When IP-layer access is
provisioned, then the access will be at the IP layer.  For non-IP
layer access, such as provisioning of BLE devices, the access may
be to the entire device.  The explicit grant is made when the
credentials of the device are shared with the SCIM server.</t>

</section>
</section>
<section anchor="object-deletion"><name>Object Deletion</name>

<t>Once granted, even if the object is removed, the server may or may not
act on that removal.  The deletion of the object is a signal of intent
by the application that it no longer expects the device to be on the
network.  It is strictly up to the SCIM server and its back end policy
to decide whether or not to revoke access to the infrastructure.  Any
access grant by the device must be separately handled.</t>

</section>
<section anchor="read-operations"><name>Read operations</name>

<t>Read operations are necessary in order for an application to sync its
state to know what devices it is expected to manage.  An attacker with
access to SCIM objects may gain access to the devices themselves.  To
prevent one SCIM client from interfering with devices that it has no
business managing, only clients that have created objects or those
they authorize SHOULD have the ability to read those objects.</t>

</section>
<section anchor="update-operations"><name>Update Operations</name>

<t>Update operations may be necessary if a device has been modified in
some way.  Attackers with update access may be able to disable network
access to devices or device access to networks.  To avoid this, the
same access control policy for read operations is RECOMMENDED here.</t>

</section>
<section anchor="higher-level-protection-for-certain-systems"><name>Higher level protection for certain systems</name>

<t>Devices provisioned with this model may be completely controlled by
the administrator of the SCIM server, depending on how those systems
are defined. For instance, if BLE passkeys are provided, the device
can be connected to, and perhaps paired with. Any additional security
must be provided at higher application layers. For example, if client
applications wish to keep private information to and from the device,
they should encrypt that information over-the-top.</t>

</section>
<section anchor="logging"><name>Logging</name>

<t>An attacker could learn what devices are on a network by examining
SCIM logs.  Due to the sensitive nature of SCIM operations, logs
SHOILD be encrypted both on the disk and in transit.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="new-schemas"><name>New Schemas</name>

<t>The IANA is requested to add the following additions to the "SCIM
Schema URIs for Data Resources" registry as follows:</t>

<texttable>
      <ttcol align='left'>URN</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>urn:ietf:params:scim:schemas:core: 2.0:Device</c>
      <c>Core Device Schema</c>
      <c>This memo, <xref target="scim-core-device-schema"></xref></c>
      <c>urn:ietf:params:scim:schemas:core: 2.0:EndpointApp</c>
      <c>Endpoint Application</c>
      <c>This memo, <xref target="endpointapp-schema"/></c>
</texttable>

<t>Note that the line break in URNs should be removed, as should this comment.</t>

</section>
<section anchor="device-schema-extensions"><name>Device Schema Extensions</name>

<t>IANA is requested to create a separate table for Device Schema Extensions,
as described in <xref target="extensions"/>, with the following columns:</t>

<t><list style="symbols">
  <t>schemaExtensionURI</t>
  <t>Short Description</t>
  <t>Reference</t>
</list></t>

<t>The policy for entries into this table shall be both "Expert Review"
and "Specification Required", as specified in <xref target="RFC8126"/>.  Reviewers
shall check that each schema is produced in the format described in
<xref target="RFC7643"/>, and that the semantics of the schema are clear and
unambiguous.  It is also RECOMMENDED that schemas be made available in
OpenAPI.</t>

<t>The initial table entries shall be as follows:</t>

<texttable>
      <ttcol align='left'>URN</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>urn:ietf:params:scim:schemas:extension: ble:2.0:Device</c>
      <c>BLE Extension</c>
      <c>This memo, <xref target="ble-extension"></xref></c>
      <c>urn:ietf:params:scim:schemas:extension: ethernet-mab:2.0:Device</c>
      <c>Ethernet MAB</c>
      <c>This memo, <xref target="ethernet-mab-extension"></xref></c>
      <c>urn:ietf:params:scim:schemas:extension: fido-device-onboard:2.0:Device</c>
      <c>FIDO Device Onboard</c>
      <c>This memo, <xref target="fido-device-onboard-extension"></xref></c>
      <c>urn:ietf:params:scim:schemas:extension: dpp:2.0:Device</c>
      <c>Wi-fi Easy Connect</c>
      <c>This memo, <xref target="wi-fi-easy-connect-extension"></xref></c>
      <c>urn:ietf:params:scim:schemas:extension: endpointAppsExt:2.0:Device</c>
      <c>Application Endpoint Extension</c>
      <c>This memo, <xref target="ble-pairing-method-extensions"></xref></c>
      <c>urn:ietf:params:scim:schemas:extension: pairingJustWorks:2.0:Device</c>
      <c>Just Works Auth BLE</c>
      <c>This memo, <xref target="ble-pairing-method-extensions"></xref></c>
      <c>urn:ietf:params:scim:schemas:extension: pairingOOB:2.0:Device</c>
      <c>Out of Band Pairing for BLE</c>
      <c>This memo, <xref target="ble-pairing-method-extensions"></xref></c>
      <c>urn:ietf:params:scim:schemas:extension: pairingPassKey:2.0:Device</c>
      <c>Passkey Pairing for BLE</c>
      <c>This memo, <xref target="ble-pairing-method-extensions"></xref></c>
</texttable>

</section>
</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors would like to thank Bart Brinckman, Rohit Mohan, Lars
Streubesand, Christian Amsüss, Jason Livingwood, Mike Ounsworth, Monty
Wiseman, Geoffrey Cooper, and Phil Hunt for their reviews.</t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">

<reference anchor="BLE54" >
  <front>
    <title>Bluetooth Core Specification, Version 5.4</title>
    <author >
      <organization>Bluetooth SIG</organization>
    </author>
    <date year="2023"/>
  </front>
</reference>
<reference anchor="DPP2" >
  <front>
    <title>Wi-Fi Easy Connect Specification, Version 2.0</title>
    <author >
      <organization>Wi-Fi Alliance</organization>
    </author>
    <date year="2020"/>
  </front>
</reference>
<reference anchor="FDO11" >
  <front>
    <title>FIDO Device Onboard Specification 1.1</title>
    <author >
      <organization>FIDO Alliance</organization>
    </author>
    <date year="2022" month="April"/>
  </front>
</reference>


<reference anchor="RFC7643">
  <front>
    <title>System for Cross-domain Identity Management: Core Schema</title>
    <author fullname="P. Hunt" initials="P." role="editor" surname="Hunt"/>
    <author fullname="K. Grizzle" initials="K." surname="Grizzle"/>
    <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
    <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>The System for Cross-domain Identity Management (SCIM) specifications are designed to make identity management in cloud-based applications and services easier. The specification suite builds upon experience with existing schemas and deployments, placing specific emphasis on simplicity of development and integration, while applying existing authentication, authorization, and privacy models. Its intent is to reduce the cost and complexity of user management operations by providing a common user schema and extension model as well as binding documents to provide patterns for exchanging this schema using HTTP.</t>
      <t>This document provides a platform-neutral schema and extension model for representing users and groups and other resource types in JSON format. This schema is intended for exchange and use with cloud service providers.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7643"/>
  <seriesInfo name="DOI" value="10.17487/RFC7643"/>
</reference>

<reference anchor="RFC7644">
  <front>
    <title>System for Cross-domain Identity Management: Protocol</title>
    <author fullname="P. Hunt" initials="P." role="editor" surname="Hunt"/>
    <author fullname="K. Grizzle" initials="K." surname="Grizzle"/>
    <author fullname="M. Ansari" initials="M." surname="Ansari"/>
    <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
    <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>The System for Cross-domain Identity Management (SCIM) specification is an HTTP-based protocol that makes managing identities in multi-domain scenarios easier to support via a standardized service. Examples include, but are not limited to, enterprise-to-cloud service providers and inter-cloud scenarios. The specification suite seeks to build upon experience with existing schemas and deployments, placing specific emphasis on simplicity of development and integration, while applying existing authentication, authorization, and privacy models. SCIM's intent is to reduce the cost and complexity of user management operations by providing a common user schema, an extension model, and a service protocol defined by this document.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7644"/>
  <seriesInfo name="DOI" value="10.17487/RFC7644"/>
</reference>


<reference anchor="I-D.bhutton-json-schema">
   <front>
      <title>JSON Schema: A Media Type for Describing JSON Documents</title>
      <author fullname="Austin Wright" initials="A." surname="Wright">
         </author>
      <author fullname="Henry Andrews" initials="H." surname="Andrews">
         </author>
      <author fullname="Ben Hutton" initials="B." surname="Hutton">
         <organization>Postman</organization>
      </author>
      <author fullname="Greg Dennis" initials="G." surname="Dennis">
         </author>
      <date day="10" month="June" year="2022"/>
      <abstract>
	 <t>   JSON Schema defines the media type &quot;application/schema+json&quot;, a JSON-
   based format for describing the structure of JSON data.  JSON Schema
   asserts what a JSON document must look like, ways to extract
   information from it, and how to interact with it.  The &quot;application/
   schema-instance+json&quot; media type provides additional feature-rich
   integration with &quot;application/schema+json&quot; beyond what can be offered
   for &quot;application/json&quot; documents.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-bhutton-json-schema-01"/>
   
</reference>

<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="RFC8520">
  <front>
    <title>Manufacturer Usage Description Specification</title>
    <author fullname="E. Lear" initials="E." surname="Lear"/>
    <author fullname="R. Droms" initials="R." surname="Droms"/>
    <author fullname="D. Romascanu" initials="D." surname="Romascanu"/>
    <date month="March" year="2019"/>
    <abstract>
      <t>This memo specifies a component-based architecture for Manufacturer Usage Descriptions (MUDs). The goal of MUD is to provide a means for end devices to signal to the network what sort of access and network functionality they require to properly function. The initial focus is on access control. Later work can delve into other aspects.</t>
      <t>This memo specifies two YANG modules, IPv4 and IPv6 DHCP options, a Link Layer Discovery Protocol (LLDP) TLV, a URL, an X.509 certificate extension, and a means to sign and verify the descriptions.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8520"/>
  <seriesInfo name="DOI" value="10.17487/RFC8520"/>
</reference>

<reference anchor="rfc4648">
  <front>
    <title>The Base16, Base32, and Base64 Data Encodings</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="October" year="2006"/>
    <abstract>
      <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4648"/>
  <seriesInfo name="DOI" value="10.17487/RFC4648"/>
</reference>

<reference anchor="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>

<reference anchor="RFC8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC6241">
  <front>
    <title>Network Configuration Protocol (NETCONF)</title>
    <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
    <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
    <date month="June" year="2011"/>
    <abstract>
      <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6241"/>
  <seriesInfo name="DOI" value="10.17487/RFC6241"/>
</reference>

<reference anchor="RFC8040">
  <front>
    <title>RESTCONF Protocol</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8040"/>
  <seriesInfo name="DOI" value="10.17487/RFC8040"/>
</reference>

<reference anchor="RFC7950">
  <front>
    <title>The YANG 1.1 Data Modeling Language</title>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <date month="August" year="2016"/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7950"/>
  <seriesInfo name="DOI" value="10.17487/RFC7950"/>
</reference>

<reference anchor="RFC8995">
  <front>
    <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
    <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="T. Eckert" initials="T." surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." surname="Behringer"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8995"/>
  <seriesInfo name="DOI" value="10.17487/RFC8995"/>
</reference>


<reference anchor="I-D.brinckman-nipc">
   <front>
      <title>An Application Layer Interface for Non-IP device control (NIPC)</title>
      <author fullname="Bart Brinckman" initials="B." surname="Brinckman">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Rohit Mohan" initials="R." surname="Mohan">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Braeden Sanford" initials="B." surname="Sanford">
         <organization>Philips</organization>
      </author>
      <date day="21" month="April" year="2024"/>
      <abstract>
	 <t>   This memo specifies RESTful application layer interface for gateways
   providing operations against non-IP devices.  The described interface
   is extensible.  This memo initially describes Bluetooth Low Energy
   and Zigbee as they are the most commonly deployed.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-brinckman-nipc-01"/>
   
</reference>




    </references>


<?line 2429?>

<section anchor="changes-from-earlier-versions"><name>Changes from Earlier Versions</name>
<t>[RFC Editor to remove this section.]</t>

<t>Draft -09:
  * last call comments, bump BLE version, add acknowledgments.
  * Also, recapture Rohit comments and those of Christian.</t>

<t>Drafts 04-08:
  * Lots of cleanup
  * Security review responses
  * Removal of a tab
  * Dealing with certificate stuff</t>

<t>Draft -03:
  * Add MAB, FDO
  * Some grammar improvements
  * fold OpenAPI
  * IANA considerations</t>

<t>Draft -02:
  *  Clean up examples
  *  Move openapi to appendix
Draft -01:</t>

<t><list style="symbols">
  <t>Doh! We forgot the core device scheme!</t>
</list></t>

<t>Draft -00:</t>

<t><list style="symbols">
  <t>Initial revision</t>
</list></t>

</section>
<section anchor="openapi-representation"><name>OpenAPI representation</name>

<t>The following sections are provided for informational purposes.</t>

<section anchor="device-schema-openapi-representation"><name>Device Core Schema OpenAPI Representation</name>

<t>OpenAPI representation of device core schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
components:
  schemas:
    Device:
      title: Device
      description: Device account
      type: object
      properties:
        displayName:
          type: string
          description: "Human readable name of the device, suitable
                        for displaying to end-users. For example,
                       'BLE Heart Monitor' etc."
          nullable: true
          readOnly: false
          writeOnly: false
        active:
          type: boolean
          description: A mutable boolean value indicating the device
                       administrative status. If set TRUE, the
                       commands (such as connect, disconnect,
                       subscribe) that control app sends to the
                       controller for the devices will be processeed
                       by the controller.  If set FALSE, any command
                       comming from the control app for the device
                       will be rejected by the controller.
          nullable: false
          readOnly: false
          writeOnly: false
        mudUrl:
          type: string
          format: uri
          description: A URL to MUD file of the device (RFC 8520).
              It
                       is added for future use. Current usage is not
                       defined yet.
          nullable: true
          readOnly: false
          writeOnly: false
      required:
        - active
      additionalProperties: false
      allOf:
        - $ref: '#/components/schemas/CommonAttributes'
    CommonAttributes:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:core:2.0:Device
          description: The list of schemas that define the resource.
          nullable: false
        id:
          type: string
          format: uri
          description: The unique identifier for a resource.
          nullable: false
          readOnly: true
          writeOnly: false
        externalId:
          type: string
          description: An identifier for the resource that is
              defined
                       by the provisioning client.
          nullable: true
          readOnly: false
          writeOnly: false
        meta:
          type: object
          readOnly: true
          properties:
            resourceType:
              type: string
              description: The name of the resource type of the
                           resource.
              nullable: false
              readOnly: true
              writeOnly: false
            location:
              type: string
              format: uri
              description: The URI of the resource being returned.
              nullable: false
              readOnly: true
              writeOnly: false
            created:
              type: string
              format: date-time
              description: The date and time the resource was added
                           to the service provider.
              nullable: false
              readOnly: true
              writeOnly: false
            lastModified:
              type: string
              format: date-time
              description: The most recent date and time that the
                           details of this resource were updated at
                           the service provider.
              nullable: false
              readOnly: true
              writeOnly: false
            version:
              type: string
              description: The version of the resource.
              nullable: true
              readOnly: true
              writeOnly: false
          additionalProperties: false
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="endpointapp-schema-openapi-representation"><name>EndpointApp Schema OpenAPI Representation</name>
<t>OpenAPI representation of endpointApp schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
components:
  schemas:
    EndpointApp:
      title: EndpointApp
      description: Endpoint application resource
      type: object
      properties:
        applicationType:
          type: string
          description: "This attribute will only contain two values;
                       'deviceControl' or 'telemetry'."
          nullable: false
          readOnly: false
          writeOnly: false

        applicationName:
          type: string
          description: Human readable name of the application.
          nullable: false
          readOnly: false
          writeOnly: false

      required:
        - applicationType
        - applicationName

      additionalProperties: true
      oneOf:
        - $ref: '#/components/schemas/clientToken'
        - $ref: '#/components/schemas/certificateInfo'

      allOf:
        - $ref: '#/components/schemas/CommonAttributes'

    clientToken:
      type: string
      description: "This attribute contains a token that the client
                    will use to authenticate itself. Each token may
                    be a string up to 500 characters in length."
      nullable: true
      readOnly: true
      writeOnly: false

    certificateInfo:
      type: object
      description: "Contains x509 certificate's subject name and
                    root CA information associated with the device
                    control or telemetry app."
      properties:
        rootCA:
          type: string
          description: "The base64 encoding of a trust anchor
                        certificate,as per RFC 4648 Section 4."
          nullable: false
          readOnly: false
          writeOnly: false

        subjectName:
          type: string
          description: "Also known as the Common Name (CN), the
                        Subject Name is a field in the X.509
                        certificate that identifies the primary
                        domain or IP address for which the
                        certificate is issued."
          nullable: false
          readOnly: false
          writeOnly: false

      required:
      - subjectName

    CommonAttributes:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:core:2.0:EndpointApp
          description: The list of schemas that define the resource.
          nullable: false
        id:
          type: string
          format: uri
          description: The unique identifier for a resource.
          nullable: false
          readOnly: true
          writeOnly: false
        meta:
          type: object
          readOnly: true
          properties:
            resourceType:
              type: string
              description: The name of the resource type of the
                           resource.
              nullable: false
              readOnly: true
              writeOnly: false
            location:
              type: string
              format: uri
              description: The URI of the resource being returned.
              nullable: false
              readOnly: true
              writeOnly: false
            created:
              type: string
              format: date-time
              description: The date and time the resource was added
                           to the service provider.
              nullable: false
              readOnly: true
              writeOnly: false
            lastModified:
              type: string
              format: date-time
              description: The most recent date and time that the
                           details of this resource were updated at
                           the service provider.
              nullable: false
              readOnly: true
              writeOnly: false
            version:
              type: string
              description: The version of the resource.
              nullable: true
              readOnly: true
              writeOnly: false
          additionalProperties: false
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="ble-extension-schema-openapi-representation"><name>BLE Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of BLE extension schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
components:
  schemas:
    BleDevice:
      type: object
      description: BLE Device schema.
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:extension:ble:2.0
                 :Device
        urn:ietf:params:scim:schemas:extension:ble:2.0:Device:
          $ref: '#/components/schemas/BleDeviceExtension'
          required: true
    BleDeviceExtension:
      type: object
      properties:
        versionSupport:
          type: array
          items:
            type: string
          description: Provides a list of all the BLE versions
                       supported by the device. For example,
                       [4.1, 4.2, 5.0, 5.1, 5.2, 5.3].
          nullable: false
          readOnly: false
          writeOnly: false

        deviceMacAddress:
          type: string
          description: It is the public MAC address assigned by the
                       manufacturer. It is unique 48 bit value. The
                       regex pattern is
                       ^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}.
          nullable: false
          readOnly: false
          writeOnly: false

        isRandom:
          type: boolean
          description: AddressType flag is taken from the BLE core
                       specifications 5.3. If FALSE, the device is
                       using public MAC address. If TRUE, device is
                       using a random address.
          nullable: false
          readOnly: false
          writeOnly: false

        separateBroadcastAddress:
          type: string
          description: "When present, this address is used for
                        broadcasts/advertisements.  This value MUST
                            NOT
                        be set when an IRK is provided.  Its form is
                        the same as deviceMa`cAddress."
          nullable: false
          readOnly: false
          writeOnly: false

        irk:
          type: string
          description: Identity resolving key, which is unique for
                       every device. It is used to resolve random
                       address.
          nullable: true
          readOnly: false
          writeOnly: true
        mobility:
          type: boolean
          description: If set to True, the BLE device will
                       automatically connect to the closest AP. For
                       example, BLE device is connected with AP-1
                           and
                       moves out of range but comes in range of AP
                          -2,
                       it will be disconnected with AP-1 and
                           connects
                       with AP-2.
          nullable: false
          readOnly: false
          writeOnly: false
        pairingMethods:
          type: array
          items:
            type: string
          description: List of pairing methods associated with the
                       ble device, stored as schema URI.
          nullable: true
          readOnly: false
          writeOnly: false
        urn:ietf:params:scim:schemas:extension:pairingNull:2.0
           :Device:
          $ref: '#/components/schemas/NullPairing'
          required: false
        urn:ietf:params:scim:schemas:extension:pairingJustWorks:2.0
           :Device:
          $ref: '#/components/schemas/PairingJustWorks'
          required: false
        urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0
           :Device:
          $ref: '#/components/schemas/PairingPassKey'
          required: false
        urn:ietf:params:scim:schemas:extension:pairingOOB:2.0
           :Device:
          $ref: '#/components/schemas/PairingOOB'
          required: false
      required:
        - versionSupport
        - deviceMacAddress
        - AddressType
        - pairingMethods
      additionalProperties: false

    NullPairing:
      type: object

    PairingJustWorks:
      type: object
      description: Just works pairing method for ble
      properties:
        key:
          type: integer
          description: Just works does not have any key value. For
                       completeness, it is added with a key value
                       'null'.
          nullable: false
          readOnly: false
          writeOnly: false
      required:
        - key

    PairingPassKey:
      type: object
      description: Pass key pairing method for ble
      properties:
        key:
          type: integer
          description: A six digit passkey for ble device.
                       The pattern of key is ^[0-9]{6}$.
          nullable: false
          readOnly: false
          writeOnly: true
      required:
        - key

    PairingOOB:
      type: object
      description: Out-of-band pairing method for BLE
      properties:
        key:
          type: string
          description: The OOB key value for ble device.
          nullable: false
          readOnly: false
          writeOnly: false
        randomNumber:
          type: integer
          description: Nonce added to the key
          nullable: false
          readOnly: false
          writeOnly: true
        confirmationNumber:
          type: integer
          description: Some solutions require a confirmation number
                       in the RESTful message exchange.
          nullable: true
          readOnly: false
          writeOnly: true
      required:
        - key
        - randomNumber
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="dpp-extension-schema-openapi-representation"><name>DPP Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of DPP extension schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
components:
  schemas:
    DppDevice:
      type: object
      description: Wi-Fi Easy Connect (DPP) device extension schema
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:extension:dpp:2.0
                 :Device
        urn:ietf:params:scim:schemas:extension:dpp:2.0:Device:
          $ref: '#/components/schemas/DppDeviceExtension'
          required: true
    DppDeviceExtension:
      type: object
      properties:
        dppVersion:
          type: integer
          description: Version of DPP this device supports.
          nullable: false
          readOnly: false
          writeOnly: false
        bootstrappingMethod:
          type: array
          items:
            type: string
          description: The list of all the bootstrapping methods
                       available on the enrollee device. For
                       example, [QR, NFC].
          nullable: true
          readOnly: false
          writeOnly: false
        bootstrapKey:
          type: string
          description: This key is Elliptic-Curve Diffie–Hellman
                       (ECDH) public key. The base64 encoded length
                       for P-256, P-384, and P-521 is 80, 96, and
                           120
                       characters.
          nullable: false
          readOnly: false
          writeOnly: true
        deviceMacAddress:
          type: string
          description: The MAC address assigned by the manufacturer.
                       The regex pattern is
                       ^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}.
          nullable: false
          readOnly: false
          writeOnly: false
        classChannel:
          type: array
          items:
            type: string
          description: A list of global operating class and channel
                       shared as bootstrapping information. It is
                       formatted as class/channel. For example,
                       '81/1', '115/36'.
          nullable: false
          readOnly: false
          writeOnly: false
        serialNumber:
          type: string
          description: An alphanumeric serial number that may also
              be
                       passed as bootstrapping information.
          nullable: false
          readOnly: false
          writeOnly: false
      required:
        - dppVersion
        - bootstrapKey
      additionalProperties: false
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="ethernet-mab-extension-schema-openapi-representation"><name>Ethernet MAB Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of Ethernet MAB extension schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
components:
  schemas:
    EthernetMABDevice:
      type: object
      description: Ethernet MAC Authenticated Bypass
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:extension:ethernet-mab
                 :2.0:Device
        urn:ietf:params:scim:schemas:extension:ethernet-mab:2.0
           :Device:
          $ref: '#/components/schemas/EthernetMABDeviceExtension'
          required: true
    EthernetMABDeviceExtension:
      type: object
      properties:
        deviceMacAddress:
          type: string
          description: It is the public MAC address assigned by the
                       manufacturer. It is unique 48 bit value. The
                       regex pattern is
                       ^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}.
          nullable: false
          readOnly: false
          writeOnly: false
      required:
        - deviceMacAddress
      description: Device extension schema for Ethernet-MAB
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="fdo-extension-schema-openapi-representation"><name>FDO Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of FDO extension schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
components:
  schemas:
    FDODevice:
      type: object
      description: FIDO Device Onboarding Extension
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:extension:fido-device
                 -onboard:2.0:Devices
        urn:ietf:params:scim:schemas:extension:fido-device-onboard
           :2.0:Devices:
          $ref: '#/components/schemas/FDODeviceExtension'
          required: true
    FDODeviceExtension:
      type: object
      properties:
        fdoVoucher:
          type: string
          description: A FIDO Device Onboard (FDO) Voucher
          nullable: false
          readOnly: false
          writeOnly: false
      required:
        - fdoVoucher
      description: Device Extension for a FIDO Device Onboard (FDO)
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="zigbee-extension-schema-openapi-representation"><name>Zigbee Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of zigbee extension schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
components:
  schemas:
    ZigbeeDevice:
      type: object
      description: Zigbee Device schema.
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:extension:zigbee:2.0
                 :Device
        urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device:
          $ref: '#/components/schemas/ZigbeeDeviceExtension'
          required: true
    ZigbeeDeviceExtension:
      type: object
      properties:
        versionSupport:
          type: array
          items:
            type: string
          description: Provides a list of all the Zigbee versions
                       supported by the device. For example, [3.0].
          nullable: false
          readOnly: false
          writeOnly: false
        deviceEui64Address:
          type: string
          description: The EUI-64 (Extended Unique Identifier)
              device
                       address. The regex pattern is
                       ^[0-9A-Fa-f]{16}$.
          nullable: false
          readOnly: false
          writeOnly: false
      required:
        - versionSupport
        - deviceEui64Address
      description: Device extension schema for Zigbee.
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="endpointappsext-extension-schema-openapi-representation"><name>EndpointAppsExt Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of endpoint Apps extension schema 
is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
components:
  schemas:
    EndpointAppsExt:
      type: object
      properties:
        applications:
          $ref: '#/components/schemas/applications'

        deviceControlEnterpriseEndpoint:
          type: string
          format: url
          description: The URL of the enterprise endpoint which
              device
                       control apps use to reach enterprise network
                       gateway.
          nullable: false
          readOnly: true
          writeOnly: false

        telemetryEnterpriseEndpoint:
          type: string
          format: url
          description: The URL of the enterprise endpoint which
                       telemetry apps use to reach enterprise
                           network
                       gateway.
          nullable: false
          readOnly: true
          writeOnly: false

      required:
        - applications
        - deviceControlEnterpriseEndpoint

    applications:
      type: array
      items:
        value:
          type: string
          description: The identifier of the endpointApp.
          nullable: false
          readOnly: false
          writeOnly: false
        ref:
          type: string
          format: uri
          description: The URI of the corresponding 'EndpointApp'
                      resource which will control or obtain data
                          from
                      the device.
          nullable: false
          readOnly: true
          writeOnly: false
      required:
        - value
        - ref


<CODE ENDS>
]]></artwork></figure>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
S3io44XURGh7Xjnb+38ZNCqMaJsBAA==

-->

</rfc>

