This module can be used to build network features using published YANG Models.
Version: 2016-02-25
module openconfig-release-bundle { yang-version 1; namespace "http://openconfig.net/yang/release-bundle"; prefix oc-relbundle; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module can be used to build network features using published YANG Models."; revision "2016-02-25" { description "Initial OpenConfig public release"; reference "0.1.0"; } oc-ext:openconfig-version "0.1.0"; identity MODEL_TYPE { description "A base identity used to reference the type of model that is specified in a feature bundle"; } identity MODULE { base MODEL_TYPE; description "The model consists of a single entry within the YANG catalogue"; } identity BUNDLE { base MODEL_TYPE; description "The model entry refers to another bundle within the YANG release bundle catalogue"; } grouping release-bundle-common { description "Common characteristics of a release bundle"; leaf name { type string; description "A canonical name for the overall bundle which is to be released together. This name is consistent over multiple releases"; } leaf version { type string { pattern "[0-9]+\.[0-9]+\.[0-9]+"; } description "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 hence is of the form x.y.z, where x is the major version, y is the minor version, and z is the patch level"; } } // grouping release-bundle-common grouping release-bundle-models { description "Parameters relating to models within release bundles"; container models { description "List of models which make up this release bundle. A model is defined as an individual YANG module as specified in the YANG catalogue, or another release bundle - which can be used to group multiple YANG models together."; list model { key "name"; 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."; leaf name { type string; description "Name of the module set which is included in this bundle - for example, 'openconfig-bgp'"; } leaf-list compatible-versions { type string { pattern "[0-9\*]+\.[0-9\*]+\.[0-9\*]+"; } description "A list of semantic version specification of the versions of the specified module which can be considered to be 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. In general, it is expected that backwards compatible changes to an individual module do not affect the compatibility of that module with other modules, and hence wildcard matches are allowed within the list."; } leaf type { type identityref { base MODEL_TYPE; } description "The type of model that is to be included within the feature bundle. When this value is set to MODULE then the entry can be directly looked up in the YANG catalog, whereas when it is set to BUNDLE the entry must be looked up for another bundle."; } leaf bundle { when "../type = 'BUNDLE'" { description "Specify the bundle name only when the type is equal to BUNDLE"; } type leafref { path "../name"; } description "A reference to other bundles which are included within this bundle."; } leaf module { when "../type = 'MODULE'" { description "Specify the module name only when the type is equal to MODULE"; } type leafref { path "../../../../../modules/module/name"; } description "A reference to modules that are included within the bundle"; } } // list model } // container models } // grouping release-bundle-models 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 which are commonly inter-operable"; uses release-bundle-common; uses release-bundle-models; } // list release-bundle } // container release-bundles } // grouping release-bundle-top } // module openconfig-release-bundle
© 2023 YumaWorks, Inc. All rights reserved.