netconfcentral logo

openconfig-module-catalog

HTML

openconfig-module-catalog@2017-05-01



  module openconfig-module-catalog {

    yang-version 1;

    namespace
      "http://openconfig.net/yang/module-catalog";

    prefix oc-cat;

    import openconfig-inet-types {
      prefix oc-inet;
    }
    import openconfig-catalog-types {
      prefix oc-cat-types;
    }
    import openconfig-extensions {
      prefix oc-ext;
    }

    organization "OpenConfig working group";

    contact
      "OpenConfig working group
    www.openconfig.net";

    description
      "This module provides a schema for cataloging and descrbing
    YANG models published across various organizations.  The catalog
    contains several categories of data:

    * organizations -- entities that publish and/or maintain
      individual YANG modules or groups of modules

    * modules -- information regarding individual YANG modules,
      including their versions, dependencies, submodules, and how
      to access them

    * release bundles -- groups of modules that are compatible and
      consistent with each other (as determined by the publisher of
      of the bundle).  The release bundle does not necessarily
      correspond to a functional area, e.g., it could the entire
      set of modules published by an organization

    * feature bundles -- sets of schema paths across a
      release bundle that provide a specific set of functionality

    * implementations -- information about available module and/or
      bundle implementations and their status";

    revision "2017-05-01" {
      description
        "Fix to module dependency list";
      reference
        "0.2.1";

    }

    revision "2017-03-08" {
      description
        "OpenConfig public release";
      reference
        "0.2.0";

    }

    revision "2016-02-15" {
      description
        "Initial OpenConfig public release";
      reference
        "0.1.0";

    }

    oc-ext:openconfig-version "0.2.1";

    grouping catalog-module-common-config {
      description
        "Data definitions common for both bundles and standalone
      modules";
      leaf name {
        type string;
        description
          "The name of the module or bundle.  For modules, this
        should reflect the 'module' or 'submodule'
        statement in the YANG module file.

        For bundles, this is the canonical name for the overall
        bundle of modules which is to be released together.
        This name should be consistent over multiple
        releases";
      }

      leaf version {
        type oc-cat-types:module-version-type;
        description
          "For individual modules, this is the version number, e.g.,
        a semantic version.  The version may be the same as the date
        indicated in the module revision statement.

        For bundles, this is a semantic version number for the
        overall bundle. This version is to be defined as per the
        approach specified in the OpenConfig semantic version
        guidance - and is of the form x.y.z, where x is the major
        version, y is the minor version, and z is the patch level";
        reference
          "Semantic versioning for OpenConfig models";

      }
    }  // grouping catalog-module-common-config

    grouping feature-bundle-included-reference {
      description
        "References to the included feature bundles";
      leaf name {
        type leafref {
          path
            "../../../../../../../organizations/"
              + "organization[name=current()/../publisher]/"
              + "feature-bundles/feature-bundle/name";
        }
        description
          "Name of the referenced feature bundle";
      }

      leaf publisher {
        type leafref {
          path
            "../../../../../../../organizations/organization/"
              + "name";
        }
        description
          "Publisher of the referenced feature bundle";
      }

      leaf version {
        type oc-cat-types:module-version-type;
        description
          "Version of the referenced feature bundle";
      }
    }  // grouping feature-bundle-included-reference

    grouping catalog-implementation-bundle-config {
      description
        "References to the feature bundles supported by an
      implementation";
      uses feature-bundle-included-reference;
    }  // grouping catalog-implementation-bundle-config

    grouping catalog-implementation-bundle-top {
      description
        "Top-level grouping for the list of feature bundles
      supported by an implementation";
      container feature-bundles {
        description
          "Enclosing container for the list of feature bundles";
        list feature-bundle {
          key "name version";
          description
            "List of feature bundles supported by the implementation";
          uses catalog-implementation-bundle-config;
        }  // list feature-bundle
      }  // container feature-bundles
    }  // grouping catalog-implementation-bundle-top

    grouping catalog-implementation-config {
      description
        "Data describing any available implementations";
      leaf id {
        type string;
        description
          "An identifier for the implementation, provided by the
        implementor.  This id should uniquely identify a specific
        implementation of the module, e.g., based on the vendor,
        platform, and platform version.";
      }

      leaf description {
        type string;
        description
          "A text summary of important information about the
        implementation";
      }

      leaf reference {
        type union {
          type oc-inet:uri;
          type string;
        }
        description
          "A URI (preferred) or text reference to more detailed
        information about the implementation.";
      }

      leaf platform {
        type string;
        description
          "Name of the platform on which the implementation
        is available -- this could be the model name of a network
        device, a server OS, etc.";
      }

      leaf platform-version {
        type string;
        description
          "Implementor-defined version name or number of the
        module implementation, corresponding to the platform.
        This could be the firmware version of a network device
        such as a router, OS version, or other server platform
        version.";
      }

      leaf status {
        type identityref {
          base oc-cat-types:IMPLEMENTATION_STATUS_TYPE;
        }
        description
          "Indicates the status of the implementation, e.g.,
        complete, partial, in-progress, etc.  Implementors
        may define additional values for the base identity";
      }
    }  // grouping catalog-implementation-config

    grouping catalog-implementation-top {
      description
        "Top level grouping for information on model implementations";
      container implementations {
        description
          "Container for module implementation information";
        list implementation {
          key "id";
          description
            "List of available implementations, keyed by an identifier
          provided by either the implementor or the module
          maintainer.  Such a key avoids needing a complex composite
          key to uniquely identify an implementation.";
          uses catalog-implementation-config;

          uses catalog-implementation-bundle-top;
        }  // list implementation
      }  // container implementations
    }  // grouping catalog-implementation-top

    grouping catalog-module-dependency-config {
      description
        "Information about module dependencies";
      leaf-list required-module {
        type string;
        description
          "List of names of modules that are imported by the
        current module.  This list should reflect all of the 'import'
        statements in the module.  Release bundles should be used to
        indicate which versions of the imported module are used
        (or are compatible) with the current module";
      }
    }  // grouping catalog-module-dependency-config

    grouping catalog-module-dependency-top {
      description
        "Top-level grouping for module dependency data";
      container dependencies {
        description
          "Data about dependencies of the module";
        uses catalog-module-dependency-config;
      }  // container dependencies
    }  // grouping catalog-module-dependency-top

    grouping catalog-module-classification-config {
      description
        "Data describing the module's classification(s)";
      leaf category {
        type identityref {
          base oc-cat-types:MODULE_CATEGORY_BASE;
        }
        description
          "Categorization of the module based on identities defined
         or used by the publishing organizations.";
      }

      leaf subcategory {
        type identityref {
          base oc-cat-types:MODULE_SUBCATEGORY_BASE;
        }
        description
          "Sub-categorization of the module based on identities
          defined or used by the publishing organizations.";
      }

      leaf deployment-status {
        type identityref {
          base oc-cat-types:MODULE_STATUS_TYPE;
        }
        description
          "Deployment status of the module -- experimental,
        standards-track, production, etc.";
      }
    }  // grouping catalog-module-classification-config

    grouping catalog-module-classification-top {
      description
        "Data definitions related to module classfications";
      container classification {
        description
          "Container for data describing the module's classification";
        uses catalog-module-classification-config;
      }  // container classification
    }  // grouping catalog-module-classification-top

    grouping catalog-module-access-config {
      description
        "Data pertaining to retrieval and usage of the module";
      leaf uri {
        type oc-inet:uri;
        description
          "URI where module can be downloaded.  Modules may be
        made available from the catalog maintainer, or directly
        from the publisher";
      }

      leaf md5-hash {
        type string;
        description
          "Optional MD5 hash of the module file.  If specified, the
        hash may be used by users to validate data integrity";
      }
    }  // grouping catalog-module-access-config

    grouping catalog-module-access-top {
      description
        "Top level groupig for data related to accessing a module
      or submodule";
      container access {
        description
          "Container for data pertaining to retrieval and usage of the
        module";
        uses catalog-module-access-config;
      }  // container access
    }  // grouping catalog-module-access-top

    grouping catalog-module-submodule-config {
      description
        "Data definitions for submodules belonging to a
      module";
      leaf name {
        type string;
        description
          "Name of the submodule as indicated by its top-level
        'submodule' statement";
      }
    }  // grouping catalog-module-submodule-config

    grouping catalog-module-submodule-top {
      description
        "Top-level grouping for submodule information";
      container submodules {
        description
          "Data for the submodules belonging to a submodule. If the
        module does not have any submodules, this container
        should be empty.";
        list submodule {
          key "name";
          description
            "List of submodules included by a module.  All submodules
          specified by 'include' statements in the module should be
          included in this list.";
          uses catalog-module-submodule-config;

          uses catalog-module-access-top;
        }  // list submodule
      }  // container submodules
    }  // grouping catalog-module-submodule-top

    grouping catalog-module-base-config {
      description
        "Basic information describing the module, e.g., the
      YANG metadata in the module preface.";
      leaf namespace {
        type string;
        description
          "Published namespace of module, i.e., defined by the
        'namespace' ";
      }

      leaf prefix {
        type string;
        description
          "Published prefix of the module";
      }

      leaf revision {
        type string;
        description
          "Date in the revision statement of the module";
      }

      leaf summary {
        type string;
        description
          "Summary description of the module";
      }
    }  // grouping catalog-module-base-config

    grouping release-bundle-member-config {
      description
        "Data for each member of a bundle";
      leaf id {
        type string;
        description
          "Identifier for the bundle member";
      }

      leaf type {
        type identityref {
          base oc-cat-types:CATALOG_MEMBER_TYPE;
        }
        description
          "The type of member that is to be included within the
        release bundle. Release bundles may include modules and
        other release bundles.  Both member modules and member
        bundles should specify the list of compatible versions.";
      }

      leaf module {
        when
          "../type = 'oc-cat-types:MODULE'" {
          description
            "The module name is specified for bundle membrs that are
          modules";
        }
        type leafref {
          path
            "../../../../../../../organizations/"
              + "organization[name=current()/../publisher]/modules/"
              + "module/name";
        }
        description
          "Name of the module set which is included in this bundle -
        for example, 'openconfig-bgp'";
      }

      leaf release-bundle {
        when
          "../type = 'oc-cat-types:RELEASE_BUNDLE'" {
          description
            "The release bundle is specified for bundle members that
          are release bundles";
        }
        type leafref {
          path
            "../../../../../../../organizations/"
              + "organization[name=current()/../publisher]/"
              + "release-bundles/release-bundle/name";
        }
        description
          "Name of the module set which is included in this bundle -
        for example, 'openconfig-bgp'";
      }

      leaf publisher {
        type leafref {
          path
            "../../../../../../../organizations/organization/"
              + "name";
        }
        description
          "Reference to the name of the publishing organization";
      }

      leaf-list compatible-versions {
        type oc-cat-types:module-version-type;
        description
          "A list of semantic version specification of the versions
        of the specified module or release bundle which are
        compatible when building this version of the bundle.

        Version specifications may be added when changes are made
        to a module within a bundle, and this does not affect the
        interaction between it and other modules. It is expected
        that backwards compatible changes to an individual module or
        member bundle do not affect the compatibility of that
        with other members, and hence wildcard matches are allowed
        within this list.";
      }
    }  // grouping release-bundle-member-config

    grouping release-bundle-member-top {
      description
        "Parameters relating to models within release bundles";
      container members {
        description
          "List of bundle members which make up this release bundle. A
        member is defined as an individual YANG module specified
        in the YANG catalogue, or another release
        bundle which can be used to group multiple YANG
        models together.";
        list member {
          key "id";
          description
            "A set of modules or bundles which are part of the bundle
          of models. For example, if 'ietf-yang-types' were to be
          specified within the bundle, then this would refer to the
          individual entry within the module catalogue. If the type
          of the entry is set to bundle, then for example,
          openconfig-bgp could be referenced - which itself consists
          of separate modules.";
          uses release-bundle-member-config;
        }  // list member
      }  // container members
    }  // grouping release-bundle-member-top

    grouping release-bundle-top {
      description
        "Top-level container for a release bundle";
      container release-bundles {
        description
          "List of release bundles";
        list release-bundle {
          key "name version";
          description
            "List of release bundles - sets of modules and/or
          bundles which are interoperable";
          uses catalog-module-common-config;

          uses release-bundle-member-top;
        }  // list release-bundle
      }  // container release-bundles
    }  // grouping release-bundle-top

    grouping feature-bundle-release-config {
      description
        "Data definitions to identify the release bundle that the
      feature bundle is based on.";
      leaf name {
        type leafref {
          path
            "../../../../release-bundles/release-bundle/name";
        }
        description
          "Reference to the name of the release bundle used for the
        feature paths.";
      }

      leaf version {
        type leafref {
          path
            "../../../../release-bundles/"
              + "release-bundle[name=current()/../name]/version";
        }
        description
          "Reference to the release bundle version used for the
        feature paths";
      }

      leaf publisher {
        type leafref {
          path
            "../../../../release-bundles/"
              + "release-bundle[name=current()/../name]/publisher";
        }
        description
          "Reference to the publisher of the release bundle used for
        the feature paths";
      }
    }  // grouping feature-bundle-release-config

    grouping feature-bundle-release-top {
      description
        "Top-level grouping for data about the release bundle used
      to specify the feature bundle";
      container release-bundle {
        description
          "Data to identify the release bundle from which the feature
        paths should be specified.  If the feature crosses
        release bundles, a new release bundle should be
        created to support the feature bundle.";
        leaf name {
          type leafref {
            path
              "../../../../../../organizations/"
                + "organization[name=current()/../publisher]/"
                + "release-bundles/release-bundle/name";
          }
          description
            "Name of the module set which is included in this bundle -
          for example, 'openconfig-bgp'";
        }

        leaf publisher {
          type leafref {
            path
              "../../../../../../organizations/organization/"
                + "name";
          }
          description
            "Reference to the name of the publishing organization";
        }

        leaf version {
          type oc-cat-types:module-version-type;
          description
            "Version of the referenced release bundle";
        }
      }  // container release-bundle
    }  // grouping feature-bundle-release-top

    grouping feature-bundle-config {
      description
        "Data definitions for the feature bundle";
      uses catalog-module-common-config;

      leaf-list path {
        type string;
        description
          "The list of schema paths included in the feature.  The
        paths specify subtrees, i.e., all data underneath the
        specified path are included in the feature.";
      }
    }  // grouping feature-bundle-config

    grouping feature-bundle-feature-config {
      description
        "Data definitions for included feature bundles";
      uses feature-bundle-included-reference;
    }  // grouping feature-bundle-feature-config

    grouping feature-bundle-feature-top {
      description
        "Top level grouping for the list of included feature
      bundles";
      container feature-bundles {
        description
          "Enclosing container for the list of included feature
        bundles.  Feature bundles may be composed from other
        smaller feature units";
        list feature-bundle {
          key "name";
          description
            "The list of feature bundles included in the current
          feature bundle.";
          uses feature-bundle-feature-config;
        }  // list feature-bundle
      }  // container feature-bundles
    }  // grouping feature-bundle-feature-top

    grouping feature-bundle-top {
      description
        "Top-level grouping for OpenConfig feature bundles";
      container feature-bundles {
        description
          "Enclosing container for the list of feature bundles";
        list feature-bundle {
          key "name version";
          description
            "List of feature bundles";
          uses feature-bundle-config;

          uses feature-bundle-release-top;

          uses feature-bundle-feature-top;
        }  // list feature-bundle
      }  // container feature-bundles
    }  // grouping feature-bundle-top

    grouping catalog-module-top {
      description
        "Top level structure of the module catalog";
      container modules {
        description
          "Modules published by this organization";
        list module {
          key "name version";
          description
            "List of published modules from the organization";
          uses catalog-module-common-config;

          uses catalog-module-base-config;

          uses catalog-module-classification-top;

          uses catalog-module-dependency-top;

          uses catalog-module-access-top;

          uses catalog-module-submodule-top;
        }  // list module
      }  // container modules
    }  // grouping catalog-module-top

    grouping catalog-organization-config {
      description
        "Top level grouping for data related to an organization that
      publishes module, bundles, etc.";
      leaf name {
        type string;
        description
          "Name of the maintaining organization -- the name should be
        supplied in the official format used by the organization.
        Standards Body examples:
          IETF, IEEE, MEF, ONF, etc.
        Commercial entity examples:
          AT&T, Facebook, <Vendor>
        Name of industry forum examples:
          OpenConfig, OpenDaylight, ON.Lab";
      }

      leaf type {
        type identityref {
          base oc-cat-types:ORGANIZATION_TYPE;
        }
        description
          "Type of the publishing organization";
      }

      leaf contact {
        type string;
        description
          "Contact information for the publishing organization (web
        site, email address, etc.)";
      }
    }  // grouping catalog-organization-config

    grouping catalog-organization-top {
      description
        "Top level grouping for list of maintaining organizations";
      container organizations {
        description
          "List of organizations owning modules";
        list organization {
          key "name";
          description
            "List of organizations publishing YANG modules or
          module bundles";
          uses catalog-organization-config;

          uses catalog-module-top;

          uses release-bundle-top;

          uses feature-bundle-top;

          uses catalog-implementation-top;
        }  // list organization
      }  // container organizations
    }  // grouping catalog-organization-top

    grouping catalog-top {
      description
        "Top-level grouping for the YANG model catalog";
      uses catalog-organization-top;
    }  // grouping catalog-top

    uses catalog-top;
  }  // module openconfig-module-catalog

