openconfig-catalog-types

openconfig-version: 0.2.2

Description

This module defines types and identities used by the OpenConfig YANG module catalog model.

Imports

openconfig-extensions

Defined types

module-version-type

description:
This type defines acceptable formats for the version of a module. The version may be a semantic version, or a YANG revision statement date, and may include wildcards when included in a bundle compatibility list, e.g.: semver format: .. examples: 0.1.0, 2.1.0, 1.1.*, 2.*.* revision format: YYYY-MM-DD example: 2016-11-31

type: string

Identities

base: CATALOG_MEMBER_TYPE

description:
Base identity for elements in the catalog

MODULE

description:
Module elements in the catalog

base identity: CATALOG_MEMBER_TYPE

RELEASE_BUNDLE

description:
Release bundle elements in the catalog

base identity: CATALOG_MEMBER_TYPE

FEATURE_BUNDLE

description:
Feature bundle elements in the catalog

base identity: CATALOG_MEMBER_TYPE

base: IMPLEMENTATION_STATUS_TYPE

description:
Indications of the status of a module's implementation on a device or server

IN_PROGRESS

description:
Implementation is in progress

base identity: IMPLEMENTATION_STATUS_TYPE

PLANNED

description:
Implementation is planned

base identity: IMPLEMENTATION_STATUS_TYPE

COMPLETE

description:
Implementation is complete and fully supports the model

base identity: IMPLEMENTATION_STATUS_TYPE

PARTIAL

description:
Implementation is complete, but only supports the model partially

base identity: IMPLEMENTATION_STATUS_TYPE

base: MODULE_STATUS_TYPE

description:
Indicates the deployment status of the module

EXPERIMENTAL

description:
Module should be considered experimental, not deployed in production settings

base identity: MODULE_STATUS_TYPE

PRODUCTION

description:
Module is suitable for use in production, or has been deployed in production

base identity: MODULE_STATUS_TYPE

base: MODULE_CATEGORY_BASE

description:
Base identity for the module category. It is expected that publishing organizations will define additional derived identities to describe their categorization scheme.

IETF_MODEL_LAYER

description:
Describes layering of models based on their abstraction level as defined by IETF model classification proposals

base identity: MODULE_CATEGORY_BASE

base: MODULE_SUBCATEGORY_BASE

description:
Base identity for the module subcategory. It is expected that publishing organizations will define additional derived identities to describe their categorization scheme.

IETF_MODEL_TYPE

description:
IETF proposed classification dimension of YANG model types as standard YANG models, vendor-specific, or user-specific YANG models and extensions

base identity: MODULE_SUBCATEGORY_BASE

base: ORGANIZATION_TYPE

description:
Publishing organization type for the set of modules

STANDARDS

description:
Standards development organization (SDO) publisher type

base identity: ORGANIZATION_TYPE

INDUSTRY

description:
Industry forum or other industry group

base identity: ORGANIZATION_TYPE

COMMERCIAL

description:
Commercial entity, company, etc.

base identity: ORGANIZATION_TYPE

INDIVIDUAL

description:
For modules published by an individual

base identity: ORGANIZATION_TYPE

Data elements

openconfig-module-catalog

openconfig-version: 0.2.2

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

Imports

openconfig-inet-types
openconfig-catalog-types
openconfig-extensions

Data elements

/
organizations

description:
List of organizations owning modules

nodetype: container (rw)

/organizations/
organization

description:
List of organizations publishing YANG modules or module bundles

nodetype: list (rw)

list keys: [name]

/organizations/organization/
name

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, Name of industry forum examples: OpenConfig, OpenDaylight, ON.Lab

nodetype: leaf (list key) (rw)

type: string

/organizations/organization/
type

description:
Type of the publishing organization

nodetype: leaf (rw)

type: identityref

  • base: oc-cat-types:ORGANIZATION_TYPE

/organizations/organization/
contact

description:
Contact information for the publishing organization (web site, email address, etc.)

nodetype: leaf (rw)

type: string

/organizations/organization/
modules

description:
Modules published by this organization

nodetype: container (rw)

/organizations/organization/modules/
module

description:
List of published modules from the organization

nodetype: list (rw)

list keys: [name] [version]

/organizations/organization/modules/module/
name

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

nodetype: leaf (list key) (rw)

type: string

/organizations/organization/modules/module/
version

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

nodetype: leaf (list key) (rw)

type: oc-cat-types:module-version-type

/organizations/organization/modules/module/
namespace

description:
Published namespace of module, i.e., defined by the 'namespace'

nodetype: leaf (rw)

type: string

/organizations/organization/modules/module/
prefix

description:
Published prefix of the module

nodetype: leaf (rw)

type: string

/organizations/organization/modules/module/
revision

description:
Date in the revision statement of the module

nodetype: leaf (rw)

type: string

/organizations/organization/modules/module/
summary

description:
Summary description of the module

