195 lines
5.7 KiB
YANG
195 lines
5.7 KiB
YANG
module yang {
|
|
namespace "urn:ietf:params:xml:ns:yang:1";
|
|
prefix yang;
|
|
yang-version 1.1;
|
|
|
|
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>
|
|
Author: Michal Vasko <mvasko@cesnet.cz>";
|
|
|
|
description
|
|
"This is a dummy module with no data formally supplying the definitions
|
|
of various metadata defined in RFC 6020 and RFC 7950. There are
|
|
additional metadata used in libyang diff data format.";
|
|
|
|
revision 2022-06-16 {
|
|
description
|
|
"Added typedef for key metadata type.";
|
|
}
|
|
|
|
revision 2021-04-07 {
|
|
description
|
|
"Added metadata for key-less list and state leaf-list diff.";
|
|
}
|
|
|
|
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)";
|
|
}
|
|
|
|
typedef instance-identifier-keys {
|
|
type string;
|
|
reference "RFC7950 section 7.8.6.";
|
|
description
|
|
"The key predicates of the full instance-identifier built-in type.";
|
|
}
|
|
|
|
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, this 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, this 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 union {
|
|
type empty;
|
|
type instance-identifier-keys;
|
|
}
|
|
reference "RFC7950 section 7.8.6.";
|
|
description
|
|
"In user ordered list, this 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 position {
|
|
type union {
|
|
type empty;
|
|
type uint32 {
|
|
range 1..max;
|
|
}
|
|
}
|
|
description
|
|
"In key-less list or state leaf-list, this attribute must be used if
|
|
the attribute insert is used and specifies the instance position
|
|
before/after which 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', 'value', or 'position'
|
|
metadata defined. It specifies the preceding instance.
|
|
In case the value of this metadata is empty, the node was
|
|
created/moved on the first 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. Alternatively, its meaning
|
|
is the same as the \"value\" attribute but identifies the original
|
|
leaf-list instance rather than the new one.";
|
|
}
|
|
|
|
md:annotation orig-key {
|
|
type union {
|
|
type empty;
|
|
type instance-identifier-keys;
|
|
}
|
|
description
|
|
"Its meaning is the same as the \"key\" attribute but identifies
|
|
the original list instance rather than the new one.";
|
|
}
|
|
|
|
md:annotation orig-position {
|
|
type union {
|
|
type empty;
|
|
type uint32 {
|
|
range 1..max;
|
|
}
|
|
}
|
|
description
|
|
"Its meaning is the same as the \"position\" attribute but identifies
|
|
the original list instance rather than the new one.";
|
|
}
|
|
}
|