Summary

  
openconfig-module-catalog  
  
Organization OpenConfig working group
  
Module openconfig-module-catalog
Version 2017-03-08
File openconfig-module-catalog@2017-03-08.yang
  
Prefix oc-cat
Namespace http://openconfig.net/yang/module-catalog
  
Cooked /cookedmodules/openconfig-module-catalog/2017-03-08
YANG /src/openconfig-module-catalog@2017-03-08.yang
XSD /xsd/openconfig-module-catalog@2017-03-08.xsd
  
Abstract This module provides a schema for cataloging and descrbing YANG models published across various organizations. The catalog cont...
  
Contact
OpenConfig working group
www.openconfig.net
  
openconfig-module-catalog  
  
Organization OpenConfig working group
  
Module openconfig-module-catalog
Version 2017-05-01
File openconfig-module-catalog.yang
  
Prefix oc-cat
Namespace http://openconfig.net/yang/module-catalog
  
Cooked /cookedmodules/openconfig-module-catalog/2017-05-01
YANG /src/openconfig-module-catalog@2017-05-01.yang
XSD /xsd/openconfig-module-catalog@2017-05-01.xsd
  
Abstract This module provides a schema for cataloging and descrbing YANG models published across various organizations. The catalog cont...
  
Contact
OpenConfig working group
www.openconfig.net