nodetype: leaf (rw)

type: string

/organizations/organization/modules/module/
classification

description:
Container for data describing the module's classification

nodetype: container (rw)

/organizations/organization/modules/module/classification/
category

description:
Categorization of the module based on identities defined or used by the publishing organizations.

nodetype: leaf (rw)

type: identityref

  • base: oc-cat-types:MODULE_CATEGORY_BASE

/organizations/organization/modules/module/classification/
subcategory

description:
Sub-categorization of the module based on identities defined or used by the publishing organizations.

nodetype: leaf (rw)

type: identityref

  • base: oc-cat-types:MODULE_SUBCATEGORY_BASE

/organizations/organization/modules/module/classification/
deployment-status

description:
Deployment status of the module -- experimental, standards-track, production, etc.

nodetype: leaf (rw)

type: identityref

  • base: oc-cat-types:MODULE_STATUS_TYPE

/organizations/organization/modules/module/
dependencies

description:
Data about dependencies of the module

nodetype: container (rw)

/organizations/organization/modules/module/dependencies/
required-module

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

nodetype: leaf-list (rw)

type: string

/organizations/organization/modules/module/
access

description:
Container for data pertaining to retrieval and usage of the module

nodetype: container (rw)

/organizations/organization/modules/module/access/
uri

description:
URI where module can be downloaded. Modules may be made available from the catalog maintainer, or directly from the publisher

nodetype: leaf (rw)

type: oc-inet:uri

/organizations/organization/modules/module/access/
md5-hash

description:
Optional MD5 hash of the module file. If specified, the hash may be used by users to validate data integrity

nodetype: leaf (rw)

type: string

/organizations/organization/modules/module/
submodules

description:
Data for the submodules belonging to a submodule. If the module does not have any submodules, this container should be empty.

nodetype: container (rw)

/organizations/organization/modules/module/submodules/
submodule

description:
List of submodules included by a module. All submodules specified by 'include' statements in the module should be included in this list.

nodetype: list (rw)

list keys: [name]

/organizations/organization/modules/module/submodules/submodule/
name

description:
Name of the submodule as indicated by its top-level 'submodule' statement

nodetype: leaf (list key) (rw)

type: string

/organizations/organization/modules/module/submodules/submodule/
access

description:
Container for data pertaining to retrieval and usage of the module

nodetype: container (rw)

/organizations/organization/modules/module/submodules/submodule/access/
uri

description:
URI where module can be downloaded. Modules may be made available from the catalog maintainer, or directly from the publisher

nodetype: leaf (rw)

type: oc-inet:uri

/organizations/organization/modules/module/submodules/submodule/access/
md5-hash

description:
Optional MD5 hash of the module file. If specified, the hash may be used by users to validate data integrity

nodetype: leaf (rw)

type: string

/organizations/organization/
release-bundles

description:
List of release bundles

nodetype: container (rw)

/organizations/organization/release-bundles/
release-bundle

description:
List of release bundles - sets of modules and/or bundles which are interoperable

nodetype: list (rw)

list keys: [name] [version]

/organizations/organization/release-bundles/release-bundle/
name

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

nodetype: leaf (list key) (rw)

type: string

/organizations/organization/release-bundles/release-bundle/
version

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

nodetype: leaf (list key) (rw)

type: oc-cat-types:module-version-type

/organizations/organization/release-bundles/release-bundle/
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.

nodetype: container (rw)

/organizations/organization/release-bundles/release-bundle/members/
member

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.

nodetype: list (rw)

list keys: [id]

/organizations/organization/release-bundles/release-bundle/members/member/
id

description:
Identifier for the bundle member

nodetype: leaf (list key) (rw)

type: string

/organizations/organization/release-bundles/release-bundle/members/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.

nodetype: leaf (rw)

type: identityref

  • base: oc-cat-types:CATALOG_MEMBER_TYPE

/organizations/organization/release-bundles/release-bundle/members/member/
module

description:
Name of the module set which is included in this bundle - for example, 'openconfig-bgp'

nodetype: leaf (rw)

type: leafref

  • path reference: ../../../../../../../organizations/organization[name=current()/../publisher]/modules/module/name

/organizations/organization/release-bundles/release-bundle/members/member/
release-bundle

description:
Name of the module set which is included in this bundle - for example, 'openconfig-bgp'

nodetype: leaf (rw)

type: leafref

  • path reference: ../../../../../../../organizations/organization[name=current()/../publisher]/release-bundles/release-bundle/name

/organizations/organization/release-bundles/release-bundle/members/member/
publisher

description:
Reference to the name of the publishing organization

nodetype: leaf (rw)

type: leafref

  • path reference: ../../../../../../../organizations/organization/name

/organizations/organization/release-bundles/release-bundle/members/member/
compatible-versions

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.

nodetype: leaf-list (rw)

type: oc-cat-types:module-version-type

