<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ivy-entitlement-inventory-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="entitlement-inventory">A YANG Module for Entitlement Inventory</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-entitlement-inventory-04"/>
    <author initials="M." surname="Palmero" fullname="Marisol Palmero">
      <organization>Independent</organization>
      <address>
        <email>marisol.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="C." surname="Cardona" fullname="Camilo Cardona">
      <organization>NTT</organization>
      <address>
        <email>camilo@gin.ntt.net</email>
      </address>
    </author>
    <author initials="D." surname="Lopez" fullname="Diego Lopez">
      <organization>Telefonica</organization>
      <address>
        <email>diego.r.lopez@telefonica.com</email>
      </address>
    </author>
    <author initials="I." surname="Busi" fullname="Italo Busi">
      <organization>Huawei</organization>
      <address>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="25"/>
    <area>Operations and Management</area>
    <workgroup>Network Inventory YANG WG</workgroup>
    <keyword>inventory</keyword>
    <keyword>capability</keyword>
    <keyword>entitlement</keyword>
    <keyword>licensing</keyword>
    <abstract>
      <?line 46?>

<t>This document defines a YANG data model for managing software-based entitlements (licenses, authorization tokens, pay-as-you-go service credentials…) within a network inventory. The model represents the relationship between organizational entitlements, network element capabilities, and the constraints that entitlements impose on capability usage.</t>
      <t>This data model enables operators to determine what capabilities their network elements possess, which capabilities are currently entitled for use, and what restrictions apply. The model supports both centralized entitlement management and device-local entitlement tracking for physical and virtual network elements.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://dr2lopez.github.io/ivy-capability-entitlement/draft-ietf-ivy-entitlement-inventory.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ivy-entitlement-inventory/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Network Inventory YANG WG Working Group mailing list (<eref target="mailto:inventory-yang@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/inventory-yang/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/inventory-yang/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/dr2lopez/ivy-capability-entitlement"/>.</t>
    </note>
  </front>
  <middle>
    <?line 52?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Network elements provide capabilities‚ i.e., functions related to their role in the network, such as MPLS routing, advanced QoS, or bandwidth throughput, which operators use to build services. Many capabilities require an evidence item for the right to use them, issued by the network element vendor, for their activation. These evidence items are called entitlements, and can take different forms, such as software licenses, access tokens or credentials for as-a-service consumption.</t>
      <t>This document defines a YANG data model for tracking entitlements and their relationship to capabilities. The model supports three operational use cases:</t>
      <ul spacing="normal">
        <li>
          <t>Tracking entitlements held by the organization, their scope, and assigned holders</t>
        </li>
        <li>
          <t>Representing capabilities available on network elements and whether entitlements permit their use</t>
        </li>
        <li>
          <t>Monitoring active capability usage and enforced restrictions</t>
        </li>
      </ul>
      <t>Operators use this information to answer: What can this device do? What is it
entitled to do? What restrictions apply?</t>
      <t>As network technology evolves toward modular, software-defined, and virtualized architectures, managing the rights to activate specific functions becomes increasingly complex. These rights, granted via entitlements, must be tracked, aggregated, and matched to assets to ensure that services can be delivered using available capabilities. This complexity calls for structured, machine-readable models that represent which capabilities are available, permitted, and in use.</t>
      <t>This draft provides a foundational YANG structure for representing these relationships as standardized data, complementing the network inventory module.</t>
      <section anchor="scope-of-the-entitlement-model">
        <name>Scope of the Entitlement Model</name>
        <t>The entitlement model provides an inventory of entitlements. This includes the entitled holders and the capabilities to which they are entitled. Additionally, it offers information into the restrictions of the operation of the different assets (network elements and components). In general, this model seeks to address the following questions:</t>
        <ul spacing="normal">
          <li>
            <t>What entitlements are administered/owned by the organization?</t>
          </li>
          <li>
            <t>How are entitlements restricted to some assets and holders?</t>
          </li>
          <li>
            <t>What entitlements are installed on each network asset?</t>
          </li>
          <li>
            <t>What constraints do the current installed entitlements impose on the network assets' functionality?</t>
          </li>
          <li>
            <t>Does the entitlement impose any kind of global restrictions? What are they?</t>
          </li>
          <li>
            <t>What are the restrictions that each network element has due to the entitlements it holds locally?</t>
          </li>
        </ul>
        <t>In this document, the term "installed entitlements" refers to entitlements that have been assigned to a particular network asset. The act of installation may involve directly provisioning the entitlement on the device or component, or it may represent a logical assignment in a centralized system. Some entitlements may be assigned to multiple network assets up to a defined limit; such constraints can be modelled as global restrictions under the entitlement.</t>
        <t>The model supports entitlement tracking and capability management. It is intentionally designed to be extensible through YANG augmentation. Organizations requiring vendor-specific entitlement features should augment this base model rather than modifying it directly.</t>
        <t>This model focuses on operational inventory of entitlements and capabilities. The following are explicitly out of scope:</t>
        <ul spacing="normal">
          <li>
            <t>Commercial aspects of entitlement acquisition and pricing</t>
          </li>
          <li>
            <t>Entitlement migration policies between devices (vendor-specific)</t>
          </li>
          <li>
            <t>Per-user access control mechanisms (covered by separate access control standards)</t>
          </li>
        </ul>
        <t>This model focuses on the ability to use capabilities, not on access control mechanisms. For example, if a router cannot enable MPLS due to entitlement restrictions, it means the organization lacks the rights to use that capability—even if access to the device itself is available. This distinction is separate from, for instance, the ability of a specific user to configure MPLS due to access control limitations.</t>
      </section>
      <section anchor="entitlement-deployment-models">
        <name>Entitlement Deployment Models</name>
        <t>Entitlements can be deployed and managed in different ways depending on the operational environment and vendor implementation. The following deployment models are commonly encountered:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Local Installation</strong>: The entitlement is installed directly on the network asset, which maintains knowledge of its entitlements and enforces capability restrictions locally. This is a common approach for devices that operate independently.</t>
          </li>
          <li>
            <t><strong>License Server</strong>: Entitlements reside in an external (license) server, which may be deployed on-premises or in the cloud. Network assets communicate with the license server to verify entitlement status and capability permissions. This model supports centralized management and dynamic entitlement allocation.</t>
          </li>
          <li>
            <t><strong>Commercial Agreement</strong>: In some deployments, entitlements exist purely as commercial agreements, and policy enforcement occurs outside the network asset. The network asset may operate without direct knowledge of the entitlement, relying on external systems for compliance tracking.</t>
          </li>
        </ul>
        <t>This model is designed to be exposed by both network elements and license services. It provides mechanisms for each system to express the information it knows while being clear about the information it does not have, primarily through the presence or absence of containers. A network element should contain certain entitlement information, a license service other information, and a telemetry monitoring system could gather data from both sources to provide a complete picture.</t>
        <section anchor="entitlement-provisioning">
          <name>Entitlement Provisioning</name>
          <t>This model is not intended for automatic discovery of entitlements or capabilities through the network elements themselves. Instead, it assumes that entitlements and their associations are either:</t>
          <ul spacing="normal">
            <li>
              <t>Provisioned in a license server or asset database;</t>
            </li>
            <li>
              <t>Installed on individual devices and reported through management interfaces; or</t>
            </li>
            <li>
              <t>Manually configured as part of an inventory process.</t>
            </li>
          </ul>
          <t>Future augmentations may explore capability discovery or telemetry-driven models, but they are out of scope of the current version.</t>
        </section>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