Description

 
openconfig-module-catalog
This module provides a schema for cataloging and descrbing
YANG models published across various organizations.  The catalog
contains several categories of data:

* organizations -- entities that publish and/or maintain
 individual YANG modules or groups of modules

* modules -- information regarding individual YANG modules,
 including their versions, dependencies, submodules, and how
 to access them

* release bundles -- groups of modules that are compatible and
 consistent with each other (as determined by the publisher of
 of the bundle).  The release bundle does not necessarily
 correspond to a functional area, e.g., it could the entire
 set of modules published by an organization

* feature bundles -- sets of schema paths across a
 release bundle that provide a specific set of functionality

* implementations -- information about available module and/or
 bundle implementations and their status
 
openconfig-module-catalog
This module provides a schema for cataloging and descrbing
YANG models published across various organizations.  The catalog
contains several categories of data:

* organizations -- entities that publish and/or maintain
 individual YANG modules or groups of modules

* modules -- information regarding individual YANG modules,
 including their versions, dependencies, submodules, and how
 to access them

* release bundles -- groups of modules that are compatible and
 consistent with each other (as determined by the publisher of
 of the bundle).  The release bundle does not necessarily
 correspond to a functional area, e.g., it could the entire
 set of modules published by an organization

* feature bundles -- sets of schema paths across a
 release bundle that provide a specific set of functionality

