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: <http://tools.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) 2015 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 XXXX; see | |
the RFC itself for full legal notices."; | |
// RFC Ed.: replace XXXX with actual RFC number and remove this | |
// note. | |
// RFC Ed.: remove this note | |
// Note: extracted from draft-ietf-netconf-yang-library-01.txt | |
// RFC Ed.: update the date below with the date of RFC publication | |
// and remove this note. | |
revision 2015-07-03 { | |
description | |
"Initial revision."; | |
reference | |
"RFC XXXX: 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 { | |
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. | |
An empty 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 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."; | |
} | |
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. | |
If the deviation module is available for download | |
from the server then a 'module' entry for that module | |
will exist, with the same name and revision values. | |
The 'conformance' value will be 'implement' for | |
the deviation module."; | |
uses common-leafs; | |
} | |
leaf conformance { | |
type enumeration { | |
enum implement { | |
description | |
"Indicates 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 1.1 modules, there MUST NOT be more than | |
one module entry for a particular module name. | |
For YANG 1.0 modules, there SHOULD NOT be more than | |
one module entry for a particular module name."; | |
} | |
enum import { | |
description | |
"Indicates 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. | |
For import statements that do not specify a revision | |
date, the most recent revision in the library SHOULD | |
be used by the server."; | |
} | |
} | |
mandatory true; | |
description | |
"Indicates the type of conformance the server is claiming | |
for the YANG module identified by this entry."; | |
} | |
container submodules { | |
description | |
"Contains information about all the submodules used | |
by the parent module entry"; | |
list submodule { | |
key "name revision"; | |
description | |
"Each entry represents one submodule within the | |
parent module."; | |
uses common-leafs; | |
uses schema-leaf; | |
} | |
} | |
} // list module | |
} // grouping module | |
container modules { | |
config false; | |
description | |
"Contains YANG module monitoring information."; | |
leaf module-set-id { | |
type string; | |
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; | |
} | |
} |