ietf-yang-library

This module contains monitoring information about the YANG modules and submodules that are used within a YANG-based server. Cop...

  • Version: 2016-06-21

    ietf-yang-library@2016-06-21


    
      module ietf-yang-library {
    
        yang-version 1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-yang-library";
    
        prefix yanglib;
    
        import ietf-yang-types {
          prefix yang;
        }
        import ietf-inet-types {
          prefix inet;
        }
    
        organization
          "IETF NETCONF (Network Configuration) Working Group";
    
        contact
          "WG Web:   <https://datatracker.ietf.org/wg/netconf/>
         WG List:  <mailto:netconf@ietf.org>
    
         WG Chair: Mehmet Ersue
                   <mailto:mehmet.ersue@nsn.com>
    
         WG Chair: Mahesh Jethanandani
                   <mailto:mjethanandani@gmail.com>
    
         Editor:   Andy Bierman
                   <mailto:andy@yumaworks.com>
    
         Editor:   Martin Bjorklund
                   <mailto:mbj@tail-f.com>
    
         Editor:   Kent Watsen
                   <mailto:kwatsen@juniper.net>";
    
        description
          "This module contains monitoring information about the YANG
         modules and submodules that are used within a YANG-based
         server.
    
         Copyright (c) 2016 IETF Trust and the persons identified as
         authors of the code.  All rights reserved.
    
         Redistribution and use in source and binary forms, with or
         without modification, is permitted pursuant to, and subject
         to the license terms contained in, the Simplified BSD License
         set forth in Section 4.c of the IETF Trust's Legal Provisions
         Relating to IETF Documents
         (http://trustee.ietf.org/license-info).
    
         This version of this YANG module is part of RFC 7895; see
         the RFC itself for full legal notices.";
    
        revision "2016-06-21" {
          description "Initial revision.";
          reference
            "RFC 7895: YANG Module Library.";
    
        }
    
    
        typedef revision-identifier {
          type string {
            pattern '\d{4}-\d{2}-\d{2}';
          }
          description
            "Represents a specific date in YYYY-MM-DD format.";
        }
    
        grouping module-list {
          description
            "The module data structure is represented as a grouping
           so it can be reused in configuration or another monitoring
           data structure.";
          grouping common-leafs {
            description
              "Common parameters for YANG modules and submodules.";
            leaf name {
              type yang:yang-identifier;
              description
                "The YANG module or submodule name.";
            }
    
            leaf revision {
              type union {
                type revision-identifier;
                type string {
                  length "0";
                }
              }
              description
                "The YANG module or submodule revision date.
               A zero-length string is used if no revision statement
               is present in the YANG module or submodule.";
            }
          }  // grouping common-leafs
    
          grouping schema-leaf {
            description
              "Common schema leaf parameter for modules and submodules.";
            leaf schema {
              type inet:uri;
              description
                "Contains a URL that represents the YANG schema
               resource for this module or submodule.
    
               This leaf will only be present if there is a URL
               available for retrieval of the schema for this entry.";
            }
          }  // grouping schema-leaf
          list module {
            key "name revision";
            description
              "Each entry represents one revision of one module
             currently supported by the server.";
            uses common-leafs;
    
            uses schema-leaf;
    
            leaf namespace {
              type inet:uri;
              mandatory true;
              description
                "The XML namespace identifier for this module.";
            }
    
            leaf-list feature {
              type yang:yang-identifier;
              description
                "List of YANG feature names from this module that are
               supported by the server, regardless of whether they are
               defined in the module or any included submodule.";
            }
    
            list deviation {
              key "name revision";
              description
                "List of YANG deviation module names and revisions
               used by this server to modify the conformance of
               the module associated with this entry.  Note that
               the same module can be used for deviations for
               multiple modules, so the same entry MAY appear
               within multiple 'module' entries.
    
               The deviation module MUST be present in the 'module'
               list, with the same name and revision values.
               The 'conformance-type' value will be 'implement' for
               the deviation module.";
              uses common-leafs;
            }  // list deviation
    
            leaf conformance-type {
              type enumeration {
                enum "implement" {
                  value 0;
                  description
                    "Indicates that the server implements one or more
                   protocol-accessible objects defined in the YANG module
                   identified in this entry.  This includes deviation
                   statements defined in the module.
    
                   For YANG version 1.1 modules, there is at most one
                   module entry with conformance type 'implement' for a
                   particular module name, since YANG 1.1 requires that,
                   at most, one revision of a module is implemented.
    
                   For YANG version 1 modules, there SHOULD NOT be more
                   than one module entry for a particular module name.";
                }
                enum "import" {
                  value 1;
                  description
                    "Indicates that the server imports reusable definitions
                   from the specified revision of the module but does
                   not implement any protocol-accessible objects from
                   this revision.
    
                   Multiple module entries for the same module name MAY
                   exist.  This can occur if multiple modules import the
                   same module but specify different revision dates in
                   the import statements.";
                }
              }
              mandatory true;
              description
                "Indicates the type of conformance the server is claiming
               for the YANG module identified by this entry.";
            }
    
            list submodule {
              key "name revision";
              description
                "Each entry represents one submodule within the
               parent module.";
              uses common-leafs;
    
              uses schema-leaf;
            }  // list submodule
          }  // list module
        }  // grouping module-list
    
        container modules-state {
          config false;
          description
            "Contains YANG module monitoring information.";
          leaf module-set-id {
            type string;
            mandatory true;
            description
              "Contains a server-specific identifier representing
             the current set of modules and submodules.  The
             server MUST change the value of this leaf if the
             information represented by the 'module' list instances
             has changed.";
          }
    
          uses module-list;
        }  // container modules-state
    
        notification yang-library-change {
          description
            "Generated when the set of modules and submodules supported
           by the server has changed.";
          leaf module-set-id {
            type leafref {
              path "/yanglib:modules-state/yanglib:module-set-id";
            }
            mandatory true;
            description
              "Contains the module-set-id value representing the
             set of modules and submodules supported at the server at
             the time the notification is generated.";
          }
        }  // notification yang-library-change
      }  // module ietf-yang-library
    

© 2023 YumaWorks, Inc. All rights reserved.