/usr/share/yuma/modules/netconfcentral/yuma-ncx.yang is in libyuma-base 2.10-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 | module yuma-ncx {
namespace "http://netconfcentral.org/ns/yuma-ncx";
prefix "ncx";
organization "Netconf Central";
contact
"Andy Bierman <andy at netconfcentral.org>";
description
"This module contains definitions for Yuma Netconf extensions.
Some extensions are used to control yangdump translation
format. Some are used for CLI parsing in yangcli.
These elements may be present in appinfo elements,
used in YANG to XSD translation.";
revision 2012-01-13 {
description
"Added user-write extension.";
}
revision 2011-09-30 {
description
"Added default-parm-equals and sil-delete-children-first
extensions.";
}
revision 2009-12-21 {
description
"Moved secure and very-secure extensions to yuma-nacm.";
}
revision 2009-06-12 {
description
"Add sequence-id element for notifications";
}
revision 2009-04-10 {
description
"Removed rpc-type extension; use 'nacm:secure' instead";
}
revision 2008-08-23 {
description
"Added abstract extension. Marked all objects as abstract
so they will not be included in the NETCONF database.";
}
revision 2008-08-01 {
description
"Added password, hidden, xsdlist, and root extensions.";
}
revision 2008-04-16 {
description
"Added metadata and rpc-type extensions.";
}
revision 2008-03-21 {
description
"Added no-duplicates extension.";
}
revision 2008-02-21 {
description
"Initial revision.";
}
leaf belongs-to {
description
"Contains the module name value for a belongs-to-stmt.
Will be present in appinfo for a YANG submodule.";
type string;
ncx:abstract;
}
leaf case-name {
description
"Contains the identifier-str value for a YANG case name.
Will be present in appinfo for all choice case definitions.";
type string;
ncx:abstract;
}
leaf choice-name {
description
"Contains the identifier-str value for a YANG choice name.
Will be present in appinfo for all choice object definitions.";
type string;
ncx:abstract;
}
leaf config {
description
"Contains the value from the config-stmt.
Will be present in appinfo for top-level objects
or if config-stmt is present in the object definition.";
type boolean;
ncx:abstract;
}
leaf contact {
description
"Contains the value from the contact-stmt.
Will be present in appinfo for the module.
if defined in the module.";
type string;
ncx:abstract;
}
leaf default {
description
"Contains the value from the default-stmt.
Will be present in appinfo for a typedef that includes
a default-stmt.";
type string;
ncx:abstract;
}
leaf mandatory {
description
"Contains the value from the mandatory-stmt.
Will be present in appinfo if mandatory-stmt is
present in the object definition.";
type boolean;
ncx:abstract;
}
leaf min-elements {
description
"Contains the value from the min-elements-stmt.
Will be present in appinfo for a list or leaf-list
object, if the min-elements-stmt is present
in the object definition.";
type uint32;
ncx:abstract;
}
leaf max-elements {
description
"Contains the value from the max-elements-stmt.
Will be present in appinfo for a list or leaf-list
object, if the max-elements-stmt is present
in the object definition.";
type union {
type uint32;
type enumeration {
enum unbounded;
}
}
ncx:abstract;
}
container must {
presence "Indicates a must statement is configured.";
ncx:abstract;
description
"Contains the fields from one must-stmt. Will be present
in appinfo for each must-stmt defined within an object.";
leaf xpath {
description
"The xpath statement specifying the system conditions
that must be true for a valid configuration.";
type string;
mandatory true;
}
leaf description {
description
"Contains the description-stmt value from the must-stmt,
if present.";
type string;
}
uses reference;
leaf error-app-tag {
description
"Contains the error-app-tag-stmt value from the must-stmt,
if present.";
type string;
}
leaf error-message {
description
"Contains the error-message-stmt value from the must-stmt,
if present.";
type string;
}
}
leaf ordered-by {
description
"Contains the value from the ordered-by.
Will be present in appinfo for all list and leaf-list
object definitions.";
type enumeration {
enum system;
enum user;
}
ncx:abstract;
}
leaf organization {
description
"Contains the value from the organization-stmt.
Will be present in appinfo if oraganization-stmt is
present in the module.";
type string;
ncx:abstract;
}
leaf path {
description
"Contains the path-stmt Xpath expression value for a leafref.
Will be present in appinfo for all leafref typedefs, and
inline type-stmts for leafref leafs and leaf-lists.";
type string;
ncx:abstract;
}
leaf position {
description
"Contains the position-stmt value for a bit definition.
Will be present in appinfo for all 'bits' typedefs, and
inline type-stmts for leafs and leaf-lists.";
type uint32;
ncx:abstract;
}
grouping reference {
container reference {
ncx:abstract;
presence "Indicates a reference statement is configured.";
description
"Contains information from the reference-stmt. Will
be present in appinfo for objects which contain a
reference-stmt.";
leaf text {
description "Value from the reference-stmt.";
type string;
mandatory true;
}
leaf url {
description
"URL for the specified reference. Will be present
if the 'text' field begins with 'RFC xxxx' or 'draft-'";
type string;
}
}
}
uses reference;
container revision {
ncx:abstract;
presence "Indicates a revision statement is configured.";
description
"Contains the fields from one revision-stmt. Will be present
in appinfo for each revision-stmt defined within the module.";
leaf version {
description
"Contains the date string value from the revision-stmt.";
type string;
mandatory true;
ncx:abstract;
}
leaf description {
description
"Contains the description-stmt value from the revision-stmt.";
type string;
mandatory true;
ncx:abstract;
}
}
leaf rpc-output {
description
"Contains the XSD type name value for the RPC output data
for one RPC method. Will be present in appinfo for
all rpc definitions which contain an output-stmt.";
type string;
ncx:abstract;
}
leaf source {
description
"Contains the complete filespec of the source file used
for the XSD translation. Will be present in the appinfo
for the module header.";
type string;
ncx:abstract;
}
leaf units {
description
"Contains the units-stmt value for a type or leaf.
Will be present in appinfo for typedefs, and
inline type-stmts for leafs and leaf-lists,
which contain a units-stmt.";
type string;
ncx:abstract;
}
leaf value {
description
"Contains the value-stmt value for an enum definition.
Will be present in appinfo for all 'enumeration'
typedefs, and inline type-stmts for leafs and leaf-lists.";
type int32;
ncx:abstract;
}
// Internal objects for anyxml parsing
// every value node must be assigned an object template
// even within the anyxml implementation
anyxml any {
ncx:hidden;
ncx:abstract;
}
container struct {
ncx:hidden;
ncx:abstract;
}
leaf string {
type string;
ncx:hidden;
ncx:abstract;
}
leaf empty {
type empty;
ncx:hidden;
ncx:abstract;
}
container root {
ncx:hidden;
ncx:abstract;
ncx:root;
}
leaf binary {
type binary;
ncx:hidden;
ncx:abstract;
}
// NCX <error-info> extensions
leaf bad-value {
description
"Contains the value that was associated with the error.
Usually added to 'invalid-value' errors, but may be present
for other errors as well.";
type string;
ncx:abstract;
}
leaf error-number {
description
"Contains the internal error code associated with the error.
Added for all error types.";
type uint32 { range "1 .. max"; }
ncx:abstract;
}
// Netconf Central Extensions
extension abstract {
description
"Used with object definitions to indicate that they
do not represent CLI or NETCONF configuration database
data instances. Instead, the node is simply an object
identifier, an 'error-info' extension, or some other
abstract data structure.";
}
extension cli {
description
"Used within a container definition to indicate it is
only used as a conceptual container for a set of CLI parameters.
A top-level container containing this extension will not
be included in any NETCONF configuration databases.";
}
extension default-parm {
description
"Used within a CLI container or rpc definition to specify a
leaf parameter within the CLI container or rpc input
section, that is used as the default if no parameter name
is entered.
These values must not begin with a dash (-) or
double dash (--) sequence or they will be mistaken
for CLI parameter names.
This option is somewhat risky because any unrecognized
parameter without any prefix (- or --) will be tried
as the default parameter type, instead of catching
the unknown parameter error. It can also be useful though,
for assigning file name parameters through shell expansion,
or if there is only one parameter.";
argument parm {
yin-element true;
}
}
extension default-parm-equals-ok {
description
"Used within a CLI container or rpc definition to specify a
leaf parameter within the CLI container or rpc input
section, that is used as the default if no parameter name
is entered.
This can be used in addition to ncx:default-parm to
allow an equals sign '=' in the default parm string value.
This option is quite risky because any unrecognized
parameter without any prefix (- or --) will be tried
as the default parameter type, instead of catching
the unknown parameter error. This includes strings containing
an equals sign, so an unknown parameter error will never
be generated.
rpc foo {
input {
ncx:default-parm a;
ncx:default-parm-equals-ok;
leaf a { type string; }
leaf b { type int32; }
}
}
yangcli> foo bogus-parm=fred
This will interpreted as if parameter 'a' were entered:
yangcli> foo a='bogus-parm=fred'
";
}
extension hidden {
description
"Used to prevent publication of a YANG data object.
Will be ignored for typedefs and other constructs.
If present, that node and any sub-nodes will be ignored
when generating HTML documentation or cYANG output.
The yangdump -f=copy mode will not be affected by
this extension. ";
}
extension metadata {
description
"Used to define an XML attribute to be associated with a
data-def-stmt node. Only optional metadata can be
defined. Errors for missing XML attributes (except
as specified by the YANG language) will not be
checked automatically.
The syntax string has the following format:
[prefix:]typename attribute-name
Any YANG typedef of builtin type can be specified as
the type name, except 'empty'.
Example from get command in netconf.yang:
ncx:metadata 'FilterType type'; ";
argument syntax-string {
yin-element true;
}
}
extension no-duplicates {
description
"Used to indicate that no duplicate values are allowed
in an ncx:xsdlist leaf or leaf-list object.";
}
extension password {
description
"Used to indicate the data type for the leaf is really
a password. Only the encrypted version of the password
is allowed to be generated in any output.";
}
extension root {
description
"Used within a container definition to indicate it is
really a root container for a conceptual NETCONF database,
instead of just an empty container. This is needed
for yuma to correctly process any RPC method
that contains a 'config' parameter.";
}
extension sil-delete-children-first {
description
"Used within a container or list definition to indicate
that the SIL callbacks for descendant nodes should
be invoked first, when a data node instance of
the object containing this extension is deleted.
Normally, the parent node is expected to delete all its
own sub-structures when the SIL edit callback is
invoked. If this extension is present, then any
SIL callbacks for any of the child nodes will be
invoked first instead.
If a child node is a list or a container, and
it also contains an 'ncx:sil-delete-children-first'
extension, then its children will be checked first.
The SIL edit callback will not be invoked for leaf,
leaf-list, or anyxml descendant nodes in this mode.
They will only will called if their parent node
is not getting deleted.
container foo {
ncx:sil-delete-children-first;
list foos {
ncx:sil-delete-children-first;
key a;
leaf a { type string; }
container b {
list c { ... }
}
leaf d { type empty; }
}
}
In this example, assume node /foo gets deleted.
Then the SIL edit callbacks would be done as follows:
1) /foo/foos[a='n']/b (called for row 'n' of /foo/foos)
2) /foo/foos[a='n'] (called for row 'n' of /foo/foos)
3) repeat (1,2) until all rows in /foo/foos are deleted
4) /foo
Note that the SIL edit callback is not done for list
/foo/foos[a='n']/b/c because this extension is
not present in container '/foo/foos/b'.
Note that the SIL edit callback is not done for
nodes /foo/foos[a='n']/a or /foo/foos[a='n']/d because
they are leafs.
";
}
extension xsdlist {
description
"Used to indicate the leaf string type is really an
XSD list, which is a series of whitespace separated
strings. The type argument represents the data type
to use for the list members, for validation purposes.
Allowed to be present within the type sub-section
for a string.";
argument type {
yin-element true;
}
}
extension xpath {
description
"Used to indicate that the content of a data type
is an XPath expression. This is needed to properly
evaluate the namespace prefixes within the expression.
The xpath extension may appear within the type-stmt,
within a typedef, leaf, or leaf-list. The builtin
data type must be 'string', or the 'xpath' extension
will be ignored.
All data using the 'instance-identifier' built-in type
will automatically be processed as an XPath string,
so the xpath extension is not needed in that case.";
}
extension qname {
description
"Used to indicate that the content of a data type
is a Qualified Name. This is needed to properly
evaluate the namespace prefix, if used.
The qname extension may appear within the type-stmt,
within a typedef, leaf, or leaf-list. The builtin
data type must be 'string', or the 'qname' extension
will be ignored.";
}
extension schema-instance {
description
"Used to indicate that the typedef or type statement
for a string data type really identifies a
special schema-instance node, not a generic string.
A schema-instance value string is an unrestricted YANG
instance-identifier expression. All the same rules
as an instance-identifier apply except:
* predicates for keys are optional;
The dataRule will apply to all instances
of any missing key leaf predicate.
This extension will be ignored unless it is present
in the type-stmt of a typedef-stmt, leaf-stmt,
or leaf-list-stmt, or directly within a leaf-stmt or
leaf-list-stmt.";
}
extension user-write {
description
"Used within database configuration data definition
statements to control user write access to the
database object containing this statement.
The 'permitted' argument is a list of operations
that users are permitted to invoke for the specified node.
These permissions will over-ride all NACM access control rules,
even if NACM is disabled.
This extension does not apply to descendant nodes!
This extension has no effect if config-stmt is false!
The following values are supported:
* create : allow users to create instances of the object
* update : allow users to modify instances of the object
* delete : allow users to delete instances of the object
To dis-allow all user access, provide an empty string
for the 'permitted' parameter (user-write '';)
To allow only create and delete user access, provide
the string 'create delete' for the 'permitted' parameter.
Use this for parameters that cannot be changed once they
are set.
Providing all 3 parameters has the same affect as not using
this extension at all, but can be used anyway.
leaf user-write {
description 'equivalent YANG definition';
type bits {
bit create;
bit update;
bit delete;
}
default 'create update delete';
}
";
argument exceptions {
yin-element true;
}
}
}
|