<?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-03" 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-03"/>
    <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="23"/>
    <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?        int32
                +--ro current-value?    int32
]]></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?        int32
       |     +--ro current-value?    int32
       +--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?        int32
                   +--ro current-value?    int32
  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?        int32
                   +--ro current-value?    int32
  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?        int32
          |     +--ro current-value?    int32
          +--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 3301?>

<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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
ZgGsCC4zuDjF1JHfaWGKIplimzOFXAZPfV+tEKa69wOynR1ZeyAtD5/z5E56
vR9+QLqFheFlVALXupOiXTkdVsq8meJNBnabgJo9TSfTDB+f1Nt1A60p/Q89
9Ev7yRVwchduJcUIPaiML1UdCbQPoQW+AqdC+1PM5KzvnQw131W3o+rmcvGL
yaK/N4z23whhjb+W5Au1dRW31rbtzL1JzBsN7Cpk7v+6vMg26wmrCW3f9zbZ
w98vdbibdv57j6T6lxLNhdaI5H+OlSercH5yBCWe/SZC/J9dEOPKOv/T0QAa
OInSChwaML/a9n1N5aQPSAYVl8M0jYDJ/uepazSzOLbLpIKO+sH7sMtF+W0R
L+HneXQer3bdi6u0T6KfjLmviJcHkv/CH6oJuQ4l7j1UKvYbMqOrvvgEOJTP
nmz+E2Q9F+U7zVj08TGjC3AiIeq86P9tmah9zy0913QO9rxmXhQ88jXspB1N
Ap3/Z/tsClGta6eL5Q1fml/WjRDeyW/5P79r3khohovfy9bMt/Z//1RrsXl3
A5MN3ugUR61ZN4mNmHhRi4fbuivNkAb0zJcHynLq2udOV9IVyn+95RcLaetP
TATCL4DHrqWfZuq45GYvyWI1cJpMQu1f9wI7aGKVF+Swf2+DU73T33uSwA1v
tVmrz0GF/sXwXMaA2pE36u9NCNKBo3bv185PwyzS+n5d74DZMNxbP6Y0nMlX
7egG3dQIgdHXENnvqItrPoSvfrsOyf/pzuNu8QKc/5+BgTwG3sxhFQ93toE+
BsohVzvBhfj301QGejRxZ/RcftvgQi+/4Wcetpwwh5ZvLMoXyX4S1d4I8H1A
eNhWjvfvN+H01/aG8HfnUEIY3cb7Wzt3xJWNNe6WSQPLb/xcjVC5AqXdW05Q
hmyouvP/Avx+zY7bxUpTx5BcCUsV0SxWRECudFbYm8VDO479U7R1DMxzAT1d
dBUs4oKSJXws1yla/nUt0qX7MQQGtD8bMYU1jTV3Z4+Plk93Y+z6o+k2NOzk
tfMyF0SrC5lfO4O6UYy7cXJSiisvWTZ2k+y227HU/vWvHbzq9fZ9hwfqLl1w
2HkTbflbKq2HtJJtKVf6LUr8UUv6sSVDWVlYe05tGOSRFxRqIUNPzKtLVSTo
OodbF/8WRYUbLP8rArj3/Sqih7U74k/+V39W5xPugb+oJ7oiGTc1dgdOR3+2
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
q5U0JL1bT69epLl5OZFVWeXaZvH36Ww5E3a9Xhh6Lp2o1GouyNTsfNDSV7S9
mKrEiFi9AesisAQaOqVHdaEhy7VYdVUR0+Tdw1Zv5dvEisRK7MRVsw6ldE++
HrBrs6lBbsdar4l17hBpjSPsotvSrNz9fpbtzstdin9qHtmJv05rkdc0JxeW
c6Kf8fvLBFwHQ6YPD06ech1tGAJZ6DNAoAWtkFBzyME/W18/E18np7vw52+n
VbUod+/exQdH0oWSYoALGcDod88nd9Oz1d3fse0EemH6Auj2W7jDZ1W+qxdJ
2/y96vc7mURgj8pHQPsXcZHCzVccxdksKXL/5/14lmb4KFyMAGX9X5+kySQX
z4ED/tX/6RD1J/F4Waa8r2B0+J6d2Y0oMHg16LOVvOApqJh4RCcCEAiffHRv
ZyBXtJ8vVmTlELeH2xQNLugsToplWenEUDB6SeHkSl2nGvQ0AFfa0JfAISD5
ADaKkoqMJ8jD0AVkpGZ8nYzSkoM8iGfKctrAc2TJcfwGJB/WcUPWiuYXep2T
GwylbesjhzeJlhbLolzGeDfL+RJhCm3zGPajINZWNlGmyFGZIb3GEHn49+Pj
J4A9yplFBqHBwsjbVhxL1vZwMFQgMPC7VYKkmQC3PsL7FCVAUjDIWAsBDkbN
n0hmI3+/rZC7wmGSxCC2XHWEYmdbgZR0KcUelG3Cxh0KTS5Ih3j9dF/8ET7e
ROfn54NiPIzgcABDaCqc4i58h623v4C9MxfFAdj9WIOC770ZbRWu5+jhbJaW
UKoRYA2jUtxCLedWn/8rXr6iv18f/OHN4euDJ/j38Zd7z5/rP3gI2YzZsvnL
dNduqPhP+FY4X/Egt17sfXOLkeHWq6OTw1cv957fYqOznbcz1s88lF4NeFdl
4boyIZBa+Hj/SOw8FLcRHvd3dn6zzX9+vvPZw20yaPFs2jO2r1FvJQ1b9EjC
BoMU+EHZN2UOKJmnYg1evoZPo3ufRPdb8jUsF2yoI1ag8EJZkbvwBxnfrm20
auBuvOW+ybngpZm4F92/17zsp5QEilDJWTli2Idb/U4gu0VDVovAHih6TPfz
0vOoxGiBGdqSo9o5NDon0AjnZmXdMgE9z8345iRRNctD6T9KHAcuFQguF0XZ
HlTuRjvZDn6nTA8mC0RDrp0D97LC3fykOnJMeYHZeFDZr2FU5T+w6aiqn4l0
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
i3iMFVzLabz4sdhZU767G37WZdobfqb5GRAH23MveK9EqlAE0WmcGi/rvALj
f96ltaOOfboRT2uK1P6IHp169q++/7tXRXV9ii6sFFPWq6tS1ZtTq05ELVGX
qlKpPNjQ3R0rrUZc1lAVCUmx0Oo4nVMpFazTymWla47hnPCKuewky0+piqiV
2Ot2lWMhyDKJq3KbSq3MncKNZmH82qaSh/G/bnlVZXSBUq5aUdt/XxZsHKVn
6citG+PmG+PKqgvgKLLAJGfvsitoI1A+7jKOo7jCpHeV5Isf3oWwKXfXz/y1
MjGBRpJcIkSWtQXQOg2udSAdSh0c+/IA+9m/OCZuPNjlbHwHxi3aN/Xd2PWs
z4ZqXUdSsnb389XrrsbC9vFZ1jZ9Lrj/8KN9etTMuTW33sYcZe1oN4zEHe+i
YtPa3M+Xj+iqDdUURNVkuli2Jchq5ig6iV/XceppvDp21Jzl2ek6I5nNWB5u
yFfCiZzx89FcEtd5JtZV/g/snXij8req/DdqecvcH1YtvxGm5nOjlZvPjVZ+
Mcf+z34G4vMm4PYDy80ba9ZVic2bq+fHKi1vrp6/vKvnhr70P4GYuJ7964dP
HNukcjr8381Tc/DyJJK5ao5evXoe7dy7d92pZi6S8emTi2V8+rR7qplrT1an
TsSqqNQhY513N0sK9bhcytJMmNSsyGeidtByPE2bqt/VZK+r+T91VT9srP0p
pfTZB200nq+ivY89kc+6B+2Whh88r1aD1G/hV5jt+unh64Ov954/Z451/5Pr
ZlgPLsaw2rs1Miyv20+NYR3Lk2zjU+L2NJ1M7Zp4oZKGm7Ou+5904Fz3d3yU
7uBiECjogS457SqaD5q9yaRIMDlwSDVTPkb4LbvTlJjeEudIZ4ko5/GinOZV
EFCbKW5r1bULiINPNshmeiMO7IE+GnHgm3WuRhS4GnHPddh7gW5r0Vdw084L
cTA/S4t8jptp89xLs2yp0tVayCNm8Tye8J/pXMRimsA28gnw+3xZaoc9crFT
5EX8SLvOndEylOsc/wtGXQm4ZotROianuaqWGlbctvgj+//10SdukVTLOOuL
cnmqmcB2X5wu2TEO8HmcAk+kQdDDjovIIPXblwJinmlZwd/ZCpPWJgEXRreK
J3rfibO0TGXZUMlXYNK0oLGLhDcdyT2m83ERA0hByMIaPm5vPV5yFCs0nX73
AQ2Qv9BnOw3zEjY1d9SBq9/Xz94EWY4igOJlAu6fRF/vvZTFfn3WI6BPdhNr
5nw2tER2R3drgw2//AyskXyLitYVk6PeHqbuyxT7PISQiNtppI2L2VGvzgXt
uui4Vtt6OcurwoTAtx/oFU+i+akMyItGw5unvA8mS08jSy3XyuLV+L6bg2VW
Gdka6I3EbpvXn1ta1c8W8+js++xSUvvgq6OX0Vd/fA4MMIeLbBavbkS0+VxM
RHejorV7vMwCutCYtYCfr5pA9HEhLUEXuSXi4BHgnjpa5Cki2mZqwlmVdI4Q
7zjHpbzwH1xrgosPqikMLU3hw/nL/rLv3MOoIttIVawiLE2EAmE+gp3eyPG2
ef25VTKxIolnKJY0UC+V906OJvRoVD3qRqybz8Wkamekt7b58xWsBhaMvxcT
rlbBO4OunQasidhOvUzh6C6tP95ELFcjYXv2rx/eLajFotX20v7k672X0f6r
l8dvXhydHL56GT0+fP788OUz77n97RJbP49q7d12vAhsyu890Z43Ob67z5ez
06QIz/78cP+j9Uz6SF7sZ/m8mmar6BT45Xk6qqaRenvv8Dp9QjkmdFfzbF/h
85u0K+PLVpoHh6u736uh2t+gH3d4ge70Bv1ZXdv+ub9CW95hhyfiSbKoOjzb
+qDcoE5taA3qEY9L127IMD/0a3jw/XDTNW90jdrUetHCkZ/sR8aMFB0dvD46
OHmz9zzIj4+5KTR6sYYPP27lw2pOPdtV8+EwV32AflC/mBqBPxrtWhiYLz76
EoXBJ4sfi3iDlr924j1+c3T06vVJtPfyZTPZqkY731yWbtVIx28e10a7+sry
9y5WWb69W2Nl+XsdVa4b5nDDHDZY89Uwh2YDRgt/ODl4fvDi4OT1N9HxyZPo
k3tPDr6qUy0zCWoqm63nE/utfMKMdXJ48Pq6+cSV3bG6OlN/NFczKSZOk5FM
lhc1+Sj497InnFuPmqNroxmpyd5oLlfS03HdDeuTi7n4XshvWg27IRT2hqgd
a9dNOUq2kn6fI3EbXTWT74eJhIsY5wU9tWJKQnl7bfcy7wisnU7Q+tSvBnlz
Ff3gEivo5jzPkT3Hs5+IPHNf3a5GnvXsvr5P9r5+gHtOSUkPLFtkm1/2KJkB
dgQcsylLKJqOZPZT/cJnZT0lj+0ZiMMsLvzkqgNxaFKRAhXDCCBKSzGNzxLp
1ZyfzwUq4zrmpC/OpyCReD5+D4T2pShXZZXMIp7YtrKiazW0iUcj4FgYtFLK
TZYwUlLYDuDmsVMtndKoAspK7sQrS+ejZIGPSNDFBkeRfLdMC54VvcOHUwEL
W8SrKC6jVb6MJkV+DiMtsnzFS+tdsUf2hzM8o0tqpGDOR9OmAsk41Md7xwcR
Sv3rNzOsVSw212AurYr8VAXAMC8WUfyxs1XJZJT9bzT84JcEHfOo0rB3oIyX
ByfR3pOvOFL7qmO0LxhxHSaNa43RviGNnzdpkEFNhZ0Clk+iMsurnTbKIAvX
88N9bP4s+hz/+UFo4/7GYqO9RyNt3L8RG/Xd8k4udVe45ueqFpc49/eG9TU4
NdUj5kJk2+Tf4vnWoTKNujRRWchatrkDxPVwgPvdOcDDD8gBNpWO7T1aOMCN
dKztlndywwGukgME7AsfngMMi9Wiygk1swToIS+6KMiYFmT/9TdHJ6+ivf0P
8D69Nr3H5nlELp0Q5Ib+a0O30r/OOXPDCAwsaIhgSbArYgQ9u6/yhbzaJAFr
wPABwhUiDHC8gpiFDi8s65S67ouQRx/ocPmYCDlQkx2xfY/1zmvui8ERQv69
dU/ggG/4hYMmZPcOoRNrdn4FYRS1kRpX0bYSfzV8DJjMKSoXCSABnkgZ7USf
tzt8d0qvGp9mCTp/PiPbfilgVKx1phB8zQwbhFvILt2CLmTj9aEX/GmJORQX
CcNo7dh6pvxpH5fGviSdmU+T/z1/wl74smcr1DaP02jteDVQq790E9TWZyKQ
/T30f0keGiIfq+wJRANdBqr5YXfuuUH6BNnDfhf/vEP7WvDG9WFQ42+XjwoJ
SI0rF9z3f4GCO3j/vBHc3kjXK7gfXovgfngjuFs7fljB3UBn5nMjuH9Jgvvh
BQR3c1oD/vySBLdvO/k5C+4W6+yN7P6wslsiEcCIDqVtBTRCB9H9pRpTny9V
Bu84/o3gDn4uJLg3pTPz+YXLbgm4jpVL5DANSRMM5nctoWKWdaFCKrJ793Iq
ssMGuQxlj5q7enNGQ/78ZAW68++PPe1PyGH2AhrKBk6HVzJ6R/vgVQ5eu8Nc
bPDufPYmw1Lb3AxNhVyqemgT8+qii+xJjK2VJC3F7cfPjvri1fHR0744PI4O
j0NxPTzPTdIld7yLcwZre5ux7aYX6I8x2RIKUno1vliWJYWqFVnAAMZFum6k
mqqgjoHG6JzJsMNMtZQqGyc9xi7XKMyvJdlSz4tu0igk9pFdigPkRFghtnts
E/EuOmaMLvL4r0hHRGMrUeWiSChmaJhQp2IeZ1Z7GHWcwgki1juVHWymmKjl
cXQULqVIz7BQhJgn5/ZoPHs8H4l4OSG+Quvj+hLOWmwxxIsALksRWGWyiHGT
cjIZFLWIK1y8IP4IPXLK3lwukmE6Tof2GmRFDJgtnVfJhIYaZkk8z1acr95i
PzourL3gRAAm4wJIBV1CwgI1LM4MI6iLLfhCcz+SnRYh+aT+GH/XhD5ezol9
xDSb7KQ5Xtc5FQtumbYmDQmcWBgZTxxFoZ69p7Cf1vGjV+yQcb6eC85HoCW1
Udtu4Efu+AHUp2alqWXBjmwch7H6R+G54tUiYbdG4H77WM1mJP9N4aR2fKk4
Xs2HcFNWHoO93tfTZO7Ww4mxeo0M+T7NMU0ZCj9gTSuihCwf4t99kSKosIus
inP85as3z5+gEnkGCxCzZDiN52k5I241SqpkiMH1utrOEHnjKSB7ksx3e707
Yp+nSf9KFjE7nHOYF6MSWjznqYW+LjoLhwYyhN3il8sS9tHrHXprRf5awf8h
nU9TgFYxnKYwuAuJszQmDv8t8GykIJualunoWzFOk2ykNg5SPEW3Uupib0BN
sKKA+WFaDCkIV4sLBAP8QnG7s7Qi5oOwmyTlAM5HRdmynFkUyRktbpQWCNEy
ycaRHqovhisQByVGAk+KJMZqlqNkAYd4OxlMBn2xZ0/7mONiKeaWo3kf2z/v
bQMk5/O8gvXJA0SUWIlv9l4+o+R1cF4poUyWzxPCjtmypOaw/BEekIxItkpH
8d2bI5MHNfw80C664kscAmDR6710w5U1qmHpKZKAsEYUlPJwzxGlwzhCyB0v
AEdjOHCAs3EJZgXBHklUKWWfxX1N5WIESGsX8Y2YxsJTHhGUyzH8kiYUih1j
2oRZQlggnaIZAEdJAd/NUPzU6NfHXB3rDSg0gfXSW1iJj2HOPuU6hnI0JjC5
Z1azJkh/uJQxxksnlOmBvZU9+sOQf+h9oHeCcdff40DupBHc8m1NBcAMjZAs
XwChzdK/UpezpJgiJNy+ingQ6sNpMnzLnOtFOpHIgGfwFWwU/6bCcJUsviU5
2IxbosKAJcdkaL8+GnsqRsDSYmAIwHKaL4GWFcDU8m1gVVPAZqC/MinOEo9F
ZXw803RRSlKKR/mCryqo4an8NEzFeOzicO/lXu24SR0c5cOlHHeCvBLPF+jr
zetDIWPhtw4PTp6KP754Ll5TE1AuxA8//Or10/0Hn37++fv3BC/sQ6QqFVvV
l757wd+9JM9uOVGxkoN8eu/+vffvGTlxVjmJFBm0cFgm4U2JPIGUX14qTTHO
UZHFzdtrhqsnplbRc1mx/ev2s0v66n+h8IMRd4VYFvNd1HB2UZ2elbvfz7Ld
ebm7Aq6526z5YH+1FwAvAL+KhxUMh6R/eHD8bIAtYBnw1cu7e1/Q2sw2aTN4
A6CVklP8Ih4mA14bAssH7SUgh9JwtfGZWYDCZrtalWgHyku1F+pwceAegfhI
v1ezJil+90LKWpYdCAKELh+FlDXUAfYg/ggfCU2gEF3odI1S8wQ4FDSGNlV6
RjzB55ov3hyfkHkLRabP3FjTJ6mwKFKUJ8wHkRlUBZrDTIlAbmsHXYDSoJ6n
xSLPkEdiQokTTwmgiUDa5CXDgbgCi3RQirLliMq4zmZJMUxJySnlfpBuSToQ
H9TZLDg2R96FQQ8pgKEd/8cb+P+YfkrJhb6qsui0Q+ZAewPkZ85Li6e8s3BR
ZnUyL7QUUVYc+AM4twQOYC7tgTa2pHKNL/f2X4jbSlrvcbt9BiKggVIB+oCx
cNifP3i48/79Ng4UL6tpXpDmB3OXORWoyOdYj/HN3PrRTB1QEDF/E3BwhjEC
CA5FcnzNw/tm30BxKARQAKZzEL0AdZGfZumEUaaumpzA3QBAhAqJj14STljG
ks3dIIwWoFCKMp3MY647CROVIAVR83NVY5CI6Xjl7Ijv9nAoA9Gk+2ht0xH7
UpFUEVWoSFp3PYmWlpDWxNuAmqhsxhmJNMC7cSL3ggikLuZSp2JPHJTU9ewy
JNRsLOaTooCMCtkpxVK9TbBQpsLUldTOsjxlW59jUwFgLucYO4ViVRmKcusa
JIPNUM3An+SSArgNZA/ERphbLFFzJo4cxnfbsoRY72JuTcdlOGmEHkjpLom+
lJVCYXacJkJ0F7exOuk8R2aAUFWmIyD4bwFxx+mE48i+3R6IrwE/EocYE4ZJ
tpLiw2g8aJfHGfW1bmXMZWqtirNI47QgLacgUFPglb2/Bag7eJqUBQipDTnX
cq70ZsRuLFLDzHLuYzDuDG7NyNE5sc8QTo5PylJ+BqKBymB1gISsjVU8u5oP
R5ZcXhrchsgaSLHmao4yQ7/m2Kdw1NAF0XeI7IF5MdWeXdJdEg8YYTk0eqh5
tGYmcWhh9pO0HGY5LrDX2wtyK0NyhENyU6eJxjrWCkIscaAFodFdcanAXhNZ
nNKXXASlDPhOZRes5bawXJtk5kkyUhyCAYoMjRazyBdwZQUc+jb8Uvst7+Vf
f/sHXr4AYAWr4bGHTX0idh+bGAOJFctLrczyVCTyZYZGBtzogjVf5ucJTdVg
n7DRh3BeYw8DIzHpsghLXMoGzJ/DLdsgWYzFgAGHkvgsKUegQSzUlXFpSy4g
en2vHIincZrRInI5B+7IRmTJIFEXdPgj2X3/giAiPlCnchBwMQtjh18iQi0W
Ccge+QQn6A6qEQ62ex6vJLqMcrwGoyUgw5kQ2DEbVjy9x0YBwJwoigCzhm9R
ddsbvp3n54AnbCjv/bDLGkky+vctWvrWe/+ygynwFV4Sw0BFhnWhMTI2KZsS
cfAGDhnACu0OlgViARwHAqUUe/uvXx0fi9sT0u937u3c+81nO/fvb/fF61eP
QQeMPn1m/bjz4Df3Pv0cfkxPimVZ+b/t/AZ/e7H3+sD+/jc7Dx98us1K1P43
jw9evzx48cpu8OnnO5/f3x70/n/0pnFdqhgCAA==

-->

</rfc>
