blob: 7e596b122a32e2425daf3ec39e7f58201fdbef91 [file] [log] [blame]
module yang {
namespace "urn:ietf:params:xml:ns:yang:1";
prefix yang;
import ietf-yang-metadata {
prefix md;
revision-date 2016-08-05;
}
organization
"libyang";
contact
"Web: <https://github.com/CESNET/libyang/>
Author: Radek Krejci <rkrejci@cesnet.cz>";
description
"This is a kind of fake model with no data, typedefs or anything
else. libyang uses this module to implement various YANG attributes
defined in RFC 6020.";
revision 2020-06-17 {
description
"Added metadata for diff.";
}
revision 2017-02-20 {
description
"Added metadata for NETCONF's edit-config manipulation with ordered
lists and leaf-lists.";
reference
"RFC 7950: The YANG 1.1 Data Modeling Language";
}
revision 2016-02-11 {
description
"Initial revision";
reference
"RFC 6020: YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)";
}
md:annotation insert {
type enumeration {
enum first;
enum last;
enum before;
enum after;
}
reference "RFC7950 section 7.8.6. and section 7.7.9.";
description
"In user ordered leaf-list, the attribute can be used to control
where in the leaf-list the entry is inserted. It can be used during
the NETCONF <edit-config> \"create\" operations to insert a new list or
leaf-list entry, or during \"merge\" or \"replace\" operations to insert
a new list or leaf-list entry or move an existing one.
If the value is \"before\" or \"after\", the \"value\"/\"key\" attribute
MUST also be used to specify an existing entry in the list or leaf-list.
If no \"insert\" attribute is present in the \"create\" operation, it
defaults to \"last\".";
}
md:annotation value {
type string;
reference "RFC7950 section 7.7.9.";
description
"In user ordered leaf-list, the attribute must be used if the attribute
insert is used and specifies before/after which existing instance the
new instance should be inserted.";
}
md:annotation key {
type string;
reference "RFC7950 section 7.8.6.";
description
"In user ordered list, the attribute must be used if the attribute
insert is used and specifies before/after which existing instance the
new instance should be inserted.";
}
md:annotation operation {
type enumeration {
enum none {
description
"The node existed in both data trees but there is a nested node
with another operation. In case of a leaf, only its default
flag changed.";
}
enum create {
description
"The node did not exist in the first tree and was created in the
second tree.";
}
enum delete {
description
"The node existed in the first tree and was deleted in the second
tree.";
}
enum replace {
description
"The node value was changed or the node was moved for
leaves/anyxml/anydata and user-ordered lists/leaf-lists,
respectively.";
}
}
reference "RFC6241 section 7.2.";
description
"Operation of a node in a diff. If a node has no operation,
it is inherited from its nearest parent with an operation.
Top-level nodes must always have an operation.
User-ordered lists/leaf-lists with operation 'create' and
'replace' MUST also have the 'key' or 'value' metadata defined.
It specifies the succeeding instance. In case the value of
this metadata is empty, the node was created/moved on the
last position.
All the operations keep the meaning of edit-config operations
with similar names but some are further restricted, meaning
they are used for only a subset of use-cases.";
}
md:annotation orig-default {
type boolean;
description
"Information about the previous default state of the node.";
}
md:annotation orig-value {
type string;
description
"Previous value of a changed leaf. Alternatly, its meaning
is the same as \"value\" attribute but identifies the original
leaf-list instance rather than the new one.";
}
md:annotation orig-key {
type string;
description
"Its meaning is the same as \"key\" attribute but identifies
the original list instance rather than the new one.";
}
}