* implementations -- information about available module and/or
 bundle implementations and their status

Groupings

Grouping Objects Abstract
catalog-implementation-bundle-config name publisher version References to the feature bundles supported by an implementation
catalog-implementation-bundle-config name publisher version References to the feature bundles supported by an implementation
catalog-implementation-bundle-top feature-bundles Top-level grouping for the list of feature bundles supported by an implementation
catalog-implementation-bundle-top feature-bundles Top-level grouping for the list of feature bundles supported by an implementation
catalog-implementation-config id description reference platform platform-version status Data describing any available implementations
catalog-implementation-config id description reference platform platform-version status Data describing any available implementations
catalog-implementation-top implementations Top level grouping for information on model implementations
catalog-implementation-top implementations Top level grouping for information on model implementations
catalog-module-access-config uri md5-hash Data pertaining to retrieval and usage of the module
catalog-module-access-config uri md5-hash Data pertaining to retrieval and usage of the module
catalog-module-access-top access Top level groupig for data related to accessing a module or submodule
catalog-module-access-top access Top level groupig for data related to accessing a module or submodule
catalog-module-base-config namespace prefix revision summary Basic information describing the module, e.g., the YANG metadata in the module preface.
catalog-module-base-config namespace prefix revision summary Basic information describing the module, e.g., the YANG metadata in the module preface.
catalog-module-classification-config category subcategory deployment-status Data describing the module's classification(s)
catalog-module-classification-config category subcategory deployment-status Data describing the module's classification(s)
catalog-module-classification-top classification Data definitions related to module classfications
catalog-module-classification-top classification Data definitions related to module classfications
catalog-module-common-config name version Data definitions common for both bundles and standalone modules
catalog-module-common-config name version Data definitions common for both bundles and standalone modules
catalog-module-dependency-config required-module Information about module dependencies
catalog-module-dependency-config required-module Information about module dependencies
catalog-module-dependency-top dependencies Top-level grouping for module dependency data
catalog-module-dependency-top dependencies Top-level grouping for module dependency data
catalog-module-submodule-config name Data definitions for submodules belonging to a module
catalog-module-submodule-config name Data definitions for submodules belonging to a module
catalog-module-submodule-top submodules Top-level grouping for submodule information
catalog-module-submodule-top submodules Top-level grouping for submodule information
catalog-module-top modules Top level structure of the module catalog
catalog-module-top modules Top level structure of the module catalog
catalog-organization-config name type contact Top level grouping for data related to an organization that publishes module, bundles, etc.
catalog-organization-config name type contact Top level grouping for data related to an organization that publishes module, bundles, etc.
catalog-organization-top organizations Top level grouping for list of maintaining organizations
catalog-organization-top organizations Top level grouping for list of maintaining organizations
catalog-top organizations Top-level grouping for the YANG model catalog
catalog-top organizations Top-level grouping for the YANG model catalog
feature-bundle-config name versionpath Data definitions for the feature bundle
feature-bundle-config name versionpath Data definitions for the feature bundle
feature-bundle-feature-config name publisher version Data definitions for included feature bundles
feature-bundle-feature-config name publisher version Data definitions for included feature bundles
feature-bundle-feature-top feature-bundles Top level grouping for the list of included feature bundles
feature-bundle-feature-top feature-bundles Top level grouping for the list of included feature bundles
feature-bundle-included-reference name publisher version References to the included feature bundles
feature-bundle-included-reference name publisher version References to the included feature bundles
feature-bundle-release-config name version publisher Data definitions to identify the release bundle that the feature bundle is based on.
feature-bundle-release-config name version publisher Data definitions to identify the release bundle that the feature bundle is based on.
feature-bundle-release-top release-bundle Top-level grouping for data about the release bundle used to specify the feature bundle
feature-bundle-release-top release-bundle Top-level grouping for data about the release bundle used to specify the feature bundle
feature-bundle-top feature-bundles Top-level grouping for OpenConfig feature bundles
feature-bundle-top feature-bundles Top-level grouping for OpenConfig feature bundles
release-bundle-member-config id type module release-bundle publisher compatible-versions Data for each member of a bundle
release-bundle-member-config id type module release-bundle publisher compatible-versions Data for each member of a bundle
release-bundle-member-top members Parameters relating to models within release bundles
release-bundle-member-top members Parameters relating to models within release bundles
release-bundle-top release-bundles Top-level container for a release bundle
release-bundle-top release-bundles Top-level container for a release bundle