<ul spacing="normal">
        <li>
          <t>ToBeUpdated(TBU) Open Issue for the IVY WG, to include:</t>
        </li>
      </ul>
      <t>&lt;&lt;Update Glossary under  Network Inventory draft, <xref target="BaseInventory"/>. We need at least formal definitions of "capability" and "entitlement".&gt;&gt;</t>
      <ul spacing="normal">
        <li>
          <t>Capability: A discrete function, feature, or resource that a network element is technically capable of performing when properly entitled. Examples include MPLS routing, specific bandwidth throughput, or advanced QoS features.</t>
        </li>
        <li>
          <t>Entitlement: A vendor-issued authorization (typically a license) that grants permission to activate and use one or more capabilities on specific network elements, potentially subject to constraints such as time limits, usage quotas, or scope restrictions.</t>
        </li>
        <li>
          <t>Installed Entitlement: An entitlement that has been locally activated on a network element and is available for use by that element's capabilities.</t>
        </li>
        <li>
          <t>Capability Restriction: A constraint imposed by an entitlement that limits how a capability can be used (e.g., bandwidth cap, concurrent user limit, geographic restriction).</t>
        </li>
        <li>
          <t>Network Asset: A network element or a component within a network element. The model supports entitlements and capabilities at both levels. This term is used throughout the document when the concept applies equally to network elements and their components.</t>
        </li>
      </ul>
    </section>
    <section anchor="modeling-capabilities-and-entitlements">
      <name>Modeling Capabilities and Entitlements</name>
      <t>The model describes how to represent capabilities and the entitlements that enable them across inventoried network assets. Capabilities describe what an asset can do. Entitlements indicate whether those capabilities are allowed and under what conditions.</t>
      <figure anchor="fig-org">
        <name>Relationship Between Entitlements and Capabilities</name>
        <sourcecode type="{::nomarkdown}aasvg{:/}"><![CDATA[
        Organizational Level
   ┌─────────────────────────────┐
   │  Entitlements Inventory     │
   │  (centralized)              │
   └──────────┬──────────────────┘
              │ attached to
              ▼
   ┌─────────────────────────────┐
   │  Network Elements           │
   │  ┌──────────────────────┐   │
   │  │ Installed            │   │
   │  │ Entitlements         │   │
   │  └─────┬────────────────┘   │
   │        │ enables            │
   │        ▼                    │
   │  ┌──────────────────────┐   │
   │  │ Capabilities         │   │
   │  │  - allowed           │   │
   │  │  - in-use            │   │
   │  │  - restrictions      │   │
   │  └──────────────────────┘   │
   └─────────────────────────────┘

]]></sourcecode>
      </figure>
      <t>The following subsections describe how the model progressively builds upon the base network inventory to incorporate capabilities, entitlements, and their relationships. The model uses identity-based classes in multiple parts to enable extensibility, allowing implementations to derive custom types that reference external definitions when needed.</t>
      <section anchor="foundational-model-networkelement-entitlements-capabilities-and-restrictions">
        <name>Foundational model: NetworkElement-Entitlements-Capabilities and Restrictions</name>
        <t>To represent the complex relationships between network elements, capabilities, and entitlements, a foundational Network Inventory model should be built through a series of extensions. The following diagrams illustrate the progressive complexity of the approach, starting with simple network inventory extensions and culminating in a comprehensive model incorporating capabilities, entitlements, and restrictions.</t>
        <section anchor="progressive-model-complexity">
          <name>Progressive Model Complexity</name>
          <t><xref target="fig-extBaseNetworkInventory"/> depicts the initial step, highlighting the base network inventory and the areas to be extended: hardware, software, and entitlements. These extensions are necessary to properly model the relationships.</t>
          <figure anchor="fig-extBaseNetworkInventory">
            <name>Base Network Inventory Entitlement extension</name>
            <sourcecode type="{::nomarkdown}aasvg{:/}"><![CDATA[
                    ┌─────────────────┐
                    │Base Network     │
                    │Inventory        │
                    └─────────┬───────┘
        ┌─────────────────────┼─────────────────────┐
        ▼                     ▼                     ▼
┌─────────────┐    ┌─────────────────┐    ┌─────────────┐
│  Hardware   │    │    Software     │    │Entitlements │
└─────────────┘    └─────────────────┘    └─────────────┘
]]></sourcecode>
          </figure>
          <t><xref target="fig-ascii-art_baseInventory"/> illustrates the initial relationship between network elements and entitlements, which is two-way: entitlements <bcp14>SHOULD</bcp14> be attached to NEs, and NEs <bcp14>SHOULD</bcp14> have entitlements installed.</t>
          <figure anchor="fig-ascii-art_baseInventory">
            <name>Relationship between entitlements and Base Inventory</name>
            <sourcecode type="{::nomarkdown}aasvg{:/}"><![CDATA[
                 ┌─────────────────────────┐
                 │Base Network Inventory   │
                 └─────────┬───────────────┘
     ┌─────────────────────┼─────────────────────┐
     ▼                     ▼                     ▼  
┌────┴────────┐    ┌───────┴─────────┐    ┌──────┴──────┐
│  Hardware   │    │    Software     │    │Entitlements │
└──────┬──────┘    └───────┬─────────┘    └───┬──┬──────┘
       │                   │                  │  │       
       │                   └───────<──>───────┘  │       
       └───────────────────<──>──────────────────┘       
]]></sourcecode>
          </figure>
          <t><xref target="fig-capabilities_baseinventory"/> depicts NE support capabilities by means of entitlements that authorize their use.</t>
          <figure anchor="fig-capabilities_baseinventory">
            <name>Capabilities integration with the Base Inventory</name>
            <sourcecode type="{::nomarkdown}aasvg{:/}"><![CDATA[
                 ┌─────────────────────────┐
                 │Base Network Inventory   │
                 └──────────┬──────────────┘
       ┌────────────────────┼────────────────────┐
       ▼                    ▼                    ▼     
  ┌────┴───────┐    ┌───────┴───────┐     ┌──────┴─────┐
  │  Hardware  │    │  Entitlements │     │   Software │
  └────┬───────┘    └─────┬─────────┘     └─────┬──────┘
       │                  │                     │      
       │                  │enables              │      
       │supports   ┌──────V─────────┐   supports│      
       └──────────>│  Capabilities  │<──────────┘      
                   └────────────────┘                     
]]></sourcecode>
          </figure>
          <t>Finally, NE support capabilities thanks to entitlements that entitle them of their use under certain constraints as shown in <xref target="fig-capabilities_restrictions"/>.</t>
          <figure anchor="fig-capabilities_restrictions">
            <name>Complete model with restrictions</name>
            <sourcecode type="{::nomarkdown}aasvg{:/}"><![CDATA[
              ┌────────────────────────────┐            
              │   Base Network Inventory   │            
              └────────────┬───────────────┘            
                           │                            
       ┌───────────────────┼─────────────────────┐      
       ▼                   ▼                     ▼  
┌──────┴─────┐     ┌───────┴───────┐      ┌──────┴─────┐
│  Hardware  │     │  Entitlements │      │   Software │
└──────┬─────┘     └───────┬───────┘      └──────┬─────┘
       │                   │                     │      
       │                   │enables              │      
       │supports    ┌──────V─────────┐   supports│      
       └───────────>│  Capabilities  │<──────────┘      
                    └──────┬─────────┘                  
                           │              
                           │constrained by                            
                    ┌──────V─────────┐                  
                    │  Restrictions  │                  
                    └────────────────┘                  
]]></sourcecode>
          </figure>
        </section>
      </section>
      <section anchor="capabilities">
        <name>Capabilities</name>
        <t>Capabilities are modeled by augmenting "network-element" in the "ietf-network-inventory" module in <xref target="BaseInventory"/> according to the following tree:</t>
        <artwork><![CDATA[
 +--ro capabilities!
    +--ro capability-class* [capability-class]
       +--ro capability-class    identityref
       +--ro capability* [capability-id]
          +--ro capability-id                      string
          +--ro extended-capability-description?   string
          +--ro entitlement-state!
          |  +--ro allowed?   boolean
          |  +--ro in-use?    boolean
          +--ro supporting-entitlements!
          |  +--ro supporting-entitlement* [entitlement-id]
          |     +--ro entitlement-id    -> ../../../../../../installed-entitlements/entitlement/entitlement-id
          +--ro capability-restrictions!
             +--ro capability-restriction* [restriction-id]
                +--ro restriction-id    string
                +--ro description?      string
                +--ro resource-name?    string
                +--ro units?            string
                +--ro max-value?        uint32
                +--ro current-value?    uint32
]]></artwork>
        <t>For any given network asset, the capabilities list <bcp14>MAY</bcp14> include all potential capabilities advertised by the vendor, and <bcp14>MUST</bcp14> include those for which the network operator holds a valid entitlement—whether active or not.</t>
        <t>This document does not define a complete theory of capabilities or their internal relationships; such work may be addressed elsewhere. Instead, the model provides a flexible framework through the use of identity-based capability classes:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Basic capability class</strong>: The module defines <tt>basic-capability-description</tt> as a simple capability  class using only identifiers and descriptions. This supports implementations that present capabilities as straightforward lists.</t>
          </li>
          <li>
            <t><strong>Extended capability classes</strong>: For structured capability definitions, implementations derive new identities from <tt>capability-class</tt>. These reference external YANG modules where capabilities have formal structure and semantics. See <xref target="ext-capability"/> for extension examples.</t>
          </li>
        </ul>
        <t>This separation ensures that capability definitions can evolve independently of the entitlement inventory model, and that implementations can adopt capability models appropriate to their domain without modifications to this base module.</t>
        <t>The granularity at which capabilities are defined is at the discretion of the vendor. A vendor <bcp14>MAY</bcp14> choose to advertise capabilities at a high level of abstraction, such as "Advanced Services", and consumers of this information should refer to vendor documentation to understand what specific functions are included. Alternatively, an implementation <bcp14>MAY</bcp14> enumerate capabilities at a finer granularity, listing individual protocols or features such as MPLS, BGP, or QoS. The model accommodates both approaches.</t>
        <t>The capabilities of an inventoried network asset may be restricted based on the availability of proper entitlements. An entitlement manager should be interested in the capabilities available to be used on the network assets, and the capabilities that are currently available. The model includes this information by means of the "supporting entitlements" list, which references installed entitlements and includes potential restrictions related to the status of the entitlement. This allows organizations to monitor entitlement usage and avoid misconfigurations or exceeding permitted capability limits.</t>
        <section anchor="ext-capability">
          <name>Extending Capability Classes</name>
          <t>The <tt>capability-class</tt> identity provides an extension point for integrating external capability models. This module does not define domain-specific capability classes. Instead, extensions derive new capability classes that reference separate models where capabilities are formally defined.</t>
          <t>The extension pattern involves two modules:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Capability definition module</strong>: An independent module defining capability concepts with its own structure (lists, containers, attributes). This module has no dependency on the entitlement inventory.</t>
            </li>
            <li>
              <t><strong>Integration module</strong>: An extension module that derives a new <tt>capability-class</tt> identity and augments the entitlement inventory to reference the capability definitions from the first module.</t>
            </li>
          </ol>
          <t>This pattern ensures that:</t>
          <ul spacing="normal">
            <li>
              <t>Capability models evolve independently of entitlement tracking.</t>
            </li>
            <li>
              <t>Multiple capability domains can coexist (e.g., routing capabilities, security capabilities, QoS capabilities) each with their own defining module.</t>
            </li>
            <li>
              <t>The entitlement inventory remains a thin integration layer rather than a repository of capability definitions.</t>
            </li>
          </ul>
          <t>The following example module defines capability concepts for a specific domain:</t>
          <artwork><![CDATA[
module example-capability-framework {
  yang-version 1.1;
  namespace "urn:example:capability-framework";
  prefix excap;

  organization
    "Example Organization";
  description
    "Example module defining a list of capabilities.";

  revision 2025-12-05 {
    description
      "Initial version.";
  }

  container capabilities {
    description
      "Container for capability definitions.";

    list capability {
      key "capability-id";
      description
        "List of capability definitions.";

      leaf capability-id {
        type string;
        description
          "Unique identifier for the capability.";
      }

      leaf description {
        type string;
        description
          "Human-readable description of the capability.";
      }
    }
  }
}
]]></artwork>
          <t>The following extension module extends the <tt>capability-class</tt> identity and augments the entitlement inventory to reference the capability definitions from the module above:</t>
          <artwork><![CDATA[
module example-capability-extension {
  yang-version 1.1;
  namespace "urn:example:capability-extension";
  prefix excapext;

  import ietf-entitlement-inventory {
    prefix ei;
  }
  import ietf-network-inventory {
    prefix inv;
  }
  import example-capability-framework {
    prefix excap;
  }

  organization
    "Example Organization";
  description
    "Example module that extends capability-class and adds
     a reference to capability definitions in another module.";

  revision 2025-12-05 {
    description
      "Initial version.";
  }

  identity example-capability-class {
    base ei:capability-class;
    description
      "Capability class that references the example
       capability framework.";
  }

  augment "/inv:network-inventory/inv:network-elements"
        + "/inv:network-element/ei:capabilities"
        + "/ei:capability-class/ei:capability" {
    when "derived-from-or-self(../ei:capability-class,"
       + "'excapext:example-capability-class')";
    description
      "Adds a reference to capability definitions.";

    leaf capability-ref {
      type leafref {
        path "/excap:capabilities/excap:capability"
           + "/excap:capability-id";
      }
      description
        "Reference to a capability definition in the
         example-capability-framework module.";
    }
  }
}
]]></artwork>
          <t>This pattern allows capability definitions to evolve independently while maintaining a clean integration with the entitlement inventory through the capability-class identity mechanism.</t>
        </section>
      </section>
      <section anchor="entitlements">
        <name>Entitlements</name>
        <t>The entitlement modeling augments "network-inventory" in the ietf-network-inventory module in <xref target="BaseInventory"/> with a top-level entitlements container according to the following tree:</t>
        <artwork><![CDATA[
 +--ro entitlements!
    +--ro entitlement* [entitlement-id]
       +--ro entitlement-id            string
       +--ro product-id?               string
       +--ro sku?                      string
       +--ro vendor?                   string
       +--ro part-number?              string
       +--ro state?                    entitlement-state-t
       +--ro renewal-profile
       |  +--ro activation-date?   yang:date-and-time
       |  +--ro start-date?        yang:date-and-time
       |  +--ro expiration-date?   yang:date-and-time
       +--ro restrictions!
       |  +--ro restriction* [restriction-id]
       |     +--ro restriction-id    string
       |     +--ro description?      string
       |     +--ro resource-name?    string
       |     +--ro units?            string
       |     +--ro max-value?        uint32
       |     +--ro current-value?    uint32
       +--ro parent-entitlement-uid?   -> ../../entitlement/entitlement-id
       +--ro entitlement-attachment
          +--ro universal-access?   boolean
          +--ro holders
          |  +--ro organizations-names
          |  |  +--ro organizations*   string
          |  +--ro users-names
          |     +--ro users*   string
          +--ro assets
             +--ro elements
             |  +--ro network-elements*   -> /inv:network-inventory/network-elements/network-element/ne-id
             +--ro components
                +--ro component* [network-element component-id]
                   +--ro network-element    -> /inv:network-inventory/network-elements/network-element/ne-id
                   +--ro component-id       -> /inv:network-inventory/network-elements/network-element[inv:ne-id=current()/../network-element]/components/component/component-id
]]></artwork>
        <t><xref target="fig-ModelRelationship"/> depicts the relationship between the Entitlement Inventory model and other models. The Entitlement Inventory model enhances the model defined in the base network inventory model with entitlement-specific attributes and centralized entitlement management capabilities.</t>
        <figure anchor="fig-ModelRelationship">
          <name>Relationship of Entitlement Inventory Model to Other Inventory Models</name>
          <artwork><![CDATA[
   +----------------------+
   |                      |
   |Base Network Inventory|
   |                      |
   +----------+-----------+
              ^
              |
   +----------+-----------+
   |                      |
   | Entitlement Inventory|
   |  e.g., licenses,     |
   |  capabilities,       |
   |  restrictions        |
   +----------------------+
]]></artwork>
        </figure>
        <t>Entitlements <bcp14>MUST</bcp14> be listed at the top level, directly under the <tt>network-inventory</tt> container. This is required because organizations may own entitlements that are not yet assigned to any network asset. Such entitlements exist in a pending state, available for future assignment or installation when the organization decides to allocate them to specific assets.</t>
        <t>Entitlements may be listed without explicitly identifying the assets (network elements or components) they apply to. Entitlements are linked to network assets in multiple ways: (1) When entitlements are created for specific assets (i.e., they should only be installed on those), then those assets are specified under the entitlement's attachment section. (2) When an entitlement is installed on a network asset, it appears in the asset's installed-entitlements list. (3) When an installed entitlement enables capabilities, the asset's capabilities will reference the installed entitlement via the supporting-entitlements list.</t>
        <t>The base network inventory model includes both network elements and components within them. A network element is an abstraction that typically represents a complete device such as a router or switch. For single-chassis devices, entitlements are typically associated with the network element itself rather than with individual chassis components. However, certain deployment scenarios involve multi-chassis systems, such as stacked switches or optical network elements—where multiple physical units operate as a single logical network element. In these cases, each component may have its own commercial identity (such as a serial number) while the collection behaves as one network element.</t>
        <t>Entitlements are typically assigned based on commercial identifiers, often targeting serial numbers. The model supports linking entitlements to both network elements and individual components. However, component-level entitlement tracking is <bcp14>RECOMMENDED</bcp14> only when necessary—specifically when each component has its own set of capability limitations that must be managed independently. Examples include:</t>
        <ul spacing="normal">
          <li>
            <t>Individual switches in a stack, where each unit has separate entitlements;</t>
          </li>
          <li>
            <t>Individual chassis in a multi-chassis network element, such as optical equipment; or</t>
          </li>
          <li>
            <t>Pay-as-you-grow routers where line cards have independent entitlement requirements.</t>
          </li>
        </ul>
        <t>In the YANG model, both network elements and components are supported by providing augmentations to each.</t>
        <t>Entitlements and network assets are linked in the model in multiple ways. Entitlements at the network-inventory level should be attached to network assets through their attachment mechanism, representing organizational entitlements. Network assets have their own installed-entitlements that may be derived from the centralized entitlements or assigned directly. The capabilities of network assets reference these installed entitlements through their supporting-entitlements lists. The former addresses the case of a centralized license server or inventory system, while the latter represents entitlements that are actively entitling the asset's capabilities. An installed entitlement that is not referenced by any capability means that it is active on the asset but not currently in use.</t>
        <t>Entitlements are managed both centrally at the network-inventory level and at the asset level through installed-entitlements. Network assets reference their installed entitlements through their capabilities' supporting-entitlements lists. For instance, a license server or inventory system should list an entitlement at the top level, which then gets installed on specific network assets where the capabilities reference the active entitlement. Each installed entitlement references its centralized entitlement directly via the entitlement-id leafref. For hierarchical or pooled entitlements (e.g., a base license with add-on upgrades), the "parent-entitlement-uid" field in the centralized entitlement catalog links child entitlements to their parent. Proper identification of entitlements is imperative to ensure consistency across systems, enabling monitoring systems to recognize when multiple locations reference related entitlements.</t>
        <section anchor="reverse-mapping-from-entitlements-to-capabilities">
          <name>Reverse Mapping from Entitlements to Capabilities</name>
          <t>While the model includes links from capabilities to supporting entitlements, some inventory operators may need to evaluate entitlements independently and identify the capabilities they enable.</t>
          <t>To support this, implementers may use the "product-id" or "capability-class" metadata along with external references or catalogs. Implementations requiring reverse mapping (identifying capabilities enabled by a specific entitlement) may leverage vendor-specific augmentations or external entitlement catalogs. Standardization of such reverse mappings is outside the scope of this document.</t>
        </section>
      </section>
      <section anchor="entitlement-attachment">
        <name>Entitlement Attachment</name>
        <t>The "entitlement" container holds a container called "entitlement-attachment" which relates how the entitlement is operationally linked to holders or network assets. Note that there is a difference between an entitlement being attached to a network asset and an entitlement being installed on the asset. In the former, the license was explicitly associated with one or more assets. Some licenses actually can be open but have a limited number of installations. Other licenses should be openly constrained to a geographic location. We are not dealing with these complex cases now, but the container can be expanded for this in the future.</t>
        <t>The model accommodates listing entitlements acquired by the organization but not yet applied or utilized by any actor/asset at the network-inventory level. For these pending entitlements, they can be managed centrally without requiring individual network assets to be aware of their existence.</t>
        <t>Some entitlements are inherently associated with a holder, such as organization or a user. For example, a software license may be directly attached to a user. Also, the use of a network device may come with a basic license provided solely to an organization. Some entitlements could be assigned to a more abstract description of holders, such as people under a jurisdiction or a geographical area. The model contains basic information about this, but it can be extended in the future to be more descriptive.</t>
        <t>While attachment is optional, the model should be capable of expressing attachment in various scenarios. The model can be expanded to list to which network assets an entitlement is aimed for, when this link is more vague, such as a site license (e.g., network assets located in a specific site), or more open licenses (e.g., free software for all users subscribed to a streaming platform).</t>
        <t>The current model does not provide information on whether an entitlement can be reassigned to other network assets. Such scenarios fall under the "what if" category, which is not covered by this model.</t>
      </section>
      <section anchor="installed-entitlements">
        <name>Installed Entitlements</name>
        <t>Since capabilities are optional in network assets, the model also provides an augmentation to track entitlements that are installed directly on network assets. This augmentation of "network-element" and "component" in the "ietf-network-inventory" module provides local entitlement storage according to the following tree:</t>
        <artwork><![CDATA[
 +--ro installed-entitlements!
    +--ro entitlement* [entitlement-id]
       +--ro entitlement-id    -> /inv:network-inventory/ei:entitlements/entitlement/entitlement-id
       +--ro in-use?           boolean
]]></artwork>
        <t>The installed entitlements represent references to entitlements that are currently active and entitling the network asset. The "entitlement-id" field provides a direct reference to the centralized entitlement at the network-inventory level.</t>
        <t>This structure allows network assets to track which entitlements are actively granting them rights, while maintaining the ability to trace relationships to organization-wide entitlement policies.</t>
        <t>When entitlements are installed at the component level (e.g., line cards), implementations <bcp14>MAY</bcp14> also list them at the parent network-element level to provide a consolidated view of all entitlements active on the device. Management systems should recognize when an entitlement-id appears at both levels and treat them as the same license instance to avoid double-counting. This point requires further exploration in future instances of this document.</t>
      </section>
      <section anchor="implementation-considerations">
        <name>Implementation Considerations</name>
        <t>The model is designed to support partial implementations. Not all systems need to implement every container or feature. The use of presence containers throughout the model allows implementations to signal which parts of the model they support. An implementation that does not populate a presence container indicates that it cannot report that information.</t>
        <t>The following progression describes how implementations can adopt the model incrementally, from basic entitlement tracking to full capability and restriction reporting:</t>
        <section anchor="level-1-centralized-entitlement-inventory">
          <name>Level 1: Centralized Entitlement Inventory</name>
          <t>The minimal implementation populates the top-level <tt>entitlements</tt> container under <tt>network-inventory</tt>. This provides a centralized catalog of all entitlements owned or managed by the organization, including their identifiers, vendors, states, and validity periods.</t>
          <t>At this level, the system answers: What entitlements does the organization have?</t>
        </section>
        <section anchor="level-2-installed-entitlements-on-assets">
          <name>Level 2: Installed Entitlements on Assets</name>
          <t>Building on Level 1, implementations can populate the <tt>installed-entitlements</tt> container on network elements and/or components. This tracks which entitlements are currently active and entitling each network asset, by referencing the centralized entitlement catalog.</t>
          <t>At this level, the system additionally answers: Which entitlements are actively entitling which assets?</t>
        </section>
        <section anchor="level-3-capabilities-reporting">
          <name>Level 3: Capabilities Reporting</name>
          <t>Implementations that can report device capabilities populate the <tt>capabilities</tt> container on network elements and/or components. This lists what functions each asset can perform, organized by capability class.</t>
          <t>At this level, the system additionally answers: What can each asset do?</t>
        </section>
        <section anchor="level-4-capability-entitlement-linkage">
          <name>Level 4: Capability-Entitlement Linkage</name>
          <t>Advanced implementations populate the <tt>supporting-entitlements</tt> container within each capability. This links capabilities to the installed entitlements that enable them, along with the <tt>entitlement-state</tt> container indicating whether each capability is allowed and in use.</t>
          <t>When a capability lists multiple supporting entitlements, the <tt>entitlement-state/allowed</tt> field <bcp14>MUST</bcp14> reflect the combined effect of all required entitlements. If any required entitlement is missing, expired, or revoked, <tt>allowed</tt> should be false. The <tt>in-use</tt> field indicates whether the capability is currently operational.</t>
          <t>At this level, the system additionally answers: Which entitlements enable which capabilities? What is allowed and what is in use?</t>
        </section>
        <section anchor="level-5-restrictions-reporting">
          <name>Level 5: Restrictions Reporting</name>
          <t>Full implementations populate restriction information at two levels:</t>
          <ul spacing="normal">
            <li>
              <t>The <tt>restrictions</tt> container under each entitlement for global restrictions (e.g., total allowed installations, aggregate usage limits)</t>
            </li>
            <li>
              <t>The <tt>capability-restrictions</tt> container within each capability for capability-specific limits (e.g., maximum throughput, connection limits)</t>
            </li>
          </ul>
          <t>At this level, the system additionally answers: What constraints apply to entitlements and capabilities? What are the current usage levels?</t>
          <t>Implementations <bcp14>SHOULD</bcp14> document which levels they support and any deviations from this progression.</t>
        </section>
      </section>
      <section anchor="model-definition">
        <name>Model Definition</name>
        <artwork><![CDATA[
module ietf-entitlement-inventory {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-entitlement-inventory";
  prefix ei;

  import ietf-yang-types {
    prefix yang;
  }
  import ietf-network-inventory {
    prefix inv;
  }

  organization
    "IETF IVY Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/ivy/>
     WG List:  <mailto:inventory-yang@ietf.org>

     Author:  Marisol Palmero

     Author:  Camilo Cardona

     Author:  Diego Lopez

     Author:  Italo Busi
    ";
  description
    "A YANG module for Entitlement Inventory, as per
     draft-ietf-ivy-entitlement-inventory-01.

     Copyright (c) 2025 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.

     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 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.
    ";

  revision 2026-05-25 {
    description
      "updated draft version
       draft-ietf-ivy-entitlement-inventory";
    reference
      "draft-ietf-ivy-entitlement-inventory-02";
  }
  revision 2025-10-20 {
    description
      "First full draft version for
       draft-ietf-ivy-entitlement-inventory";
    reference
      "draft-ietf-ivy-entitlement-inventory-01";
  }

  identity capability-class {
    description
      "Base identity for capability classes.";
  }

  identity basic-capability-description {
    base capability-class;
    description
      "Basic capability class for general capability descriptions.";
  }

  typedef entitlement-state-t {
    type enumeration {
      enum active {
        description
          "Entitlement is active.";
      }
      enum expired {
        description
          "Entitlement is expired.";
      }
      enum pending {
        description
          "Entitlement is pending activation.";
      }
      enum revoked {
        description
          "Entitlement is revoked.";
      }
    }
    description
      "State of the entitlement.";
  }

  grouping restriction-fields {
    description
      "Common fields for describing restrictions or limits.
       Used both for capability-level restrictions and
       entitlement-level global restrictions.";
    leaf description {
      type string;
      description
        "Human-readable description of the restriction.";
    }
    leaf resource-name {
      type string;
      description
        "Optional name of the physical or network resource
         being restricted (e.g., 'bandwidth', 'throughput',
         'storage', 'memory').";
    }
    leaf units {
      type string;
      description
        "Units for the restriction values (e.g., 'Mbps',
         'connections', 'tunnels').";
    }
    leaf max-value {
      type uint32;
      description
        "Maximum permitted value for this restriction.";
    }
    leaf current-value {
      type uint32;
      description
        "Current usage or consumption of this restricted
         resource at query time.";
    }
  }

  grouping installed-entitlements-group {
    description
      "Grouping for installed entitlements that can be applied to
       network elements or components (generally called asset
       over this document).";
    container installed-entitlements {
      presence
        "The presence of this container means the information system
         that exposes this model knows of the installed entitlements
         of the asset that it populates.
         An empty list of entitlements would then mean
         that no entitlement is installed in this asset.";
      config false;
      description
        "Entitlements currently active and entitling this asset.";
      list entitlement {
        key "entitlement-id";
        description
          "List of entitlements actively entitling this asset.
           Each entitlement references a global listed entitlement.";
        leaf entitlement-id {
          type leafref {
            path "/inv:network-inventory/ei:entitlements"
               + "/ei:entitlement/ei:entitlement-id";
          }
          description
            "Reference to centralized entitlement.";
        }
        leaf in-use {
          type boolean;
          description
            "Informs whether the entitlement is actively used,
             besides being installed. If existing, and if the
             capabilities list exist and the information system
             supports setting their entitlement-state, this
             information MUST be consistent with it. Meaning, this
             should be in-use if any capability it supports is
             in-use, or false otherwise.  The no presence of this
             leaf means that the information system cannot express
             this information";
        }
      }
    }
  }

  grouping capabilities-group {
    description
      "Grouping for capabilities that can be applied to assets.
       Capabilities represent what the
       asset can do, potentially restricted by entitlements.";
    container capabilities {
      presence
        "The presence of this container means the information system
         that exposes this model is aware of and can report the
         capabilities of this asset
         (i.e. network element or component).
         An empty list of capability classes would mean that the
         element has no capabilities configured or available.";
      config false;
      description
        "Container for capabilities of this asset.";
      list capability-class {
        key "capability-class";
        description
          "List of capability classes supported by this asset. Each
           class groups related capabilities.";
        leaf capability-class {
          type identityref {
            base capability-class;
          }
          description
            "Identifier for the capability class using an identity
             reference.";
        }
        list capability {
          key "capability-id";
          description
            "Individual capability within this class. Represents a
             specific function or feature that the element may
             perform.";
          leaf capability-id {
            type string;
            description
              "Unique identifier for this capability.";
          }
          leaf extended-capability-description {
            type string;
            description
              "Extended capability description.";
          }
          container entitlement-state {
            presence
              "The presence of this container indicates the system
               can report whether this capability is allowed and/or
               in use based on entitlement status.";
            description
              "Reports whether this capability is permitted by
               entitlements and whether it is currently in active
               use.";
            leaf allowed {
              type boolean;
              description
                "Whether the capability is allowed by entitlements.";
            }
            leaf in-use {
              type boolean;
              description
                "Whether the capability is currently in use.";
            }
          }
          container supporting-entitlements {
            presence
              "The presence of this container indicates the system
               can report the entitlement(s) supporting
               the use of this capability by the asset to its
               current allowed state. this container
               should not exist if the system cannot report this.
               An empty list of supporting-entitlement means
               the capability requires no special
               entitlement to be provided.";
            description
              "List of installed entitlements that
               enable or support this capability.";
            list supporting-entitlement {
              key "entitlement-id";
              description
                "List of installed entitlements
                 that enable or support this capability. The
                 capability may require one or more
                 entitlements to be allowed and in use.";
              leaf entitlement-id {
                type leafref {
                  path "../../../../../../installed-entitlements"
                     + "/entitlement/entitlement-id";
                }
                description
                  "Reference to an installed entitlement
                   supporting this capability.";
              }
            }
          }
          container capability-restrictions {
            presence
              "The presence of this container indicates that the
               system can report the current capability restrictions.
               If present, an empty list of
               capability-restriction means the capability
               has no restriction.";
            description
              "Restrictions or limits imposed on this capability by
               entitlements.";
            list capability-restriction {
              key "restriction-id";
              description
                "Restrictions or limits imposed on this capability by
                 entitlements.";
              leaf restriction-id {
                type string;
                description
                  "Unique identifier for this
                   capability restriction.";
              }
              uses restriction-fields;
            }
          }
        }
      }
    }
  }

  augment "/inv:network-inventory/inv:network-elements"
        + "/inv:network-element" {
    description
      "Augments network elements with installed entitlements tracking
       which entitlements are currently active and entitling the
       device.";
    uses installed-entitlements-group;
  }

  augment "/inv:network-inventory/inv:network-elements"
        + "/inv:network-element/inv:components/inv:component" {
    description
      "Augments network element components with installed
       entitlements for component-level tracking.";
    uses installed-entitlements-group;
  }

  augment "/inv:network-inventory/inv:network-elements"
        + "/inv:network-element" {
    description
      "Augments network elements with capabilities information,
       describing what functions the element can perform and their
       entitlement status.";
    uses capabilities-group;
  }

  augment "/inv:network-inventory/inv:network-elements"
        + "/inv:network-element/inv:components/inv:component" {
    description
      "Augments network element components with capabilities for
       component-level feature tracking and entitlement
       restrictions.";
    uses capabilities-group;
  }

  augment "/inv:network-inventory" {
    description
      "Augments the network inventory with a centralized entitlements
       catalog.  This provides organization-wide visibility of all
       acquired entitlements, their holders, validity periods, and
       asset associations.";
    container entitlements {
      presence
        "The presence of this container indicates the system
         maintains and can report the organizational entitlement
         catalog. An empty list means the organization has no
         entitlements defined.";
      config false;
      description
        "Top-level container for organizational entitlements.";
      list entitlement {
        key "entitlement-id";
        description
          "List of entitlements owned or managed by the organization.
           Each entitlement represents a license, right, or
           permission to use specific capabilities, potentially with
           restrictions on scope, time, or usage.";
        leaf entitlement-id {
          type string;
          description
            "Unique entitlement identifier.";
        }
        leaf product-id {
          type string;
          description
            "Product identifier for this entitlement.";
        }
        leaf sku {
          type string;
          description
            "Stock Keeping Unit - vendor's catalog/ordering number
             for this entitlement. Used for procurement and asset
             management integration.";
        }
        leaf vendor {
          type string;
          description
            "Vendor or issuer of this entitlement. Identifies the
             license provider.";
        }
        leaf part-number {
          type string;
          description
            "Manufacturer's part number. May differ from SKU in
             distribution channels.";
        }
        leaf state {
          type entitlement-state-t;
          description
            "Current state of the entitlement.";
        }
        container renewal-profile {
          description
            "Renewal and validity information for the entitlement.";
          leaf activation-date {
            type yang:date-and-time;
            description
              "Date when entitlement was activated.";
          }
          leaf start-date {
            type yang:date-and-time;
            description
              "Start date of entitlement validity.";
          }
          leaf expiration-date {
            type yang:date-and-time;
            description
              "Expiration date of the entitlement.";
          }
        }
        container restrictions {
          presence
            "The presence of this container means the
             system can provide information of global restrictions
             for this entitlement. An empty list will then
             mean that the entitlement has no global restriction.";
          description
            "Global restrictions imposed by this entitlement.";
          list restriction {
            key "restriction-id";
            description
              "List of restrictions that apply globally to this
               entitlement across all assets and holders. These may
               include usage limits, quotas, or other constraints on
               how the entitlement can be utilized.";
            leaf restriction-id {
              type string;
              description
                "Unique restriction identifier.";
            }
            uses restriction-fields;
          }
        }
        leaf parent-entitlement-uid {
          type leafref {
            path "../../entitlement/entitlement-id";
          }
          must '. != ../entitlement-id' {
            error-message
              "An entitlement cannot reference itself as its
               parent.";
          }
          description
            "Reference to parent entitlement if this is derived or
             child entitlement (e.g., an upgrade add-on referencing
             its base license). Implementations MUST NOT create
             circular references among entitlements. Although this
             constraint cannot be fully enforced via YANG 'must'
             statements due to XPath 1.0 limitations, management
             systems SHOULD validate the full entitlement hierarchy
             for cycles before committing changes.";
        }
        container entitlement-attachment {
          description
            "Defines how the entitlement is attached to holders and
             assets.";
          leaf universal-access {
            type boolean;
            description
              "True if entitlement has universal access.";
          }
          container holders {
            description
              "Holders of this entitlement.
               This is for information purposes only, it
               does not apply any restrictions on who can
               use or not the asset where assigned
               to the entitlement.";
            container organizations-names {
              description
                "Organization holders.";
              leaf-list organizations {
                type string;
                description
                  "List of organization names.";
              }
            }
            container users-names {
              description
                "User holders.";
              leaf-list users {
                type string;
                description
                  "List of user names.";
              }
            }
          }
          container assets {
            description
              "Assets to which this entitlement is attached.";
            container elements {
              description
                "Network elements covered by this entitlement.";
              leaf-list network-elements {
                type leafref {
                  path "/inv:network-inventory"
                     + "/inv:network-elements/inv:network-element"
                     + "/inv:ne-id";
                }
                description
                  "References to network elements covered by this
                   entitlement.  When specified, this entitlement
                   applies to the listed network elements.";
              }
            }
            container components {
              description
                "Individual components covered by this entitlement.";
              list component {
                key "network-element component-id";
                description
                  "List of specific components to which this
                   entitlement applies.  Allows fine-grained
                   entitlement assignment at the component level
                   rather than entire network elements.";
                leaf network-element {
                  type leafref {
                    path "/inv:network-inventory"
                       + "/inv:network-elements"
                       + "/inv:network-element/inv:ne-id";
                  }
                  description
                    "Reference to network element.";
                }
                leaf component-id {
                  type leafref {
                    path "/inv:network-inventory"
                       + "/inv:network-elements"
                       + "/inv:network-element"
                       + "[inv:ne-id=current()/../network-element]"
                       + "/inv:components/"
                       + "inv:component/inv:component-id";
                  }
                  description
                    "Reference to component within the specified
                     network element.";
                }
              }
            }
          }
        }
      }
    }
  }
}
]]></artwork>
        <section anchor="model-tree">
          <name>Model tree</name>
          <artwork><![CDATA[
module: ietf-entitlement-inventory

  augment /inv:network-inventory/inv:network-elements/inv:network-element:
    +--ro installed-entitlements!
       +--ro entitlement* [entitlement-id]
          +--ro entitlement-id    -> /inv:network-inventory/ei:entitlements/entitlement/entitlement-id
          +--ro in-use?           boolean
  augment /inv:network-inventory/inv:network-elements/inv:network-element/inv:components/inv:component:
    +--ro installed-entitlements!
       +--ro entitlement* [entitlement-id]
          +--ro entitlement-id    -> /inv:network-inventory/ei:entitlements/entitlement/entitlement-id
          +--ro in-use?           boolean
  augment /inv:network-inventory/inv:network-elements/inv:network-element:
    +--ro capabilities!
       +--ro capability-class* [capability-class]
          +--ro capability-class    identityref
          +--ro capability* [capability-id]
             +--ro capability-id                      string
             +--ro extended-capability-description?   string
             +--ro entitlement-state!
             |  +--ro allowed?   boolean
             |  +--ro in-use?    boolean
             +--ro supporting-entitlements!
             |  +--ro supporting-entitlement* [entitlement-id]
             |     +--ro entitlement-id    -> ../../../../../../installed-entitlements/entitlement/entitlement-id
             +--ro capability-restrictions!
                +--ro capability-restriction* [restriction-id]
                   +--ro restriction-id    string
                   +--ro description?      string
                   +--ro resource-name?    string
                   +--ro units?            string
                   +--ro max-value?        uint32
                   +--ro current-value?    uint32
  augment /inv:network-inventory/inv:network-elements/inv:network-element/inv:components/inv:component:
    +--ro capabilities!
       +--ro capability-class* [capability-class]
          +--ro capability-class    identityref
          +--ro capability* [capability-id]
             +--ro capability-id                      string
             +--ro extended-capability-description?   string
             +--ro entitlement-state!
             |  +--ro allowed?   boolean
             |  +--ro in-use?    boolean
             +--ro supporting-entitlements!
             |  +--ro supporting-entitlement* [entitlement-id]
             |     +--ro entitlement-id    -> ../../../../../../installed-entitlements/entitlement/entitlement-id
             +--ro capability-restrictions!
                +--ro capability-restriction* [restriction-id]
                   +--ro restriction-id    string
                   +--ro description?      string
                   +--ro resource-name?    string
                   +--ro units?            string
                   +--ro max-value?        uint32
                   +--ro current-value?    uint32
  augment /inv:network-inventory:
    +--ro entitlements!
       +--ro entitlement* [entitlement-id]
          +--ro entitlement-id            string
          +--ro product-id?               string
          +--ro sku?                      string
          +--ro vendor?                   string
          +--ro part-number?              string
          +--ro state?                    entitlement-state-t
          +--ro renewal-profile
          |  +--ro activation-date?   yang:date-and-time
          |  +--ro start-date?        yang:date-and-time
          |  +--ro expiration-date?   yang:date-and-time
          +--ro restrictions!
          |  +--ro restriction* [restriction-id]
          |     +--ro restriction-id    string
          |     +--ro description?      string
          |     +--ro resource-name?    string
          |     +--ro units?            string
          |     +--ro max-value?        uint32
          |     +--ro current-value?    uint32
          +--ro parent-entitlement-uid?   -> ../../entitlement/entitlement-id
          +--ro entitlement-attachment
             +--ro universal-access?   boolean
             +--ro holders
             |  +--ro organizations-names
             |  |  +--ro organizations*   string
             |  +--ro users-names
             |     +--ro users*   string
             +--ro assets
                +--ro elements
                |  +--ro network-elements*   -> /inv:network-inventory/network-elements/network-element/ne-id
                +--ro components
                   +--ro component* [network-element component-id]
                      +--ro network-element    -> /inv:network-inventory/network-elements/network-element/ne-id
                      +--ro component-id       -> /inv:network-inventory/network-elements/network-element[inv:ne-id=current()/../network-element]/components/component/component-id
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="implementation-examples-and-validation-scenarios">
      <name>Implementation Examples and Validation Scenarios</name>
      <t>This section provides a progressive, from basic to advanced, series of validated JSON examples demonstrating practical implementation patterns for the entitlement inventory model. The examples are organized from simple to more complex, enabling implementers to:</t>
      <ol spacing="normal" type="1"><li>
          <t>Understand core concepts through minimal working examples.</t>
        </li>
        <li>
          <t>Explore operational scenarios.</t>
        </li>
        <li>
          <t>Identify implementation patterns for common use cases.</t>
        </li>
        <li>
          <t>Validate their own implementations against canonical examples.</t>
        </li>
      </ol>
      <t>Each example:
- Addresses specific operational questions
- Builds upon concepts introduced in previous examples
- Includes contextual explanation of design choices
- Provides JSON that validates against the ietf-entitlement-inventory YANG module.</t>
      <t>In order to use the examples:
- Start with Basic Structure Example to understand fundamental relationships
- Progress through examples based on your deployment scenario
- Refer to the YANG module trees introduced in the draft, for complete model structure</t>
      <section anchor="overview-of-examples">
        <name>Overview of Examples</name>
        <t>The following table summarizes the examples provided in this section and the primary concepts each demonstrates:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Example</th>
              <th align="left">Title</th>
              <th align="left">Complexity</th>
              <th align="left">Key Concepts</th>
              <th align="left">Operational Question Addressed</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">Basic Structure</td>
              <td align="left">Simple</td>
              <td align="left">Fundamental relationships, entitlement states</td>
              <td align="left">What are the core components of the model?</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">Expired License Handling</td>
              <td align="left">Simple</td>
              <td align="left">Lifecycle management, state transitions</td>
              <td align="left">How does the model handle expired entitlements?</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">Utilization Tracking</td>
              <td align="left">Moderate</td>
              <td align="left">Restrictions, usage monitoring</td>
              <td align="left">What constraints apply and how to track usage?</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">Hierarchical Entitlements</td>
              <td align="left">Moderate</td>
              <td align="left">Parent-child relationships, tiered licensing</td>
              <td align="left">How to model license upgrades and dependencies?</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">License Pooling</td>
              <td align="left">Advanced</td>
              <td align="left">Shared entitlements, multi-device allocation</td>
              <td align="left">How to manage pooled licenses across devices?</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">Multi-Vendor Environment</td>
              <td align="left">Advanced</td>
              <td align="left">Heterogeneous networks, vendor diversity</td>
              <td align="left">How to unify entitlements across vendors?</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">Component-Level Entitlements</td>
              <td align="left">Advanced</td>
              <td align="left">Modular devices, granular licensing</td>
              <td align="left">How to track entitlements for device components?</td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">Capability Class Extension</td>
              <td align="left">Expert</td>
              <td align="left">Extensibility, external references</td>
              <td align="left">How to integrate custom capability models?</td>
            </tr>
          </tbody>
        </table>
        <t><strong>Legend:</strong>
-  Simple: Foundational concepts, minimal complexity
-  Moderate: Multi-component scenarios, intermediate concepts
-  Advanced: Complex deployments, advanced patterns
-  Expert: Extensibility and customization</t>
      </section>
      <section anchor="basic-structure">
        <name>Basic Structure</name>
        <section anchor="scenario">
          <name>Scenario</name>
          <t>A network operator has purchased a single routing license for a router. The license enables basic routing capabilities. This represents the simplest possible deployment: one device, one entitlement, one capability.</t>
        </section>
        <section anchor="operational-context">
          <name>Operational Context</name>
          <t>This example answers the fundamental questions:
- What entitlements does the organization own?
- Which device is this entitlement installed on?
- What capability does this entitlement enable?
- Is the capability currently allowed and in-use? This is based on the entitlement-state field.</t>
        </section>
        <section anchor="json-example">
          <name>JSON Example</name>
          <artwork><![CDATA[
{
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
      "network-element": [
        {
          "ne-id": "router-1",
          "components": {
            "component": [
              {
                "component-id": "chassis-router-1",
                "class": "iana-hardware:chassis"
              }
            ]
          },
          "ietf-entitlement-inventory:installed-entitlements": {
            "entitlement": [
              {
                "entitlement-id": "ent-1"
              }
            ]
          },
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "basic-capability-description",
                "capability": [
                  {
                    "capability-id": "generic-routing-functions",
                    "extended-capability-description": "Basic routing capabilities",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                "supporting-entitlements": {
                    "supporting-entitlement": [
                      {
                        "entitlement-id": "ent-1"
                      }
                    ]
            }
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    "ietf-entitlement-inventory:entitlements": {
          "entitlement": [
            {
              "entitlement-id": "ent-1",
              "product-id": "prod-1",
              "state": "active",
              "renewal-profile": {
                "activation-date": "2025-01-01T00:00:00Z",
                "expiration-date": "2026-01-01T00:00:00Z"
              },
              "entitlement-attachment": {
                "universal-access": false,
                "holders": {
                  "organizations-names": {
                    "organizations": ["org-1"]
                  }
                },
                "assets": {
                "elements": {
                  "network-elements": ["router-1"]
                }
              }
              }
            }
          ]
        }
  }
}
]]></artwork>
        </section>
      </section>
      <section anchor="expired-license-handling">
        <name>Expired License Handling</name>
        <section anchor="scenario-1">
          <name>Scenario</name>
          <t>The basic structure example showed a healthy state where an active entitlement enables a capability.  However, entitlements have lifecycles, they can expire, be revoked, or become inactive. This example demonstrates how the model represents these state transitions and their impact on capabilities.</t>
          <t>This example demonstrates how the model handles entitlement lifecycle states. An expired security entitlement results in capabilities being disallowed (allowed: false), while an active routing entitlement keeps its capabilities enabled. The installed-entitlements list shows in-use status reflecting actual capability usage.</t>
        </section>
        <section anchor="operational-context-1">
          <name>Operational Context</name>
          <t>Based on the state comparison: Active vs Expired, there is an operational impact with the corresponding risk analysis.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Aspect</th>
                <th align="left">Impact</th>
                <th align="left">Remediation</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <strong>Security capabilities</strong></td>
                <td align="left">Disabled, features stopped</td>
                <td align="left">Renew ent-sec-001 or purchase new license</td>
              </tr>
              <tr>
                <td align="left">
                  <strong>Routing capabilities</strong></td>
                <td align="left">Unaffected, continue operating</td>
                <td align="left">Monitor expiration date (2025-06-30)</td>
              </tr>
              <tr>
                <td align="left">
                  <strong>Device operation</strong></td>
                <td align="left">Continues with reduced functionality</td>
                <td align="left">Plan renewal before 2025-06-30</td>
              </tr>
              <tr>
                <td align="left">
                  <strong>Compliance risk</strong></td>
                <td align="left">Potential breach if security required</td>
                <td align="left">Immediate action if security is mandatory</td>
              </tr>
            </tbody>
          </table>
          <t>Implementation considerations should consider:
- Do not delete the entitlement record (preserve for audit)
- Do not immediately remove installed-entitlement (keep for renewal)
- Do not affect unrelated entitlements on the same device</t>
        </section>
        <section anchor="json-example-1">
          <name>JSON Example</name>
          <artwork><![CDATA[
{
  "ietf-network-inventory:network-inventory": {
    "ietf-entitlement-inventory:entitlements": {
      "entitlement": [
        {
          "entitlement-id": "security-features",
          "product-id": "SEC-ADVANCED-1Y",
          "state": "expired",
          "renewal-profile": {
            "start-date": "2023-10-01T00:00:00Z",
            "activation-date": "2023-10-01T00:00:00Z",
            "expiration-date": "2024-10-01T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": ["org-1"]
              }
            },
            "assets": {
              "elements": {
                "network-elements": ["edge-router-12"]
              }
            }
          }
        },
        {
          "entitlement-id": "basic-routing-active",
          "product-id": "ROUTING-BASE-3Y",
          "state": "active",
          "renewal-profile": {
            "start-date": "2024-01-01T00:00:00Z",
            "activation-date": "2024-01-01T00:00:00Z",
            "expiration-date": "2027-01-01T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": ["org-1"]
              }
            },
            "assets": {
              "elements": {
                "network-elements": ["edge-router-12"]
              }
            }
          }
        }
      ]
    },
    "network-elements": {
      "network-element": [
        {
        "ne-id": "edge-router-12",
        "components": {
          "component": [
            {
              "component-id": "main-chassis",
              "class": "iana-hardware:chassis"
            }
          ]
        },
        "ietf-entitlement-inventory:installed-entitlements": {
          "entitlement": [
            {
              "entitlement-id": "security-features",
              "in-use": false
            },
            {
              "entitlement-id": "basic-routing-active",
              "in-use": true
            }
          ]
        },
        "ietf-entitlement-inventory:capabilities": {
          "capability-class": [
            {
              "capability-class": "basic-capability-description",
              "capability": [
                {
                  "capability-id": "stateful-firewall",
                  "extended-capability-description": "Stateful firewall",
                  "entitlement-state": {
                    "allowed": false,
                    "in-use": false
                  },
                  "supporting-entitlements": {
                  "supporting-entitlement": [
                    {
                      "entitlement-id": "security-features"
                    }
                  ]
                  },
                  "capability-restrictions": {
                  "capability-restriction": [
                    {
                      "restriction-id": "firewall-sessions",
                      "description": "Maximum concurrent firewall sessions",
                      "resource-name": "sessions",
                      "units": "connections",
                      "max-value": 50000,
                      "current-value": 0
                    }
                  ]
                }
                },
                {
                  "capability-id": "ipsec-vpn",
                  "extended-capability-description": "IPSec VPN tunnels",
                  "entitlement-state": {
                    "allowed": false,
                    "in-use": false
                  },
                  "supporting-entitlements": {
                  "supporting-entitlement": [
                    {
                      "entitlement-id": "security-features"
                    }
                  ]
                  },
                  "capability-restrictions": {
                  "capability-restriction": [
                    {
                      "restriction-id": "vpn-tunnels",
                      "description": "Maximum VPN tunnels",
                      "resource-name": "tunnels",
                      "units": "tunnels",
                      "max-value": 100,
                      "current-value": 0
                    }
                  ]
                  }
                },
                {
                  "capability-id": "ospf-routing",
                  "extended-capability-description": "OSPF",
                  "entitlement-state": {
                    "allowed": true,
                    "in-use": true
                  },
                  "supporting-entitlements": {
                  "supporting-entitlement": [
                    {
                      "entitlement-id": "basic-routing-active"
                    }
                  ]
                  },
                  "capability-restrictions": {
                  "capability-restriction": [
                    {
                      "restriction-id": "ospf-neighbors",
                      "description": "Maximum OSPF neighbor adjacencies, just to give an example :)",
                      "resource-name": "neighbors",
                      "units": "adjacencies",
                      "max-value": 50,
                      "current-value": 8
                    }
                  ]
                  }
                }
              ]
            }
          ]
        }
      }
      ]
    }
  }
}
]]></artwork>
        </section>
      </section>
      <section anchor="utilization-tracking-with-restrictions">
        <name>Utilization Tracking with Restrictions</name>
        <section anchor="scenario-2">
          <name>Scenario</name>
          <t>This example shows comprehensive utilization tracking across multiple capabilities. Each capability includes capability-restrictions with current-value and max-value fields, enabling organizations to monitor resource consumption against licensed limits. This addresses the question: "What constraints apply and what are current usage levels?"</t>
        </section>
        <section anchor="operational-context-2">
          <name>Operational Context</name>
        </section>
        <section anchor="json-example-2">
          <name>JSON Example</name>
          <artwork><![CDATA[
{
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
    "network-element": [
      {
        "ne-id": "enterprise-router-5",
        "components": {
          "component": [
            {
              "component-id": "main-chassis",
              "class": "iana-hardware:chassis"
            }
          ]
        },
        "ietf-entitlement-inventory:installed-entitlements": {
          "entitlement": [
            {
              "entitlement-id": "security-suite-ent",
              "in-use": true
            },
            {
              "entitlement-id": "advanced-routing-ent",
              "in-use": true
            },
            {
              "entitlement-id": "voice-gateway-ent",
              "in-use": false
            }
          ]
        },
        "ietf-entitlement-inventory:capabilities": {
          "capability-class": [
            {
              "capability-class": "basic-capability-description",
              "capability": [
                {
                  "capability-id": "firewall",
                  "extended-capability-description": "firewall",
                  "entitlement-state": {
                    "allowed": true,
                    "in-use": true
                  },
                  "supporting-entitlements": {
                    "supporting-entitlement": [
                      {
                        "entitlement-id": "security-suite-ent"
                      }
                    ]
                  },
                  "capability-restrictions": {
                    "capability-restriction": [
                      {
                        "restriction-id": "concurrent-sessions",
                      "description": "Maximum concurrent firewall sessions",
                      "resource-name": "sessions",
                      "units": "connections",
                        "max-value": 100000,
                        "current-value": 45000
                      }
                    ]
                  }
                },
                {
                  "capability-id": "vpn",
                  "extended-capability-description": "IPSec VPN tunnels",
                  "entitlement-state": {
                    "allowed": true,
                    "in-use": true
                  },
                  "supporting-entitlements": {
                    "supporting-entitlement": [
                      {
                        "entitlement-id": "security-suite-ent"
                      }
                    ]
                  },
                  "capability-restrictions": {
                    "capability-restriction": [
                      {
                        "restriction-id": "tunnel-count",
                      "description": "Maximum VPN tunnels",
                      "resource-name": "tunnels",
                      "units": "count",
                        "max-value": 500,
                        "current-value": 120
                      }
                    ]
                  }
                },
                {
                  "capability-id": "bgp-advanced",
                  "extended-capability-description": "Advanced BGP features including route reflector",
                  "entitlement-state": {
                    "allowed": true,
                    "in-use": true
                  },
                  "supporting-entitlements": {
                    "supporting-entitlement": [
                      {
                        "entitlement-id": "advanced-routing-ent"
                      }
                    ]
                  },
                  "capability-restrictions": {
                    "capability-restriction": [
                      {
                        "restriction-id": "bgp-peers",
                      "description": "Maximum BGP peer sessions",
                      "resource-name": "peers",
                      "units": "sessions",
                        "max-value": 200,
                        "current-value": 75
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      }
    ]
    },
    "ietf-entitlement-inventory:entitlements": {
      "entitlement": [
        {
          "entitlement-id": "security-suite-ent",
          "product-id": "SEC-SUITE-ENTERPRISE-001",
          "state": "active",
          "renewal-profile": {
            "start-date": "2024-06-01T00:00:00Z",
            "activation-date": "2024-06-15T00:00:00Z",
            "expiration-date": "2025-06-15T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": ["Enterprise Corp"]
              }
            },
            "assets": {
              "elements": {
                "network-elements": ["enterprise-router-5"]
              }
            }
          }
        },
        {
          "entitlement-id": "advanced-routing-ent",
          "product-id": "ROUTING-ADVANCED-001",
          "state": "active",
          "renewal-profile": {
            "start-date": "2024-06-01T00:00:00Z",
            "activation-date": "2024-06-15T00:00:00Z",
            "expiration-date": "2025-06-15T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": ["Enterprise Corp"]
              }
            },
            "assets": {
              "elements": {
                "network-elements": ["enterprise-router-5"]
              }
            }
          }
        },
        {
          "entitlement-id": "voice-gateway-ent",
          "product-id": "VOICE-GW-PREMIUM-001",
          "state": "active",
          "renewal-profile": {
            "start-date": "2024-12-01T00:00:00Z",
            "activation-date": "2024-12-15T00:00:00Z",
            "expiration-date": "2025-12-15T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": ["Enterprise Corp"]
              },
              "users-names": {
                "users": ["telecom-admin"]
              }
            },
            "assets": {
              "elements": {
                "network-elements": ["enterprise-router-5"]
              }
            }
          },
          "restrictions": {
            "restriction": [
              {
                "restriction-id": "voice-channels",
                "description": "Maximum concurrent voice channels",
                "units": "channels",
                "max-value": 100,
                "current-value": 0
              }
            ]
          }
        }
      ]
    }
  }
}
]]></artwork>
        </section>
      </section>
      <section anchor="hierarchical-entitlements">
        <name>Hierarchical Entitlements</name>
        <section anchor="scenario-3">
          <name>Scenario</name>
          <t>This example demonstrates the parent-entitlement-uid mechanism for modeling entitlement hierarchies. A base "bronze" entitlement provides foundational capabilities, while a "silver" upgrade entitlement (referencing the bronze as parent) adds advanced features. This pattern supports tiered licensing models.</t>
        </section>
        <section anchor="json-example-3">
          <name>JSON Example</name>
          <artwork><![CDATA[
{
  "ietf-network-inventory:network-inventory": {
    "ietf-entitlement-inventory:entitlements": {
      "entitlement": [
        {
          "entitlement-id": "bronze-routing-base",
          "product-id": "ROUTER-BRONZE-BASE",
          "state": "active",
          "renewal-profile": {
            "start-date": "2024-01-01T00:00:00Z",
            "activation-date": "2024-01-15T00:00:00Z",
            "expiration-date": "2027-01-15T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "Enterprise Networks"
                ]
              }
            },
            "assets": {
              "elements": {
                "network-elements": [
                  "branch-router-1",
                  "branch-router-2"
                ]
              }
            }
          }
        },
        {
          "entitlement-id": "silver-routing-upgrade",
          "product-id": "ROUTER-SILVER-UPGRADE",
          "parent-entitlement-uid": "bronze-routing-base",
          "state": "active",
          "renewal-profile": {
            "start-date": "2025-06-01T00:00:00Z",
            "activation-date": "2025-06-15T00:00:00Z",
            "expiration-date": "2027-01-15T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "Enterprise Networks"
                ]
              }
            },
            "assets": {
              "elements": {
                "network-elements": [
                  "branch-router-2"
                ]
              }
            }
          }
        }
      ]
    },
    "network-elements": {
      "network-element": [
        {
          "ne-id": "branch-router-1",
          "components": {
            "component": [
              {
                "component-id": "main-unit",
                "class": "iana-hardware:chassis"
              }
            ]
          },
          "ietf-entitlement-inventory:installed-entitlements": {
            "entitlement": [
              {
                "entitlement-id": "bronze-routing-base",
                "in-use": true
              }
            ]
          },
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "basic-capability-description",
                "capability": [
                  {
                    "capability-id": "ospf-routing",
                    "extended-capability-description": "OSPF dynamic routing protocol",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "bronze-routing-base"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "ospf-areas",
                          "description": "Maximum OSPF areas",
                          "resource-name": "routing-areas",
                          "units": "areas",
                          "max-value": 10,
                          "current-value": 3
                        }
                      ]
                    }
                  },
                  {
                    "capability-id": "static-routing",
                    "extended-capability-description": "Static route configuration",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "bronze-routing-base"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "static-routes",
                          "description": "Maximum static routes",
                          "resource-name": "routes",
                          "units": "routes",
                          "max-value": 500,
                          "current-value": 127
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        },
        {
          "ne-id": "branch-router-2",
          "components": {
            "component": [
              {
                "component-id": "main-unit",
                "class": "iana-hardware:chassis"
              }
            ]
          },
          "ietf-entitlement-inventory:installed-entitlements": {
            "entitlement": [
              {
                "entitlement-id": "bronze-routing-base",
                "in-use": true
              },
              {
                "entitlement-id": "silver-routing-upgrade",
                "in-use": true
              }
            ]
          },
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "basic-capability-description",
                "capability": [
                  {
                    "capability-id": "ospf-routing",
                    "extended-capability-description": "OSPF dynamic routing protocol",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "bronze-routing-base"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "ospf-areas",
                          "description": "Maximum OSPF areas",
                          "resource-name": "routing-areas",
                          "units": "areas",
                          "max-value": 10,
                          "current-value": 5
                        }
                      ]
                    }
                  },
                  {
                    "capability-id": "static-routing",
                    "extended-capability-description": "Static route configuration",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "bronze-routing-base"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "static-routes",
                          "description": "Maximum static routes",
                          "resource-name": "routes",
                          "units": "routes",
                          "max-value": 500,
                          "current-value": 89
                        }
                      ]
                    }
                  },
                  {
                    "capability-id": "bgp-routing",
                    "extended-capability-description": "BGP routing protocol with route policies",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "bronze-routing-base"
                        },
                        {
                          "entitlement-id": "silver-routing-upgrade"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "bgp-peers",
                          "description": "Maximum BGP peer sessions",
                          "resource-name": "bgp-sessions",
                          "units": "peers",
                          "max-value": 100,
                          "current-value": 24
                        }
                      ]
                    }
                  },
                  {
                    "capability-id": "mpls",
                    "extended-capability-description": "MPLS label switching",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "bronze-routing-base"
                        },
                        {
                          "entitlement-id": "silver-routing-upgrade"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "mpls-lsps",
                          "description": "Maximum MPLS label-switched paths",
                          "resource-name": "lsps",
                          "units": "paths",
                          "max-value": 200,
                          "current-value": 87
                        }
                      ]
                    }
                  },
                  {
                    "capability-id": "advanced-qos",
                    "extended-capability-description": "Advanced QoS with traffic shaping",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": false
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "bronze-routing-base"
                        },
                        {
                          "entitlement-id": "silver-routing-upgrade"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "qos-classes",
                          "description": "Maximum QoS traffic classes",
                          "resource-name": "qos-classes",
                          "units": "classes",
                          "max-value": 16,
                          "current-value": 0
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  }
}
]]></artwork>
        </section>
      </section>
      <section anchor="license-pooling">
        <name>License Pooling</name>
        <section anchor="scenario-4">
          <name>Scenario</name>
          <t>This example shows how shared entitlements can be installed across multiple network elements. A pool-based license is defined once at the network-inventory level with global restrictions (total seats), then installed on multiple routers. Each router's capabilities reference the shared entitlement, and individual capability-restrictions track per-device usage against the pool.</t>
        </section>
        <section anchor="json-example-4">
          <name>JSON Example</name>
          <artwork><![CDATA[
{
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
      "network-element": [
        {
          "ne-id": "datacenter-router-1",
          "components": {
            "component": [
              {
                "component-id": "main-chassis",
                "class": "iana-hardware:chassis"
              }
            ]
          },
          "ietf-entitlement-inventory:installed-entitlements": {
            "entitlement": [
              {
                "entitlement-id": "enterprise-license-pool"
              },
              {
                "entitlement-id": "advanced-security-pool"
              }
            ]
          },
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "basic-capability-description",
                "capability": [
                  {
                    "capability-id": "enterprise-routing",
                    "extended-capability-description": "Enterprise routing protocols",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "enterprise-license-pool"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "bgp-peers",
                          "description": "Maximum BGP peers",
                          "resource-name": "bgp-sessions",
                          "units": "peers",
                          "max-value": 500,
                          "current-value": 245
                        }
                      ]
                    }
                  },
                  {
                    "capability-id": "advanced-firewall",
                    "extended-capability-description": "Enterprise firewall",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "advanced-security-pool"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "firewall-throughput",
                          "description": "Maximum firewall throughput",
                          "resource-name": "throughput",
                          "units": "Gbps",
                          "max-value": 40,
                          "current-value": 28
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        },
        {
          "ne-id": "datacenter-router-2",
          "components": {
            "component": [
              {
                "component-id": "main-chassis",
                "class": "iana-hardware:chassis"
              }
            ]
          },
          "ietf-entitlement-inventory:installed-entitlements": {
            "entitlement": [
              {
                "entitlement-id": "enterprise-license-pool"
              }
            ]
          },
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "basic-capability-description",
                "capability": [
                  {
                    "capability-id": "enterprise-routing",
                    "extended-capability-description": "Enterprise routing protocol",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "enterprise-license-pool"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "bgp-peers",
                          "description": "Maximum BGP peers",
                          "resource-name": "bgp-sessions",
                          "units": "peers",
                          "max-value": 500,
                          "current-value": 178
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        },
        {
          "ne-id": "branch-router-1",
          "components": {
            "component": [
              {
                "component-id": "main-unit",
                "class": "iana-hardware:chassis"
              }
            ]
          },
          "ietf-entitlement-inventory:installed-entitlements": {
            "entitlement": [
              {
                "entitlement-id": "advanced-security-pool"
              }
            ]
          },
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "basic-capability-description",
                "capability": [
                  {
                    "capability-id": "advanced-firewall",
                    "extended-capability-description": "Enterprise firewall",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "advanced-security-pool"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "firewall-throughput",
                          "description": "Maximum firewall throughput",
                          "resource-name": "throughput",
                          "units": "Gbps",
                          "max-value": 10,
                          "current-value": 7
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    "ietf-entitlement-inventory:entitlements": {
      "entitlement": [
        {
          "entitlement-id": "enterprise-license-pool",
          "product-id": "ENT-ROUTER-POOL-100",
          "state": "active",
          "renewal-profile": {
            "start-date": "2025-01-01T00:00:00Z",
            "activation-date": "2025-01-15T00:00:00Z",
            "expiration-date": "2026-01-15T00:00:00Z"
          },
          "restrictions": {
            "restriction": [
              {
                "restriction-id": "license-consumption",
                "description": "Enterprise router licenses consumed from pool",
                "units": "licenses",
                "max-value": 100,
                "current-value": 87
              }
            ]
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "Company-A"
                ]
              }
            },
            "assets": {
              "elements": {
                "network-elements": [
                  "datacenter-router-1",
                  "datacenter-router-2"
                ]
              }
            }
          }
        },
        {
          "entitlement-id": "advanced-security-pool",
          "product-id": "SEC-FIREWALL-POOL-25",
          "state": "active",
          "renewal-profile": {
            "start-date": "2025-03-01T00:00:00Z",
            "activation-date": "2025-03-01T00:00:00Z",
            "expiration-date": "2026-03-01T00:00:00Z"
          },
          "restrictions": {
            "restriction": [
              {
                "restriction-id": "license-consumption",
                "description": "Security licenses consumed from pool (high utilization)",
                "units": "licenses",
                "max-value": 25,
                "current-value": 21
              },
              {
                "restriction-id": "total-throughput",
                "description": "Aggregate firewall throughput across all devices (real-time snapshot)",
                "resource-name": "throughput",
                "units": "Gbps",
                "max-value": 100,
                "current-value": 50
              }
            ]
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "Company-A"
                ]
              }
            },
            "assets": {
              "elements": {
                "network-elements": [
                  "datacenter-router-1",
                  "branch-router-1"
                ]
              }
            }
          }
        }
      ]
    }
  }
}
]]></artwork>
        </section>
      </section>
      <section anchor="multi-vendor-environment">
        <name>Multi-Vendor Environment</name>
        <section anchor="scenario-5">
          <name>Scenario</name>
          <t>This example illustrates entitlement management in a heterogeneous network with devices from multiple vendors. Each vendor may use different licensing models (consumption-based, perpetual, subscription), but the unified model captures all entitlements consistently. The example shows how organizations gain visibility across their entire multi-vendor infrastructure.</t>
        </section>
        <section anchor="json-example-5">
          <name>JSON Example</name>
          <artwork><![CDATA[
{
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
      "network-element": [
        {
          "ne-id": "vendor-a-router-hq-1",
          "components": {
            "component": [
              {
                "component-id": "chassis",
                "class": "iana-hardware:chassis"
              }
            ]
          },
          "ietf-entitlement-inventory:installed-entitlements": {
            "entitlement": [
              {
                "entitlement-id": "vendor-a-sdwan-consumption"
              }
            ]
          },
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "basic-capability-description",
                "capability": [
                  {
                    "capability-id": "sd-wan",
                    "extended-capability-description": "SD-WAN with consumption-based billing",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "vendor-a-sdwan-consumption"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "active-tunnels",
                          "description": "Current active SD-WAN tunnels",
                          "resource-name": "tunnels",
                          "units": "count",
                          "max-value": 100,
                          "current-value": 45
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        },
        {
          "ne-id": "vendor-b-switch-dc-1",
          "components": {
            "component": [
              {
                "component-id": "main-unit",
                "class": "iana-hardware:chassis"
              }
            ]
          },
          "ietf-entitlement-inventory:installed-entitlements": {
            "entitlement": [
              {
                "entitlement-id": "vendor-b-datacenter-perpetual"
              },
              {
                "entitlement-id": "vendor-b-support-subscription"
              }
            ]
          },
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "basic-capability-description",
                "capability": [
                  {
                    "capability-id": "evpn-vxlan",
                    "extended-capability-description": "EVPN-VXLAN overlay",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "vendor-b-datacenter-perpetual"
                        },
                        {
                          "entitlement-id": "vendor-b-support-subscription"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "vxlan-tunnels",
                          "description": "Maximum VXLAN tunnel endpoints",
                          "resource-name": "vteps",
                          "units": "endpoints",
                          "max-value": 500,
                          "current-value": 234
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        },
        {
          "ne-id": "vendor-c-switch-dc-2",
          "components": {
            "component": [
              {
                "component-id": "chassis",
                "class": "iana-hardware:chassis"
              }
            ]
          },
          "ietf-entitlement-inventory:installed-entitlements": {
            "entitlement": [
              {
                "entitlement-id": "vendor-c-telemetry-tier-standard"
              }
            ]
          },
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "basic-capability-description",
                "capability": [
                  {
                    "capability-id": "streaming-telemetry",
                    "extended-capability-description": "Streaming telemetry tier",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "vendor-c-telemetry-tier-standard"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "telemetry-streams",
                          "description": "Maximum concurrent telemetry streams",
                          "resource-name": "streams",
                          "units": "streams",
                          "max-value": 200,
                          "current-value": 87
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    "ietf-entitlement-inventory:entitlements": {
      "entitlement": [
        {
          "entitlement-id": "vendor-a-sdwan-consumption",
          "product-id": "SDWAN-CONSUMPTION-BILLING",
          "sku": "L-SDWAN-CONSUMPTION",
          "vendor": "Vendor-A",
          "part-number": "SDWAN-CONSUMPTION-LIC",
          "state": "active",
          "renewal-profile": {
            "start-date": "2025-01-01T00:00:00Z",
            "activation-date": "2025-01-01T00:00:00Z"
          },
          "restrictions": {
            "restriction": [
              {
                "restriction-id": "monthly-bandwidth-consumed",
                "description": "Total bandwidth consumed this billing period",
                "resource-name": "bandwidth",
                "units": "GB",
                "max-value": 10000,
                "current-value": 7234
              }
            ]
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "Enterprise IT Dept"
                ]
              },
              "users-names": {
                "users": [
                  "network-admin"
                ]
              }
            },
            "assets": {
              "elements": {
                "network-elements": [
                  "vendor-a-router-hq-1"
                ]
              }
            }
          }
        },
        {
          "entitlement-id": "vendor-b-datacenter-perpetual",
          "product-id": "DC-EVPN-VXLAN-PERPETUAL",
          "sku": "S-EVPN-PERM",
          "vendor": "Vendor-B",
          "part-number": "DC-EVPN-PERPETUAL-LIC",
          "state": "active",
          "renewal-profile": {
            "activation-date": "2023-03-15T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "Enterprise IT Dept"
                ]
              },
              "users-names": {
                "users": [
                  "datacenter-ops"
                ]
              }
            },
            "assets": {
              "elements": {
                "network-elements": [
                  "vendor-b-switch-dc-1"
                ]
              }
            }
          }
        },
        {
          "entitlement-id": "vendor-b-support-subscription",
          "product-id": "DC-SUPPORT-ANNUAL",
          "sku": "S-SUPPORT-1Y",
          "vendor": "Vendor-B",
          "part-number": "DC-SUPPORT-SUB-1Y",
          "state": "active",
          "renewal-profile": {
            "start-date": "2024-10-01T00:00:00Z",
            "activation-date": "2024-10-01T00:00:00Z",
            "expiration-date": "2025-10-01T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "Enterprise IT Dept"
                ]
              },
              "users-names": {
                "users": [
                  "datacenter-ops"
                ]
              }
            },
            "assets": {
              "elements": {
                "network-elements": [
                  "vendor-b-switch-dc-1"
                ]
              }
            }
          }
        },
        {
          "entitlement-id": "vendor-c-telemetry-tier-standard",
          "product-id": "TELEMETRY-STD-50DEV-1Y",
          "sku": "TELEM-STD-50-1Y",
          "vendor": "Vendor-C",
          "part-number": "TELEM-STD-TIER-1Y",
          "state": "active",
          "renewal-profile": {
            "start-date": "2025-01-01T00:00:00Z",
            "activation-date": "2025-01-01T00:00:00Z",
            "expiration-date": "2026-01-01T00:00:00Z"
          },
          "restrictions": {
            "restriction": [
              {
                "restriction-id": "subscribed-device-count",
                "description": "Device count in subscribed tier",
                "units": "devices",
                "max-value": 50,
                "current-value": 50
              },
              {
                "restriction-id": "current-device-count",
                "description": "Actual devices currently managed (may exceed tier for overage billing)",
                "units": "devices",
                "max-value": 150,
                "current-value": 63
              }
            ]
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "Enterprise IT Dept"
                ]
              },
              "users-names": {
                "users": [
                  "datacenter-ops",
                  "noc-team"
                ]
              }
            },
            "assets": {
              "elements": {
                "network-elements": [
                  "vendor-c-switch-dc-2"
                ]
              }
            }
          }
        }
      ]
    }
  }
}
]]></artwork>
        </section>
      </section>
      <section anchor="component-level-entitlements">
        <name>Component-Level Entitlements</name>
        <section anchor="scenario-6">
          <name>Scenario</name>
          <t>This example demonstrates entitlement tracking at the component level within a modular network element. Individual line cards have their own port licenses, while the chassis has system-level entitlements. This addresses scenarios where different components within the same device have independent entitlement requirements, such as pay-as-you-grow deployments.</t>
        </section>
        <section anchor="json-example-6">
          <name>JSON Example</name>
          <artwork><![CDATA[
{
  "ietf-network-inventory:network-inventory": {
    "ietf-entitlement-inventory:entitlements": {
      "entitlement": [
        {
          "entitlement-id": "base-system-license",
          "product-id": "ROUTER-BASE-2025",
          "state": "active",
          "renewal-profile": {
            "activation-date": "2025-01-01T00:00:00Z",
            "start-date": "2025-01-01T00:00:00Z",
            "expiration-date": "2026-01-01T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "corp-a"
                ]
              }
            },
            "assets": {
              "elements": {
                "network-elements": [
                  "modular-router-dc1"
                ]
              }
            }
          }
        },
        {
          "entitlement-id": "advanced-routing-license",
          "product-id": "NET-ADV-ROUTE-100",
          "state": "active",
          "renewal-profile": {
            "activation-date": "2025-01-15T00:00:00Z",
            "start-date": "2025-01-15T00:00:00Z",
            "expiration-date": "2026-01-15T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "corp-a"
                ]
              }
            },
            "assets": {
              "elements": {
                "network-elements": [
                  "modular-router-dc1"
                ]
              }
            }
          }
        },
        {
          "entitlement-id": "port-license-100g-slot1",
          "product-id": "PORT-LIC-100G-8PORT",
          "state": "active",
          "renewal-profile": {
            "activation-date": "2025-02-01T00:00:00Z",
            "start-date": "2025-02-01T00:00:00Z",
            "expiration-date": "2026-02-01T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "corp-a"
                ]
              },
              "users-names": {
                "users": [
                  "admin"
                ]
              }
            },
            "assets": {
              "components": {
                "component": [
                  {
                    "network-element": "modular-router-dc1",
                    "component-id": "linecard-slot-1"
                  }
                ]
              }
            }
          }
        },
        {
          "entitlement-id": "port-license-100g-slot2",
          "product-id": "PORT-LIC-100G-4PORT",
          "state": "active",
          "renewal-profile": {
            "activation-date": "2025-02-15T00:00:00Z",
            "start-date": "2025-02-15T00:00:00Z",
            "expiration-date": "2026-02-15T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "corp-a"
                ]
              },
              "users-names": {
                "users": [
                  "admin"
                ]
              }
            },
            "assets": {
              "components": {
                "component": [
                  {
                    "network-element": "modular-router-dc1",
                    "component-id": "linecard-slot-2"
                  }
                ]
              }
            }
          }
        },
        {
          "entitlement-id": "crypto-accelerator-license",
          "product-id": "SEC-CRYPTO-ACC",
          "state": "active",
          "renewal-profile": {
            "activation-date": "2025-03-01T00:00:00Z",
            "start-date": "2025-03-01T00:00:00Z",
            "expiration-date": "2026-03-01T00:00:00Z"
          },
          "entitlement-attachment": {
            "universal-access": false,
            "holders": {
              "organizations-names": {
                "organizations": [
                  "corp-a"
                ]
              },
              "users-names": {
                "users": [
                  "security-admin"
                ]
              }
            },
            "assets": {
              "components": {
                "component": [
                  {
                    "network-element": "modular-router-dc1",
                    "component-id": "security-module"
                  }
                ]
              }
            }
          }
        }
      ]
    },
    "network-elements": {
      "network-element": [
        {
          "ne-id": "modular-router-dc1",
          "components": {
            "component": [
              {
                "component-id": "chassis-main",
                "class": "iana-hardware:chassis"
              },
              {
                "component-id": "linecard-slot-1",
                "class": "iana-hardware:module",
                "ietf-entitlement-inventory:installed-entitlements": {
                  "entitlement": [
                    {
                      "entitlement-id": "port-license-100g-slot1"
                    }
                  ]
                },
                "ietf-entitlement-inventory:capabilities": {
                  "capability-class": [
                    {
                      "capability-class": "basic-capability-description",
                      "capability": [
                        {
                          "capability-id": "high-speed-ports-1-8",
                          "extended-capability-description": "Enable 100G ports 1-8 on linecard",
                          "entitlement-state": {
                            "allowed": true,
                            "in-use": true
                          },
                          "supporting-entitlements": {
                            "supporting-entitlement": [
                              {
                                "entitlement-id": "port-license-100g-slot1"
                              }
                            ]
                          },
                          "capability-restrictions": {
                            "capability-restriction": [
                              {
                                "restriction-id": "port-count",
                                "description": "Number of active ports",
                                "resource-name": "ports",
                                "units": "count",
                                "max-value": 8,
                                "current-value": 8
                              }
                            ]
                          }
                        }
                      ]
                    }
                  ]
                }
              },
              {
                "component-id": "linecard-slot-2",
                "class": "iana-hardware:module",
                "ietf-entitlement-inventory:installed-entitlements": {
                  "entitlement": [
                    {
                      "entitlement-id": "port-license-100g-slot2"
                    }
                  ]
                },
                "ietf-entitlement-inventory:capabilities": {
                  "capability-class": [
                    {
                      "capability-class": "basic-capability-description",
                      "capability": [
                        {
                          "capability-id": "high-speed-ports-1-4",
                          "extended-capability-description": "Enable 100G ports 1-4 on linecard",
                          "entitlement-state": {
                            "allowed": true,
                            "in-use": true
                          },
                          "supporting-entitlements": {
                            "supporting-entitlement": [
                              {
                                "entitlement-id": "port-license-100g-slot2"
                              }
                            ]
                          },
                          "capability-restrictions": {
                            "capability-restriction": [
                              {
                                "restriction-id": "port-count",
                                "description": "Number of active ports",
                                "resource-name": "ports",
                                "units": "count",
                                "max-value": 4,
                                "current-value": 4
                              }
                            ]
                          }
                        }
                      ]
                    }
                  ]
                }
              },
              {
                "component-id": "security-module",
                "class": "iana-hardware:module",
                "ietf-entitlement-inventory:installed-entitlements": {
                  "entitlement": [
                    {
                      "entitlement-id": "crypto-accelerator-license"
                    }
                  ]
                },
                "ietf-entitlement-inventory:capabilities": {
                  "capability-class": [
                    {
                      "capability-class": "basic-capability-description",
                      "capability": [
                        {
                          "capability-id": "hardware-encryption",
                          "extended-capability-description": "Hardware-accelerated encryption",
                          "entitlement-state": {
                            "allowed": true,
                            "in-use": true
                          },
                          "supporting-entitlements": {
                            "supporting-entitlement": [
                              {
                                "entitlement-id": "crypto-accelerator-license"
                              }
                            ]
                          },
                          "capability-restrictions": {
                            "capability-restriction": [
                              {
                                "restriction-id": "crypto-throughput",
                                "description": "Maximum encryption throughput",
                                "resource-name": "throughput",
                                "units": "Gbps",
                                "max-value": 100,
                                "current-value": 65
                              }
                            ]
                          }
                        }
                      ]
                    }
                  ]
                }
              }
            ]
          },
          "ietf-entitlement-inventory:installed-entitlements": {
            "entitlement": [
              {
                "entitlement-id": "base-system-license"
              },
              {
                "entitlement-id": "advanced-routing-license"
              },
              {
                "entitlement-id": "port-license-100g-slot1"
              },
              {
                "entitlement-id": "port-license-100g-slot2"
              },
              {
                "entitlement-id": "crypto-accelerator-license"
              }
            ]
          },
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "basic-capability-description",
                "capability": [
                  {
                    "capability-id": "routing-protocols",
                    "extended-capability-description": "Advanced routing protocols (BGP, OSPF, IS-IS)",
                    "entitlement-state": {
                      "allowed": true,
                      "in-use": true
                    },
                    "supporting-entitlements": {
                      "supporting-entitlement": [
                        {
                          "entitlement-id": "advanced-routing-license"
                        }
                      ]
                    },
                    "capability-restrictions": {
                      "capability-restriction": [
                        {
                          "restriction-id": "max-routes",
                          "description": "Maximum routing table entries",
                          "resource-name": "routing-table",
                          "units": "entries",
                          "max-value": 1000000,
                          "current-value": 450000
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  }
}
]]></artwork>
        </section>
      </section>
      <section anchor="capability-class-extension">
        <name>Capability Class Extension</name>
        <section anchor="scenario-7">
          <name>Scenario</name>
          <t>This example demonstrates extending the capability-class identity to reference external capability definitions. The example-capability-extension module derives a new capability class and augments the model to reference capabilities defined in a separate module. This pattern allows domain-specific capability models to integrate cleanly with entitlement tracking.</t>
        </section>
        <section anchor="json-example-7">
          <name>JSON Example</name>
          <artwork><![CDATA[
{
  "example-capability-framework:capabilities": {
    "capability": [
      {
        "capability-id": "cap-routing-basic",
        "description": "Basic routing functionality"
      },
      {
        "capability-id": "cap-routing-advanced",
        "description": "Advanced routing with BGP and OSPF"
      }
    ]
  },
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
      "network-element": [
        {
          "ne-id": "device-1",
          "ietf-entitlement-inventory:capabilities": {
            "capability-class": [
              {
                "capability-class": "example-capability-extension:example-capability-class",
                "capability": [
                  {
                    "capability-id": "routing",
                    "example-capability-extension:capability-ref": "cap-routing-basic"
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  }
}
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="entitlement-synchronization">
        <name>Entitlement Synchronization</name>
        <t>When entitlements are managed both centrally and locally, implementations <bcp14>SHOULD</bcp14> provide mechanisms to detect inconsistencies between:</t>
        <ul spacing="normal">
          <li>
            <t>Centralized entitlement records</t>
          </li>
          <li>
            <t>Locally installed entitlements</t>
          </li>
          <li>
            <t>Actual capability usage</t>
          </li>
        </ul>
        <t>Implementations maintaining hierarchical entitlements via the <tt>parent-entitlement-uid</tt> field <bcp14>SHOULD</bcp14> validate the entitlement hierarchy for circular references before committing changes.
While the model prevents direct self-reference, cycles at greater depth (e.g., A references B as parent while B references A) cannot be detected by YANG constraints alone and must be handled at the management system level.</t>
      </section>
      <section anchor="entitlement-expiration-handling">
        <name>Entitlement Expiration Handling</name>
        <t>Network elements <bcp14>SHOULD</bcp14> generate notifications when installed entitlements are approaching expiration. The notification timing and handling is implementation-specific but <bcp14>SHOULD</bcp14> provide sufficient lead time for renewal.</t>
      </section>
      <section anchor="performance-considerations">
        <name>Performance Considerations</name>
        <t>Implementations tracking large numbers of entitlements <bcp14>SHOULD</bcp14> consider:</t>
        <ul spacing="normal">
          <li>
            <t>Caching strategies for frequently accessed entitlement data</t>
          </li>
          <li>
            <t>Efficient indexing of entitlement-to-capability mappings</t>
          </li>
          <li>
            <t>Minimizing overhead of entitlement validation checks</t>
          </li>
        </ul>
      </section>
      <section anchor="migration-and-version-compatibility">
        <name>Migration and Version Compatibility</name>
        <t>When migrating from vendor-specific entitlement systems, implementers should consider mapping strategies that preserve entitlement relationships while adopting this standard model.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document registers one URI in the "IETF XML Registry" <xref target="RFC3688"/> and one YANG module in the "YANG Module Names" registry <xref target="RFC6020"/>.</t>
      <section anchor="uri-registration">
        <name>URI Registration</name>
        <t>IANA is requested to register the following URI in the "ns" subregistry within the "IETF XML Registry" <xref target="RFC3688"/>:</t>
        <artwork><![CDATA[
   URI:  urn:ietf:params:xml:ns:yang:ietf-entitlement-inventory
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.
]]></artwork>
      </section>
      <section anchor="yang-module-name-registration">
        <name>YANG Module Name Registration</name>
        <t>IANA is requested to register the following entry in the "YANG Module Names" registry <xref target="RFC6020"/>:</t>
        <artwork><![CDATA[
   Name:         ietf-entitlement-inventory
   Namespace:    urn:ietf:params:xml:ns:yang:ietf-entitlement-inventory
   Prefix:       ei
   Maintained by IANA:  N
   Reference:    RFC XXXX
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="entitlement-data-sensitivity">
        <name>Entitlement Data Sensitivity</name>
        <t>Implementations <bcp14>MUST</bcp14> protect entitlement data with appropriate access controls consistent with organizational security policies.</t>
        <t>The entitlement data exposed by this model includes commercially sensitive information such as product identifiers, SKUs, part numbers, vendor identifiers, and contract validity periods. Operators <bcp14>SHOULD</bcp14> restrict read access to this data using NACM (Network Access Control Management, <xref target="RFC8341"/>) to authorized personnel only. Unauthorized access to entitlement records could expose procurement strategies, contract terms, or financial obligations.</t>
      </section>
      <section anchor="entitlement-tampering">
        <name>Entitlement Tampering</name>
        <t>Implementations <bcp14>SHOULD</bcp14> use cryptographic signatures or similar mechanisms to verify entitlement integrity. Network elements <bcp14>SHOULD</bcp14> validate entitlements before activating capabilities.</t>
        <t>The capability inventory exposed by this model reveals which features and functions are active on a network element. This information could assist an attacker in identifying exploitable capabilities or understanding the operational profile of the network. Operators <bcp14>SHOULD</bcp14> apply NACM rules to restrict read access to capability data to authorized management systems and personnel.</t>
        <t>This model is entirely read-only (all nodes are defined as <tt>config false</tt>). Write access to the underlying entitlement state is managed by external systems such as license servers or asset management platforms, whose communication channels with network elements are outside the scope of this document. Implementations <bcp14>SHOULD</bcp14> ensure that those channels are protected in accordance with current security best practices, including mutual authentication and encryption.</t>
      </section>
      <section anchor="information-disclosure">
        <name>Information Disclosure</name>
        <t>Access to entitlement inventory data <bcp14>SHOULD</bcp14> be restricted to authorized personnel. Consider implementing role-based access controls that limit visibility based on operational need.</t>
        <t>The channel used to populate <tt>installed-entitlements</tt> data — whether from a license server, an asset management system, or direct device reporting — is outside the scope of this document. However, implementations <bcp14>SHOULD</bcp14> ensure that such channels operate within a secured management plane, protected against eavesdropping and unauthorized modification. Failure to secure these channels could allow an attacker to inject false entitlement state, causing capabilities to appear allowed or restricted in ways that do not reflect the actual organizational entitlements.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </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="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="BaseInventory">
          <front>
            <title>A Base YANG Data Model for Network Inventory</title>
            <author fullname="Chaode Yu" initials="C." surname="Yu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Jean-Francois Bouquier" initials="J." surname="Bouquier">
              <organization>Vodafone</organization>
            </author>
            <author fullname="Fabio Peruzzini" initials="F." surname="Peruzzini">
              <organization>FiberCop</organization>
            </author>
            <author fullname="Phil Bedard" initials="P." surname="Bedard">
              <organization>Cisco</organization>
            </author>
            <date day="27" month="May" year="2026"/>
            <abstract>
              <t>   This document defines a base YANG data model for reporting network
   inventory.  The scope of this base model is set to be application-
   and technology-agnostic.  The base data model can be augmented with
   application- and technology-specific details.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-yang-18"/>
        </reference>
      </references>
    </references>
    <?line 3300?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document is based on work partially funded by the EU Horizon Europe projects ACROSS (grant 101097122), ROBUST-6G (grant 101139068), iTrust6G (grant 101139198), MARE (grant 101191436), and CYBERNEMO (grant 101168182).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
0zAvYVNzRx24+n394k2Q5SgCKF4m4P5x9M3eC1ns12c9AvpkN7FmzmdDS2R3
dLc22PDLL8AaybeoaF0xOertYeq+TLHPQwiJuJ1G2riYHfXqXNCui45rta2X
s7wqTAh8+55e8SSan8qAvGg0vHnKe2+y9DSy1HKtLF6N77s5WGaVka2B3kjs
tnn9uaVV/Wwxj85+yC4ltQ++PnoRff3HZ8AAc7jIZvHqRkSbz8VEdDcqWrvH
yyygC41ZC/jlqglEHxfSEnSRWyIOHgHuqaNFniKibaYmnFVJ5wjxjnNcygv/
42tNcPFeNYWhpSm8P3/ZX/edexhVZBupilWEpYlQIMxHsNMbOd42rz+3SiZW
JPEMxZIG6qXy3snRhB6NqkfdiHXzuZhU7Yz01jZ/uYLVwILx92LC1Sp4Z9C1
04A1Eduplykc3aX1h5uI5WokbM/+9f27BbVYtNpe2h9/s/ci2n/54vj186OT
w5cvokeHz54dvnjqPbe/WWLrZ1GtvduOF4FN+b0n2vMmx3f3+XJ2mhTh2Z8d
7n+wnkkfyIv9LJ9X02wVnQK/PE9H1TRSb+8dXqdPKMeE7mqe7St8fpN2ZXzZ
SvPgcHX3ezVU+xv0ow4v0J3eoD+ra9u/9Fdoyzvs8EQ8ThZVh2dbH5Qb1KkN
rUE94nHp2g0Z5vt+DQ++H2665o2uUZtaL1o48uP9yJiRoqODV0cHJ6/3ngX5
8TE3hUbP1/DhR618WM2pZ7tqPhzmqh+jH9SvpkbgT0a7Fgbmiw++RGHwyeKn
It6g5a+deI9fHx29fHUS7b140Uy2qtHOt5elWzXS8etHtdGuvrL8vYtVlm/v
1lhZ/l5HleuGOdwwhw3WfDXModmA0cIfTg6eHTw/OHn1bXR88jj65N7jg6/r
VMtMgprKZuv5xH4rnzBjnRwevLpuPnFld6yuztQfzNVMionTZCST5UVNPgr+
vewx59aj5ujaaEZqsjeay5X0dFx3w/rkYi6+F/KbVsNuCIW9IWrH2nVTjpKt
pN/nSNxGV83kh2Ei4SLGeUFPrZiSUN5e273MOwJrpxO0PvWrQd5cRd+7xAq6
Oc9zZM/x7Gciz9xXt6uRZz27r++Tva8f4J5RUtIDyxbZ5pc9SmaAHQHHbMoS
iqYjmf1Uv/BZWU/JY3sG4jCLCz+56kAcmlSkQMUwAojSUkzjs0R6Nefnc4HK
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
+Uu7waef73x+f3vQ+/8BD6rtTesYAgA=

-->

</rfc>
