openconfig-release-bundle

This module can be used to build network features using published YANG Models.

  • Version: 2016-02-25

    openconfig-release-bundle@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.