242 lines
No EOL
6.9 KiB
YANG
242 lines
No EOL
6.9 KiB
YANG
module ietf-yang-library {
|
|
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.";
|
|
}
|
|
|
|
/*
|
|
* Typedefs
|
|
*/
|
|
|
|
typedef revision-identifier {
|
|
type string {
|
|
pattern '\d{4}-\d{2}-\d{2}';
|
|
}
|
|
description
|
|
"Represents a specific date in YYYY-MM-DD format.";
|
|
}
|
|
|
|
/*
|
|
* Groupings
|
|
*/
|
|
|
|
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 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.";
|
|
}
|
|
}
|
|
|
|
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;
|
|
}
|
|
leaf conformance-type {
|
|
type enumeration {
|
|
enum implement {
|
|
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 {
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
* Operational state data nodes
|
|
*/
|
|
|
|
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;
|
|
}
|
|
|
|
/*
|
|
* Notifications
|
|
*/
|
|
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.";
|
|
}
|
|
}
|
|
} |