summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-module-catalog.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-module-catalog.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-module-catalog.yang786
1 files changed, 0 insertions, 786 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-module-catalog.yang b/src/plugins/yang/openconfig/openconfig-module-catalog.yang
deleted file mode 100644
index 673fe95..0000000
--- a/src/plugins/yang/openconfig/openconfig-module-catalog.yang
+++ /dev/null
@@ -1,786 +0,0 @@
-module openconfig-module-catalog {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/module-catalog";
-
- prefix "oc-cat";
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-catalog-types { prefix oc-cat-types; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- 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";
-
- oc-ext:openconfig-version "0.2.1";
-
- 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";
- }
-
-
-
- // grouping statements
-
- 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 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 catalog-implementation-bundle-config {
- description
- "References to the feature bundles supported by an
- implementation";
-
- uses feature-bundle-included-reference;
- }
-
- 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;
- }
- }
- }
-
- 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-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;
- }
- }
- }
-
- 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-top {
- description
- "Top-level grouping for module dependency data";
-
- container dependencies {
- description
- "Data about dependencies of the module";
-
- uses catalog-module-dependency-config;
- }
-
- }
-
- 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-top {
- description
- "Data definitions related to module classfications";
-
- container classification {
- description
- "Container for data describing the module's classification";
-
- uses catalog-module-classification-config;
- }
- }
-
- 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-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;
- }
- }
-
- 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-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;
- }
- }
- }
-
- 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 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-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;
-
- }
- }
- }
-
- 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;
- }
- }
- }
-
- 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-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";
- }
- }
- }
-
-
- 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-feature-config {
- description
- "Data definitions for included feature bundles";
-
- uses feature-bundle-included-reference;
- }
-
- 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;
- }
- }
-
- }
-
-
- 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;
- }
- }
- }
-
- 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;
- }
- }
- }
-
- 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-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;
- }
- }
- }
-
-
- grouping catalog-top {
- description
- "Top-level grouping for the YANG model catalog";
-
- uses catalog-organization-top;
- }
-
- // data definition statements
-
- uses catalog-top;
-
-}