Objects

Type Key
Mandatory config
Optional config
Not config
Object Type Abstract
organizations container List of organizations owning modules
organizations container List of organizations owning modules
   organization list List of organizations publishing YANG modules or module bundles
   organization list List of organizations publishing YANG modules or module bundles
      contact leaf Contact information for the publishing organization (web site, email address, etc.)
      contact leaf Contact information for the publishing organization (web site, email address, etc.)
      feature-bundles container Enclosing container for the list of feature bundles
      feature-bundles container Enclosing container for the list of feature bundles
         feature-bundle list List of feature bundles
         feature-bundle list List of feature bundles
            feature-bundles container Enclosing container for the list of included feature bundles. Feature bundles may be composed from other smaller feature units
            feature-bundles container Enclosing container for the list of included feature bundles. Feature bundles may be composed from other smaller feature units
               feature-bundle list The list of feature bundles included in the current feature bundle.
               feature-bundle list The list of feature bundles included in the current feature bundle.
                  name leaf Name of the referenced feature bundle
                  name leaf Name of the referenced feature bundle
                  publisher leaf Publisher of the referenced feature bundle
                  publisher leaf Publisher of the referenced feature bundle
                  version leaf Version of the referenced feature bundle
                  version leaf Version of the referenced feature bundle
            name leaf The name of the module or bundle. For modules, this should reflect the 'module' or 'submodule' statement in the YANG module file. For bundles, this is the canonical name for the overall bundle of modules which is to be released together. This name shoul...
            name leaf The name of the module or bundle. For modules, this should reflect the 'module' or 'submodule' statement in the YANG module file. For bundles, this is the canonical name for the overall bundle of modules which is to be released together. This name shoul...
            path leaf-list The list of schema paths included in the feature. The paths specify subtrees, i.e., all data underneath the specified path are included in the feature.
            path leaf-list The list of schema paths included in the feature. The paths specify subtrees, i.e., all data underneath the specified path are included in the feature.
            release-bundle container Data to identify the release bundle from which the feature paths should be specified. If the feature crosses release bundles, a new release bundle should be created to support the feature bundle.
            release-bundle container Data to identify the release bundle from which the feature paths should be specified. If the feature crosses release bundles, a new release bundle should be created to support the feature bundle.
               name leaf Name of the module set which is included in this bundle - for example, 'openconfig-bgp'
               name leaf Name of the module set which is included in this bundle - for example, 'openconfig-bgp'
               publisher leaf Reference to the name of the publishing organization
               publisher leaf Reference to the name of the publishing organization
               version leaf Version of the referenced release bundle
               version leaf Version of the referenced release bundle
            version leaf For individual modules, this is the version number, e.g., a semantic version. The version may be the same as the date indicated in the module revision statement. For bundles, this is a semantic version number for the overall bundle. This version is to b...
            version leaf For individual modules, this is the version number, e.g., a semantic version. The version may be the same as the date indicated in the module revision statement. For bundles, this is a semantic version number for the overall bundle. This version is to b...
      implementations container Container for module implementation information
      implementations container Container for module implementation information
         implementation list List of available implementations, keyed by an identifier provided by either the implementor or the module maintainer. Such a key avoids needing a complex composite key to uniquely identify an implementation.
         implementation list List of available implementations, keyed by an identifier provided by either the implementor or the module maintainer. Such a key avoids needing a complex composite key to uniquely identify an implementation.
            description leaf A text summary of important information about the implementation
            description leaf A text summary of important information about the implementation
            feature-bundles container Enclosing container for the list of feature bundles
            feature-bundles container Enclosing container for the list of feature bundles
               feature-bundle list List of feature bundles supported by the implementation
               feature-bundle list List of feature bundles supported by the implementation
                  name leaf Name of the referenced feature bundle
                  name leaf Name of the referenced feature bundle
                  publisher leaf Publisher of the referenced feature bundle
                  publisher leaf Publisher of the referenced feature bundle
                  version leaf Version of the referenced feature bundle
                  version leaf Version of the referenced feature bundle
            id leaf An identifier for the implementation, provided by the implementor. This id should uniquely identify a specific implementation of the module, e.g., based on the vendor, platform, and platform version.
            id leaf An identifier for the implementation, provided by the implementor. This id should uniquely identify a specific implementation of the module, e.g., based on the vendor, platform, and platform version.
            platform leaf Name of the platform on which the implementation is available -- this could be the model name of a network device, a server OS, etc.
            platform leaf Name of the platform on which the implementation is available -- this could be the model name of a network device, a server OS, etc.
            platform-version leaf Implementor-defined version name or number of the module implementation, corresponding to the platform. This could be the firmware version of a network device such as a router, OS version, or other server platform version.
            platform-version leaf Implementor-defined version name or number of the module implementation, corresponding to the platform. This could be the firmware version of a network device such as a router, OS version, or other server platform version.
            reference leaf A URI (preferred) or text reference to more detailed information about the implementation.
            reference leaf A URI (preferred) or text reference to more detailed information about the implementation.
            status leaf Indicates the status of the implementation, e.g., complete, partial, in-progress, etc. Implementors may define additional values for the base identity
            status leaf Indicates the status of the implementation, e.g., complete, partial, in-progress, etc. Implementors may define additional values for the base identity
      modules container Modules published by this organization
      modules container Modules published by this organization
         module list List of published modules from the organization
         module list List of published modules from the organization
            access container Container for data pertaining to retrieval and usage of the module
            access container Container for data pertaining to retrieval and usage of the module
               md5-hash leaf Optional MD5 hash of the module file. If specified, the hash may be used by users to validate data integrity
               md5-hash leaf Optional MD5 hash of the module file. If specified, the hash may be used by users to validate data integrity
               uri leaf URI where module can be downloaded. Modules may be made available from the catalog maintainer, or directly from the publisher
               uri leaf URI where module can be downloaded. Modules may be made available from the catalog maintainer, or directly from the publisher
            classification container Container for data describing the module's classification
            classification container Container for data describing the module's classification
               category leaf Categorization of the module based on identities defined or used by the publishing organizations.
               category leaf Categorization of the module based on identities defined or used by the publishing organizations.
               deployment-status leaf Deployment status of the module -- experimental, standards-track, production, etc.
               deployment-status leaf Deployment status of the module -- experimental, standards-track, production, etc.
               subcategory leaf Sub-categorization of the module based on identities defined or used by the publishing organizations.
               subcategory leaf Sub-categorization of the module based on identities defined or used by the publishing organizations.
            dependencies container Data about dependencies of the module
            dependencies container Data about dependencies of the module
               required-module leaf-list List of references to modules that are imported by the current module. This list should reflect all of the 'import' statements in the module.
               required-module leaf-list List of names of modules that are imported by the current module. This list should reflect all of the 'import' statements in the module. Release bundles should be used to indicate which versions of the imported module are used (or are compatible) with t...
            name leaf The name of the module or bundle. For modules, this should reflect the 'module' or 'submodule' statement in the YANG module file. For bundles, this is the canonical name for the overall bundle of modules which is to be released together. This name shoul...
            name leaf The name of the module or bundle. For modules, this should reflect the 'module' or 'submodule' statement in the YANG module file. For bundles, this is the canonical name for the overall bundle of modules which is to be released together. This name shoul...
            namespace leaf Published namespace of module, i.e., defined by the 'namespace'
            namespace leaf Published namespace of module, i.e., defined by the 'namespace'
            prefix leaf Published prefix of the module
            prefix leaf Published prefix of the module
            revision leaf Date in the revision statement of the module
            revision leaf Date in the revision statement of the module
            submodules container Data for the submodules belonging to a submodule. If the module does not have any submodules, this container should be empty.
            submodules container Data for the submodules belonging to a submodule. If the module does not have any submodules, this container should be empty.
               submodule list List of submodules included by a module. All submodules specified by 'include' statements in the module should be included in this list.
               submodule list List of submodules included by a module. All submodules specified by 'include' statements in the module should be included in this list.
                  access container Container for data pertaining to retrieval and usage of the module
                  access container Container for data pertaining to retrieval and usage of the module
                     md5-hash leaf Optional MD5 hash of the module file. If specified, the hash may be used by users to validate data integrity
                     md5-hash leaf Optional MD5 hash of the module file. If specified, the hash may be used by users to validate data integrity
                     uri leaf URI where module can be downloaded. Modules may be made available from the catalog maintainer, or directly from the publisher
                     uri leaf URI where module can be downloaded. Modules may be made available from the catalog maintainer, or directly from the publisher
                  name leaf Name of the submodule as indicated by its top-level 'submodule' statement
                  name leaf Name of the submodule as indicated by its top-level 'submodule' statement
            summary leaf Summary description of the module
            summary leaf Summary description of the module
            version leaf For individual modules, this is the version number, e.g., a semantic version. The version may be the same as the date indicated in the module revision statement. For bundles, this is a semantic version number for the overall bundle. This version is to b...
            version leaf For individual modules, this is the version number, e.g., a semantic version. The version may be the same as the date indicated in the module revision statement. For bundles, this is a semantic version number for the overall bundle. This version is to b...
      name leaf Name of the maintaining organization -- the name should be supplied in the official format used by the organization. Standards Body examples: IETF, IEEE, MEF, ONF, etc. Commercial entity examples: AT&T, Facebook, <Vendor> Name of industry forum examples...
      name leaf Name of the maintaining organization -- the name should be supplied in the official format used by the organization. Standards Body examples: IETF, IEEE, MEF, ONF, etc. Commercial entity examples: AT&T, Facebook, <Vendor> Name of industry forum examples...
      release-bundles container List of release bundles
      release-bundles container List of release bundles
         release-bundle list List of release bundles - sets of modules and/or bundles which are interoperable
         release-bundle list List of release bundles - sets of modules and/or bundles which are interoperable
            members container List of bundle members which make up this release bundle. A member is defined as an individual YANG module specified in the YANG catalogue, or another release bundle which can be used to group multiple YANG models together.
            members container List of bundle members which make up this release bundle. A member is defined as an individual YANG module specified in the YANG catalogue, or another release bundle which can be used to group multiple YANG models together.
               member list A set of modules or bundles which are part of the bundle of models. For example, if 'ietf-yang-types' were to be specified within the bundle, then this would refer to the individual entry within the module catalogue. If the type of the entry is set to bun...
               member list A set of modules or bundles which are part of the bundle of models. For example, if 'ietf-yang-types' were to be specified within the bundle, then this would refer to the individual entry within the module catalogue. If the type of the entry is set to bun...
                  compatible-versions leaf-list A list of semantic version specification of the versions of the specified module or release bundle which are compatible when building this version of the bundle. Version specifications may be added when changes are made to a module within a bundle, and t...
                  compatible-versions leaf-list A list of semantic version specification of the versions of the specified module or release bundle which are compatible when building this version of the bundle. Version specifications may be added when changes are made to a module within a bundle, and t...
                  id leaf Identifier for the bundle member
                  id leaf Identifier for the bundle member
                  module leaf Name of the module set which is included in this bundle - for example, 'openconfig-bgp'
                  module leaf Name of the module set which is included in this bundle - for example, 'openconfig-bgp'
                  publisher leaf Reference to the name of the publishing organization
                  publisher leaf Reference to the name of the publishing organization
                  release-bundle leaf Name of the module set which is included in this bundle - for example, 'openconfig-bgp'
                  release-bundle leaf Name of the module set which is included in this bundle - for example, 'openconfig-bgp'
                  type leaf The type of member that is to be included within the release bundle. Release bundles may include modules and other release bundles. Both member modules and member bundles should specify the list of compatible versions.
                  type leaf The type of member that is to be included within the release bundle. Release bundles may include modules and other release bundles. Both member modules and member bundles should specify the list of compatible versions.
            name leaf The name of the module or bundle. For modules, this should reflect the 'module' or 'submodule' statement in the YANG module file. For bundles, this is the canonical name for the overall bundle of modules which is to be released together. This name shoul...
            name leaf The name of the module or bundle. For modules, this should reflect the 'module' or 'submodule' statement in the YANG module file. For bundles, this is the canonical name for the overall bundle of modules which is to be released together. This name shoul...
            version leaf For individual modules, this is the version number, e.g., a semantic version. The version may be the same as the date indicated in the module revision statement. For bundles, this is a semantic version number for the overall bundle. This version is to b...
            version leaf For individual modules, this is the version number, e.g., a semantic version. The version may be the same as the date indicated in the module revision statement. For bundles, this is a semantic version number for the overall bundle. This version is to b...
      type leaf Type of the publishing organization
      type leaf Type of the publishing organization