/organizations/organization/
feature-bundles

description:
Enclosing container for the list of feature bundles

nodetype: container (rw)

/organizations/organization/feature-bundles/
feature-bundle

description:
List of feature bundles

nodetype: list (rw)

list keys: [name] [version]

/organizations/organization/feature-bundles/feature-bundle/
name

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

nodetype: leaf (list key) (rw)

type: string

/organizations/organization/feature-bundles/feature-bundle/
version

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

nodetype: leaf (list key) (rw)

type: oc-cat-types:module-version-type

/organizations/organization/feature-bundles/feature-bundle/
path

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.

nodetype: leaf-list (rw)

type: string

/organizations/organization/feature-bundles/feature-bundle/
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.

nodetype: container (rw)

/organizations/organization/feature-bundles/feature-bundle/release-bundle/
name

description:
Name of the module set which is included in this bundle - for example, 'openconfig-bgp'

nodetype: leaf (rw)

type: leafref

  • path reference: ../../../../../../organizations/organization[name=current()/../publisher]/release-bundles/release-bundle/name

/organizations/organization/feature-bundles/feature-bundle/release-bundle/
publisher

description:
Reference to the name of the publishing organization

nodetype: leaf (rw)

type: leafref

  • path reference: ../../../../../../organizations/organization/name

/organizations/organization/feature-bundles/feature-bundle/release-bundle/
version

description:
Version of the referenced release bundle

nodetype: leaf (rw)

type: oc-cat-types:module-version-type

/organizations/organization/feature-bundles/feature-bundle/
feature-bundles

description:
Enclosing container for the list of included feature bundles. Feature bundles may be composed from other smaller feature units

nodetype: container (rw)

/organizations/organization/feature-bundles/feature-bundle/feature-bundles/
feature-bundle

description:
The list of feature bundles included in the current feature bundle.

nodetype: list (rw)

list keys: [name]

/organizations/organization/feature-bundles/feature-bundle/feature-bundles/feature-bundle/
name

description:
Name of the referenced feature bundle

nodetype: leaf (list key) (rw)

type: leafref

  • path reference: ../../../../../../../organizations/organization[name=current()/../publisher]/feature-bundles/feature-bundle/name

/organizations/organization/feature-bundles/feature-bundle/feature-bundles/feature-bundle/
publisher

description:
Publisher of the referenced feature bundle

nodetype: leaf (rw)

type: leafref

  • path reference: ../../../../../../../organizations/organization/name

/organizations/organization/feature-bundles/feature-bundle/feature-bundles/feature-bundle/
version

description:
Version of the referenced feature bundle

nodetype: leaf (rw)

type: oc-cat-types:module-version-type

/organizations/organization/
implementations

description:
Container for module implementation information

nodetype: container (rw)

/organizations/organization/implementations/
implementation

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.

nodetype: list (rw)

list keys: [id]

/organizations/organization/implementations/implementation/
id

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.

nodetype: leaf (list key) (rw)

type: string

/organizations/organization/implementations/implementation/
description

description:
A text summary of important information about the implementation

nodetype: leaf (rw)

type: string

/organizations/organization/implementations/implementation/
reference

description:
A URI (preferred) or text reference to more detailed information about the implementation.

nodetype: leaf (rw)

type: union

    type: oc-inet:uri

    type: string

/organizations/organization/implementations/implementation/
platform

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.

nodetype: leaf (rw)

type: string

/organizations/organization/implementations/implementation/
platform-version

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.

nodetype: leaf (rw)

type: string

/organizations/organization/implementations/implementation/
status

description:
Indicates the status of the implementation, e.g., complete, partial, in-progress, etc. Implementors may define additional values for the base identity

nodetype: leaf (rw)

type: identityref

  • base: oc-cat-types:IMPLEMENTATION_STATUS_TYPE

/organizations/organization/implementations/implementation/
feature-bundles

description:
Enclosing container for the list of feature bundles

nodetype: container (rw)

/organizations/organization/implementations/implementation/feature-bundles/
feature-bundle

description:
List of feature bundles supported by the implementation

nodetype: list (rw)

list keys: [name] [version]

/organizations/organization/implementations/implementation/feature-bundles/feature-bundle/
name

description:
Name of the referenced feature bundle

nodetype: leaf (list key) (rw)

type: leafref

  • path reference: ../../../../../../../organizations/organization[name=current()/../publisher]/feature-bundles/feature-bundle/name

/organizations/organization/implementations/implementation/feature-bundles/feature-bundle/
publisher

description:
Publisher of the referenced feature bundle

nodetype: leaf (rw)

type: leafref

  • path reference: ../../../../../../../organizations/organization/name

/organizations/organization/implementations/implementation/feature-bundles/feature-bundle/
version

description:
Version of the referenced feature bundle

nodetype: leaf (list key) (rw)

type: oc-cat-types:module-version-type