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.";
        }
    
        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.";
          }
    
          list module {
            key "name revision";
            description
              "Each entry represents one revision of one module
    currently supported by the server.";
            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.";
            }
    
            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.";
            }
    
            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.";
              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.";
              }
            }  // 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.";
              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.";
              }
    
              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.";
              }
            }  // list submodule
          }  // list module
        }  // 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.