[Code formatting: Change indentation style to space](https://github.com/clicon/clixon/issues/379)
* Applies to all c/h/y/l/sh files and .editorconfig
This commit is contained in:
parent
a9d1ab006c
commit
d84c529ff1
376 changed files with 38147 additions and 38133 deletions
|
|
@ -4,32 +4,32 @@ module ietf-list-pagination-nc {
|
|||
prefix lpgnc;
|
||||
|
||||
import ietf-netconf {
|
||||
prefix nc;
|
||||
reference
|
||||
"RFC 6241: Network Configuration Protocol (NETCONF)";
|
||||
prefix nc;
|
||||
reference
|
||||
"RFC 6241: Network Configuration Protocol (NETCONF)";
|
||||
}
|
||||
|
||||
import ietf-netconf-nmda {
|
||||
prefix ncds;
|
||||
reference
|
||||
"RFC 8526: NETCONF Extensions to Support the
|
||||
prefix ncds;
|
||||
reference
|
||||
"RFC 8526: NETCONF Extensions to Support the
|
||||
Network Management Datastore Architecture";
|
||||
}
|
||||
|
||||
import ietf-list-pagination {
|
||||
prefix lp;
|
||||
reference
|
||||
"RFC XXXX: List Pagination for YANG-driven Protocols";
|
||||
prefix lp;
|
||||
reference
|
||||
"RFC XXXX: List Pagination for YANG-driven Protocols";
|
||||
}
|
||||
|
||||
organization
|
||||
"IETF NETCONF (Network Configuration) Working Group";
|
||||
"IETF NETCONF (Network Configuration) Working Group";
|
||||
|
||||
contact
|
||||
"WG Web: https://datatracker.ietf.org/wg/netconf
|
||||
"WG Web: https://datatracker.ietf.org/wg/netconf
|
||||
WG List: NETCONF WG list <mailto:netconf@ietf.org>";
|
||||
description
|
||||
"This module augments the <get>, <get-config>, and <get-data>
|
||||
"This module augments the <get>, <get-config>, and <get-data>
|
||||
'rpc' statements to support list pagination.
|
||||
|
||||
Copyright (c) 2021 IETF Trust and the persons identified
|
||||
|
|
@ -54,47 +54,47 @@ module ietf-list-pagination-nc {
|
|||
capitals, as shown here.";
|
||||
|
||||
revision 2022-07-24 {
|
||||
description
|
||||
"Initial revision.";
|
||||
reference
|
||||
"RFC XXXX: NETCONF Extensions to Support List Pagination";
|
||||
description
|
||||
"Initial revision.";
|
||||
reference
|
||||
"RFC XXXX: NETCONF Extensions to Support List Pagination";
|
||||
}
|
||||
|
||||
grouping pagination-parameters {
|
||||
description "A grouping for list pagination parameters.";
|
||||
container list-pagination {
|
||||
description "List pagination parameters.";
|
||||
presence "Flag that request contains pagination parameters";
|
||||
uses lp:where-param-grouping;
|
||||
uses lp:sort-by-param-grouping;
|
||||
uses lp:direction-param-grouping;
|
||||
uses lp:offset-param-grouping;
|
||||
uses lp:limit-param-grouping;
|
||||
uses lp:sublist-limit-param-grouping;
|
||||
}
|
||||
description "A grouping for list pagination parameters.";
|
||||
container list-pagination {
|
||||
description "List pagination parameters.";
|
||||
presence "Flag that request contains pagination parameters";
|
||||
uses lp:where-param-grouping;
|
||||
uses lp:sort-by-param-grouping;
|
||||
uses lp:direction-param-grouping;
|
||||
uses lp:offset-param-grouping;
|
||||
uses lp:limit-param-grouping;
|
||||
uses lp:sublist-limit-param-grouping;
|
||||
}
|
||||
}
|
||||
|
||||
augment "/nc:get/nc:input" {
|
||||
description
|
||||
"Allow the 'get' operation to use content filter
|
||||
description
|
||||
"Allow the 'get' operation to use content filter
|
||||
parameter for specifying the YANG list or leaf-list
|
||||
that is to be retrieved";
|
||||
uses pagination-parameters;
|
||||
uses pagination-parameters;
|
||||
}
|
||||
|
||||
augment "/nc:get-config/nc:input" {
|
||||
description
|
||||
"Allow the 'get-config' operation to use content filter
|
||||
description
|
||||
"Allow the 'get-config' operation to use content filter
|
||||
parameter for specifying the YANG list or leaf-list
|
||||
that is to be retrieved";
|
||||
uses pagination-parameters;
|
||||
uses pagination-parameters;
|
||||
}
|
||||
|
||||
augment "/ncds:get-data/ncds:input" {
|
||||
description
|
||||
"Allow the 'get-data' operation to use content filter
|
||||
description
|
||||
"Allow the 'get-data' operation to use content filter
|
||||
parameter for specifying the YANG list or leaf-list
|
||||
that is to be retrieved";
|
||||
uses pagination-parameters;
|
||||
uses pagination-parameters;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,39 +1,39 @@
|
|||
module ietf-list-pagination {
|
||||
yang-version 1.1;
|
||||
namespace
|
||||
"urn:ietf:params:xml:ns:yang:ietf-list-pagination";
|
||||
"urn:ietf:params:xml:ns:yang:ietf-list-pagination";
|
||||
prefix lpg;
|
||||
|
||||
import ietf-yang-types {
|
||||
prefix yang;
|
||||
reference
|
||||
"RFC 6991: Common YANG Data Types";
|
||||
prefix yang;
|
||||
reference
|
||||
"RFC 6991: Common YANG Data Types";
|
||||
}
|
||||
|
||||
import ietf-yang-metadata {
|
||||
prefix md;
|
||||
reference
|
||||
"RFC 7952: Defining and Using Metadata with YANG";
|
||||
prefix md;
|
||||
reference
|
||||
"RFC 7952: Defining and Using Metadata with YANG";
|
||||
}
|
||||
|
||||
/* XXX Clixon FIXME: system-capabilities brings in NACM that breaks clixon testing
|
||||
import ietf-system-capabilities {
|
||||
prefix sysc;
|
||||
reference
|
||||
"draft-ietf-netconf-notification-capabilities:
|
||||
prefix sysc;
|
||||
reference
|
||||
"draft-ietf-netconf-notification-capabilities:
|
||||
YANG Modules describing Capabilities for
|
||||
Systems and Datastore Update Notifications";
|
||||
}
|
||||
*/
|
||||
organization
|
||||
"IETF NETCONF (Network Configuration) Working Group";
|
||||
"IETF NETCONF (Network Configuration) Working Group";
|
||||
|
||||
contact
|
||||
"WG Web: https://datatracker.ietf.org/wg/netconf
|
||||
"WG Web: https://datatracker.ietf.org/wg/netconf
|
||||
WG List: NETCONF WG list <mailto:netconf@ietf.org>";
|
||||
|
||||
description
|
||||
"This module is used by servers to 1) indicate they support
|
||||
"This module is used by servers to 1) indicate they support
|
||||
pagination on 'list' and 'leaf-list' resources, 2) define a
|
||||
grouping for each list-pagination parameter, and 3) indicate
|
||||
which 'config false' lists have constrained 'where' and
|
||||
|
|
@ -61,28 +61,28 @@ module ietf-list-pagination {
|
|||
capitals, as shown here.";
|
||||
|
||||
revision 2022-07-24 {
|
||||
description
|
||||
"Initial revision.";
|
||||
reference
|
||||
"RFC XXXX: List Pagination for YANG-driven Protocols";
|
||||
description
|
||||
"Initial revision.";
|
||||
reference
|
||||
"RFC XXXX: List Pagination for YANG-driven Protocols";
|
||||
}
|
||||
|
||||
// Annotations
|
||||
|
||||
md:annotation remaining {
|
||||
type union {
|
||||
type uint32;
|
||||
type enumeration {
|
||||
enum "unknown" {
|
||||
description
|
||||
"Indicates that number of remaining entries is unknown
|
||||
type union {
|
||||
type uint32;
|
||||
type enumeration {
|
||||
enum "unknown" {
|
||||
description
|
||||
"Indicates that number of remaining entries is unknown
|
||||
to the server in case, e.g., the server has determined
|
||||
that counting would be prohibitively expensive.";
|
||||
}
|
||||
}
|
||||
}
|
||||
description
|
||||
"This annotation contains the number of elements not included
|
||||
}
|
||||
}
|
||||
}
|
||||
description
|
||||
"This annotation contains the number of elements not included
|
||||
in the result set (a positive value) due to a 'limit' or
|
||||
'sublist-limit' operation. If no elements were removed,
|
||||
this annotation MUST NOT appear. The minimum value (0),
|
||||
|
|
@ -95,37 +95,37 @@ module ietf-list-pagination {
|
|||
// Identities
|
||||
|
||||
identity list-pagination-error {
|
||||
description
|
||||
"Base identity for list-pagination errors.";
|
||||
description
|
||||
"Base identity for list-pagination errors.";
|
||||
}
|
||||
|
||||
identity offset-out-of-range {
|
||||
base list-pagination-error;
|
||||
description
|
||||
"The 'offset' query parameter value is greater than the number
|
||||
base list-pagination-error;
|
||||
description
|
||||
"The 'offset' query parameter value is greater than the number
|
||||
of instances in the target list or leaf-list resource.";
|
||||
}
|
||||
|
||||
// Groupings
|
||||
|
||||
grouping where-param-grouping {
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
to define a protocol-specific query parameter.";
|
||||
leaf where {
|
||||
type union {
|
||||
type yang:xpath1.0;
|
||||
type enumeration {
|
||||
enum "unfiltered" {
|
||||
description
|
||||
"Indicates that no entries are to be filtered
|
||||
leaf where {
|
||||
type union {
|
||||
type yang:xpath1.0;
|
||||
type enumeration {
|
||||
enum "unfiltered" {
|
||||
description
|
||||
"Indicates that no entries are to be filtered
|
||||
from the working result-set.";
|
||||
}
|
||||
}
|
||||
}
|
||||
default "unfiltered";
|
||||
description
|
||||
"The 'where' parameter specifies a boolean expression
|
||||
}
|
||||
}
|
||||
}
|
||||
default "unfiltered";
|
||||
description
|
||||
"The 'where' parameter specifies a boolean expression
|
||||
that result-set entries must match.
|
||||
|
||||
It is an error if the XPath expression references a node
|
||||
|
|
@ -134,166 +134,166 @@ module ietf-list-pagination {
|
|||
false' lists and leaf-lists, if the node identifier does
|
||||
not point to a node having the 'indexed' extension
|
||||
statement applied to it (see RFC XXXX).";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping sort-by-param-grouping {
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
to define a protocol-specific query parameter.";
|
||||
leaf sort-by {
|
||||
type union {
|
||||
type string {
|
||||
// An RFC 7950 'descendant-schema-nodeid'.
|
||||
pattern '([0-9a-fA-F]*:)?[0-9a-fA-F]*'
|
||||
+ '(/([0-9a-fA-F]*:)?[0-9a-fA-F]*)*';
|
||||
}
|
||||
type enumeration {
|
||||
enum "none" {
|
||||
description
|
||||
"Indicates that the list or leaf-list's default
|
||||
leaf sort-by {
|
||||
type union {
|
||||
type string {
|
||||
// An RFC 7950 'descendant-schema-nodeid'.
|
||||
pattern '([0-9a-fA-F]*:)?[0-9a-fA-F]*'
|
||||
+ '(/([0-9a-fA-F]*:)?[0-9a-fA-F]*)*';
|
||||
}
|
||||
type enumeration {
|
||||
enum "none" {
|
||||
description
|
||||
"Indicates that the list or leaf-list's default
|
||||
order is to be used, per the YANG 'ordered-by'
|
||||
statement.";
|
||||
}
|
||||
}
|
||||
}
|
||||
default "none";
|
||||
description
|
||||
"The 'sort-by' parameter indicates the node in the
|
||||
}
|
||||
}
|
||||
}
|
||||
default "none";
|
||||
description
|
||||
"The 'sort-by' parameter indicates the node in the
|
||||
working result-set (i.e., after the 'where' parameter
|
||||
has been applied) that entries should be sorted by.
|
||||
|
||||
Sorts are in ascending order (e.g., '1' before '9',
|
||||
'a' before 'z', etc.). Missing values are sorted to
|
||||
the end (e.g., after all nodes having values).";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping direction-param-grouping {
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
to define a protocol-specific query parameter.";
|
||||
leaf direction {
|
||||
type enumeration {
|
||||
enum forwards {
|
||||
description
|
||||
"Indicates that entries should be traversed from
|
||||
leaf direction {
|
||||
type enumeration {
|
||||
enum forwards {
|
||||
description
|
||||
"Indicates that entries should be traversed from
|
||||
the first to last item in the working result set.";
|
||||
}
|
||||
enum backwards {
|
||||
description
|
||||
"Indicates that entries should be traversed from
|
||||
}
|
||||
enum backwards {
|
||||
description
|
||||
"Indicates that entries should be traversed from
|
||||
the last to first item in the working result set.";
|
||||
}
|
||||
}
|
||||
default "forwards";
|
||||
description
|
||||
"The 'direction' parameter indicates how the entries in the
|
||||
}
|
||||
}
|
||||
default "forwards";
|
||||
description
|
||||
"The 'direction' parameter indicates how the entries in the
|
||||
working result-set (i.e., after the 'sort-by' parameter
|
||||
has been applied) should be traversed.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping offset-param-grouping {
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
to define a protocol-specific query parameter.";
|
||||
leaf offset {
|
||||
type uint32;
|
||||
default 0;
|
||||
description
|
||||
"The 'offset' parameter indicates the number of entries
|
||||
leaf offset {
|
||||
type uint32;
|
||||
default 0;
|
||||
description
|
||||
"The 'offset' parameter indicates the number of entries
|
||||
in the working result-set (i.e., after the 'direction'
|
||||
parameter has been applied) that should be skipped over
|
||||
when preparing the response.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping limit-param-grouping {
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
to define a protocol-specific query parameter.";
|
||||
leaf limit {
|
||||
type union {
|
||||
type uint32 {
|
||||
range "1..max";
|
||||
}
|
||||
type enumeration {
|
||||
enum "unbounded" {
|
||||
description
|
||||
"Indicates that the number of entries that may be
|
||||
leaf limit {
|
||||
type union {
|
||||
type uint32 {
|
||||
range "1..max";
|
||||
}
|
||||
type enumeration {
|
||||
enum "unbounded" {
|
||||
description
|
||||
"Indicates that the number of entries that may be
|
||||
returned is unbounded.";
|
||||
}
|
||||
}
|
||||
}
|
||||
default "unbounded";
|
||||
description
|
||||
"The 'limit' parameter limits the number of entries returned
|
||||
}
|
||||
}
|
||||
}
|
||||
default "unbounded";
|
||||
description
|
||||
"The 'limit' parameter limits the number of entries returned
|
||||
from the working result-set (i.e., after the 'offset'
|
||||
parameter has been applied).
|
||||
|
||||
Any result-set that is limited includes, somewhere in its
|
||||
encoding, the metadata value 'remaining' to indicate the
|
||||
number entries not included in the result set.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping sublist-limit-param-grouping {
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
description
|
||||
"This grouping may be used by protocol-specific YANG modules
|
||||
to define a protocol-specific query parameter.";
|
||||
leaf sublist-limit {
|
||||
type union {
|
||||
type uint32 {
|
||||
range "1..max";
|
||||
}
|
||||
type enumeration {
|
||||
enum "unbounded" {
|
||||
description
|
||||
"Indicates that the number of entries that may be
|
||||
leaf sublist-limit {
|
||||
type union {
|
||||
type uint32 {
|
||||
range "1..max";
|
||||
}
|
||||
type enumeration {
|
||||
enum "unbounded" {
|
||||
description
|
||||
"Indicates that the number of entries that may be
|
||||
returned is unbounded.";
|
||||
}
|
||||
}
|
||||
}
|
||||
default "unbounded";
|
||||
description
|
||||
"The 'sublist-limit' parameter limits the number of entries
|
||||
}
|
||||
}
|
||||
}
|
||||
default "unbounded";
|
||||
description
|
||||
"The 'sublist-limit' parameter limits the number of entries
|
||||
for descendent lists and leaf-lists.
|
||||
|
||||
Any result-set that is limited includes, somewhere in
|
||||
its encoding, the metadata value 'remaining' to indicate
|
||||
the number entries not included in the result set.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* XXX Clixon FIXME: system-capabilities brings in NACM that breaks clixon testing
|
||||
// Protocol-accessible nodes
|
||||
augment // FIXME: ensure datastore == <operational>
|
||||
"/sysc:system-capabilities/sysc:datastore-capabilities"
|
||||
+ "/sysc:per-node-capabilities" {
|
||||
description
|
||||
"Defines some leafs that MAY be used by the server to
|
||||
"/sysc:system-capabilities/sysc:datastore-capabilities"
|
||||
+ "/sysc:per-node-capabilities" {
|
||||
description
|
||||
"Defines some leafs that MAY be used by the server to
|
||||
describe constraints imposed of the 'where' filters and
|
||||
'sort-by' parameters used in list pagination queries.";
|
||||
leaf constrained {
|
||||
type empty;
|
||||
description
|
||||
"Indicates that 'where' filters and 'sort-by' parameters
|
||||
leaf constrained {
|
||||
type empty;
|
||||
description
|
||||
"Indicates that 'where' filters and 'sort-by' parameters
|
||||
on the targeted 'config false' list node are constrained.
|
||||
If a list is not 'constrained', then full XPath 1.0
|
||||
expressions may be used in 'where' filters and all node
|
||||
identifiers are usable by 'sort-by'.";
|
||||
}
|
||||
leaf indexed {
|
||||
type empty;
|
||||
description
|
||||
"Indicates that the targeted descendent node of a
|
||||
}
|
||||
leaf indexed {
|
||||
type empty;
|
||||
description
|
||||
"Indicates that the targeted descendent node of a
|
||||
'constrained' list (see the 'constrained' leaf) may be
|
||||
used in 'where' filters and/or 'sort-by' parameters.
|
||||
If a descendent node of a 'constrained' list is not
|
||||
'indexed', then it MUST NOT be used in 'where' filters
|
||||
or 'sort-by' parameters.";
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,14 +5,14 @@ module ietf-netconf-acm {
|
|||
prefix nacm;
|
||||
|
||||
import ietf-yang-types {
|
||||
prefix yang;
|
||||
prefix yang;
|
||||
}
|
||||
|
||||
organization
|
||||
"IETF NETCONF (Network Configuration) Working Group";
|
||||
"IETF NETCONF (Network Configuration) Working Group";
|
||||
|
||||
contact
|
||||
"WG Web: <https://datatracker.ietf.org/wg/netconf/>
|
||||
"WG Web: <https://datatracker.ietf.org/wg/netconf/>
|
||||
WG List: <mailto:netconf@ietf.org>
|
||||
|
||||
Author: Andy Bierman
|
||||
|
|
@ -22,7 +22,7 @@ module ietf-netconf-acm {
|
|||
<mailto:mbj@tail-f.com>";
|
||||
|
||||
description
|
||||
"Network Configuration Access Control Model.
|
||||
"Network Configuration Access Control Model.
|
||||
|
||||
Copyright (c) 2012 - 2018 IETF Trust and the persons
|
||||
identified as authors of the code. All rights reserved.
|
||||
|
|
@ -38,19 +38,19 @@ module ietf-netconf-acm {
|
|||
the RFC itself for full legal notices.";
|
||||
|
||||
revision "2018-02-14" {
|
||||
description
|
||||
"Added support for YANG 1.1 actions and notifications tied to
|
||||
description
|
||||
"Added support for YANG 1.1 actions and notifications tied to
|
||||
data nodes. Clarified how NACM extensions can be used by
|
||||
other data models.";
|
||||
reference
|
||||
"RFC 8341: Network Configuration Access Control Model";
|
||||
reference
|
||||
"RFC 8341: Network Configuration Access Control Model";
|
||||
}
|
||||
|
||||
revision "2012-02-22" {
|
||||
description
|
||||
"Initial version.";
|
||||
reference
|
||||
"RFC 6536: Network Configuration Protocol (NETCONF)
|
||||
description
|
||||
"Initial version.";
|
||||
reference
|
||||
"RFC 6536: Network Configuration Protocol (NETCONF)
|
||||
Access Control Model";
|
||||
}
|
||||
|
||||
|
|
@ -59,8 +59,8 @@ module ietf-netconf-acm {
|
|||
*/
|
||||
|
||||
extension default-deny-write {
|
||||
description
|
||||
"Used to indicate that the data model node
|
||||
description
|
||||
"Used to indicate that the data model node
|
||||
represents a sensitive security system parameter.
|
||||
|
||||
If present, the NETCONF server will only allow the designated
|
||||
|
|
@ -76,8 +76,8 @@ module ietf-netconf-acm {
|
|||
}
|
||||
|
||||
extension default-deny-all {
|
||||
description
|
||||
"Used to indicate that the data model node
|
||||
description
|
||||
"Used to indicate that the data model node
|
||||
controls a very sensitive security system parameter.
|
||||
|
||||
If present, the NETCONF server will only allow the designated
|
||||
|
|
@ -99,84 +99,84 @@ module ietf-netconf-acm {
|
|||
*/
|
||||
|
||||
typedef user-name-type {
|
||||
type string {
|
||||
length "1..max";
|
||||
}
|
||||
description
|
||||
"General-purpose username string.";
|
||||
type string {
|
||||
length "1..max";
|
||||
}
|
||||
description
|
||||
"General-purpose username string.";
|
||||
}
|
||||
|
||||
typedef matchall-string-type {
|
||||
type string {
|
||||
pattern '\*';
|
||||
}
|
||||
description
|
||||
"The string containing a single asterisk '*' is used
|
||||
type string {
|
||||
pattern '\*';
|
||||
}
|
||||
description
|
||||
"The string containing a single asterisk '*' is used
|
||||
to conceptually represent all possible values
|
||||
for the particular leaf using this data type.";
|
||||
}
|
||||
|
||||
typedef access-operations-type {
|
||||
type bits {
|
||||
bit create {
|
||||
description
|
||||
"Any protocol operation that creates a
|
||||
type bits {
|
||||
bit create {
|
||||
description
|
||||
"Any protocol operation that creates a
|
||||
new data node.";
|
||||
}
|
||||
bit read {
|
||||
description
|
||||
"Any protocol operation or notification that
|
||||
}
|
||||
bit read {
|
||||
description
|
||||
"Any protocol operation or notification that
|
||||
returns the value of a data node.";
|
||||
}
|
||||
bit update {
|
||||
description
|
||||
"Any protocol operation that alters an existing
|
||||
}
|
||||
bit update {
|
||||
description
|
||||
"Any protocol operation that alters an existing
|
||||
data node.";
|
||||
}
|
||||
}
|
||||
|
||||
bit delete {
|
||||
description
|
||||
"Any protocol operation that removes a data node.";
|
||||
}
|
||||
bit exec {
|
||||
description
|
||||
"Execution access to the specified protocol operation.";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Access operation.";
|
||||
bit delete {
|
||||
description
|
||||
"Any protocol operation that removes a data node.";
|
||||
}
|
||||
bit exec {
|
||||
description
|
||||
"Execution access to the specified protocol operation.";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Access operation.";
|
||||
}
|
||||
|
||||
typedef group-name-type {
|
||||
type string {
|
||||
length "1..max";
|
||||
pattern '[^\*].*';
|
||||
}
|
||||
description
|
||||
"Name of administrative group to which
|
||||
type string {
|
||||
length "1..max";
|
||||
pattern '[^\*].*';
|
||||
}
|
||||
description
|
||||
"Name of administrative group to which
|
||||
users can be assigned.";
|
||||
}
|
||||
|
||||
typedef action-type {
|
||||
type enumeration {
|
||||
enum permit {
|
||||
description
|
||||
"Requested action is permitted.";
|
||||
}
|
||||
enum deny {
|
||||
description
|
||||
"Requested action is denied.";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Action taken by the server when a particular
|
||||
type enumeration {
|
||||
enum permit {
|
||||
description
|
||||
"Requested action is permitted.";
|
||||
}
|
||||
enum deny {
|
||||
description
|
||||
"Requested action is denied.";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Action taken by the server when a particular
|
||||
rule matches.";
|
||||
}
|
||||
|
||||
typedef node-instance-identifier {
|
||||
type yang:xpath1.0;
|
||||
description
|
||||
"Path expression used to represent a special
|
||||
type yang:xpath1.0;
|
||||
description
|
||||
"Path expression used to represent a special
|
||||
data node, action, or notification instance-identifier
|
||||
string.
|
||||
|
||||
|
|
@ -213,147 +213,147 @@ module ietf-netconf-acm {
|
|||
*/
|
||||
|
||||
container nacm {
|
||||
nacm:default-deny-all;
|
||||
nacm:default-deny-all;
|
||||
|
||||
description
|
||||
"Parameters for NETCONF access control model.";
|
||||
description
|
||||
"Parameters for NETCONF access control model.";
|
||||
|
||||
leaf enable-nacm {
|
||||
type boolean;
|
||||
default "true";
|
||||
description
|
||||
"Enables or disables all NETCONF access control
|
||||
leaf enable-nacm {
|
||||
type boolean;
|
||||
default "true";
|
||||
description
|
||||
"Enables or disables all NETCONF access control
|
||||
enforcement. If 'true', then enforcement
|
||||
is enabled. If 'false', then enforcement
|
||||
is disabled.";
|
||||
}
|
||||
}
|
||||
|
||||
leaf read-default {
|
||||
type action-type;
|
||||
default "permit";
|
||||
description
|
||||
"Controls whether read access is granted if
|
||||
leaf read-default {
|
||||
type action-type;
|
||||
default "permit";
|
||||
description
|
||||
"Controls whether read access is granted if
|
||||
no appropriate rule is found for a
|
||||
particular read request.";
|
||||
}
|
||||
}
|
||||
|
||||
leaf write-default {
|
||||
type action-type;
|
||||
default "deny";
|
||||
description
|
||||
"Controls whether create, update, or delete access
|
||||
leaf write-default {
|
||||
type action-type;
|
||||
default "deny";
|
||||
description
|
||||
"Controls whether create, update, or delete access
|
||||
is granted if no appropriate rule is found for a
|
||||
particular write request.";
|
||||
}
|
||||
}
|
||||
|
||||
leaf exec-default {
|
||||
type action-type;
|
||||
default "permit";
|
||||
description
|
||||
"Controls whether exec access is granted if no appropriate
|
||||
leaf exec-default {
|
||||
type action-type;
|
||||
default "permit";
|
||||
description
|
||||
"Controls whether exec access is granted if no appropriate
|
||||
rule is found for a particular protocol operation request.";
|
||||
}
|
||||
}
|
||||
|
||||
leaf enable-external-groups {
|
||||
type boolean;
|
||||
default "true";
|
||||
description
|
||||
"Controls whether the server uses the groups reported by the
|
||||
leaf enable-external-groups {
|
||||
type boolean;
|
||||
default "true";
|
||||
description
|
||||
"Controls whether the server uses the groups reported by the
|
||||
NETCONF transport layer when it assigns the user to a set of
|
||||
NACM groups. If this leaf has the value 'false', any group
|
||||
names reported by the transport layer are ignored by the
|
||||
server.";
|
||||
}
|
||||
}
|
||||
|
||||
leaf denied-operations {
|
||||
type yang:zero-based-counter32;
|
||||
config false;
|
||||
mandatory true;
|
||||
description
|
||||
"Number of times since the server last restarted that a
|
||||
leaf denied-operations {
|
||||
type yang:zero-based-counter32;
|
||||
config false;
|
||||
mandatory true;
|
||||
description
|
||||
"Number of times since the server last restarted that a
|
||||
protocol operation request was denied.";
|
||||
}
|
||||
}
|
||||
|
||||
leaf denied-data-writes {
|
||||
type yang:zero-based-counter32;
|
||||
config false;
|
||||
mandatory true;
|
||||
description
|
||||
"Number of times since the server last restarted that a
|
||||
leaf denied-data-writes {
|
||||
type yang:zero-based-counter32;
|
||||
config false;
|
||||
mandatory true;
|
||||
description
|
||||
"Number of times since the server last restarted that a
|
||||
protocol operation request to alter
|
||||
a configuration datastore was denied.";
|
||||
}
|
||||
}
|
||||
|
||||
leaf denied-notifications {
|
||||
type yang:zero-based-counter32;
|
||||
config false;
|
||||
mandatory true;
|
||||
description
|
||||
"Number of times since the server last restarted that
|
||||
leaf denied-notifications {
|
||||
type yang:zero-based-counter32;
|
||||
config false;
|
||||
mandatory true;
|
||||
description
|
||||
"Number of times since the server last restarted that
|
||||
a notification was dropped for a subscription because
|
||||
access to the event type was denied.";
|
||||
}
|
||||
}
|
||||
|
||||
container groups {
|
||||
description
|
||||
"NETCONF access control groups.";
|
||||
container groups {
|
||||
description
|
||||
"NETCONF access control groups.";
|
||||
|
||||
list group {
|
||||
key name;
|
||||
list group {
|
||||
key name;
|
||||
|
||||
description
|
||||
"One NACM group entry. This list will only contain
|
||||
description
|
||||
"One NACM group entry. This list will only contain
|
||||
configured entries, not any entries learned from
|
||||
any transport protocols.";
|
||||
|
||||
leaf name {
|
||||
type group-name-type;
|
||||
description
|
||||
"Group name associated with this entry.";
|
||||
}
|
||||
leaf name {
|
||||
type group-name-type;
|
||||
description
|
||||
"Group name associated with this entry.";
|
||||
}
|
||||
|
||||
leaf-list user-name {
|
||||
type user-name-type;
|
||||
description
|
||||
"Each entry identifies the username of
|
||||
leaf-list user-name {
|
||||
type user-name-type;
|
||||
description
|
||||
"Each entry identifies the username of
|
||||
a member of the group associated with
|
||||
this entry.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
list rule-list {
|
||||
key name;
|
||||
ordered-by user;
|
||||
description
|
||||
"An ordered collection of access control rules.";
|
||||
list rule-list {
|
||||
key name;
|
||||
ordered-by user;
|
||||
description
|
||||
"An ordered collection of access control rules.";
|
||||
|
||||
leaf name {
|
||||
type string {
|
||||
length "1..max";
|
||||
}
|
||||
description
|
||||
"Arbitrary name assigned to the rule-list.";
|
||||
}
|
||||
leaf-list group {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type group-name-type;
|
||||
}
|
||||
description
|
||||
"List of administrative groups that will be
|
||||
leaf name {
|
||||
type string {
|
||||
length "1..max";
|
||||
}
|
||||
description
|
||||
"Arbitrary name assigned to the rule-list.";
|
||||
}
|
||||
leaf-list group {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type group-name-type;
|
||||
}
|
||||
description
|
||||
"List of administrative groups that will be
|
||||
assigned the associated access rights
|
||||
defined by the 'rule' list.
|
||||
|
||||
The string '*' indicates that all groups apply to the
|
||||
entry.";
|
||||
}
|
||||
}
|
||||
|
||||
list rule {
|
||||
key name;
|
||||
ordered-by user;
|
||||
description
|
||||
"One access control rule.
|
||||
list rule {
|
||||
key name;
|
||||
ordered-by user;
|
||||
description
|
||||
"One access control rule.
|
||||
|
||||
Rules are processed in user-defined order until a match is
|
||||
found. A rule matches if 'module-name', 'rule-type', and
|
||||
|
|
@ -361,62 +361,62 @@ module ietf-netconf-acm {
|
|||
matches, the 'action' leaf determines whether or not
|
||||
access is granted.";
|
||||
|
||||
leaf name {
|
||||
type string {
|
||||
length "1..max";
|
||||
}
|
||||
description
|
||||
"Arbitrary name assigned to the rule.";
|
||||
}
|
||||
leaf name {
|
||||
type string {
|
||||
length "1..max";
|
||||
}
|
||||
description
|
||||
"Arbitrary name assigned to the rule.";
|
||||
}
|
||||
|
||||
leaf module-name {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type string;
|
||||
}
|
||||
default "*";
|
||||
description
|
||||
"Name of the module associated with this rule.
|
||||
leaf module-name {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type string;
|
||||
}
|
||||
default "*";
|
||||
description
|
||||
"Name of the module associated with this rule.
|
||||
|
||||
This leaf matches if it has the value '*' or if the
|
||||
object being accessed is defined in the module with the
|
||||
specified module name.";
|
||||
}
|
||||
choice rule-type {
|
||||
description
|
||||
"This choice matches if all leafs present in the rule
|
||||
}
|
||||
choice rule-type {
|
||||
description
|
||||
"This choice matches if all leafs present in the rule
|
||||
match the request. If no leafs are present, the
|
||||
choice matches all requests.";
|
||||
case protocol-operation {
|
||||
leaf rpc-name {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type string;
|
||||
}
|
||||
description
|
||||
"This leaf matches if it has the value '*' or if
|
||||
case protocol-operation {
|
||||
leaf rpc-name {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type string;
|
||||
}
|
||||
description
|
||||
"This leaf matches if it has the value '*' or if
|
||||
its value equals the requested protocol operation
|
||||
name.";
|
||||
}
|
||||
}
|
||||
case notification {
|
||||
leaf notification-name {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type string;
|
||||
}
|
||||
description
|
||||
"This leaf matches if it has the value '*' or if its
|
||||
}
|
||||
}
|
||||
case notification {
|
||||
leaf notification-name {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type string;
|
||||
}
|
||||
description
|
||||
"This leaf matches if it has the value '*' or if its
|
||||
value equals the requested notification name.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
case data-node {
|
||||
leaf path {
|
||||
type node-instance-identifier;
|
||||
mandatory true;
|
||||
description
|
||||
"Data node instance-identifier associated with the
|
||||
case data-node {
|
||||
leaf path {
|
||||
type node-instance-identifier;
|
||||
mandatory true;
|
||||
description
|
||||
"Data node instance-identifier associated with the
|
||||
data node, action, or notification controlled by
|
||||
this rule.
|
||||
|
||||
|
|
@ -427,40 +427,40 @@ module ietf-netconf-acm {
|
|||
|
||||
The special value '/' refers to all possible
|
||||
datastore contents.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
leaf access-operations {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type access-operations-type;
|
||||
}
|
||||
default "*";
|
||||
description
|
||||
"Access operations associated with this rule.
|
||||
leaf access-operations {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type access-operations-type;
|
||||
}
|
||||
default "*";
|
||||
description
|
||||
"Access operations associated with this rule.
|
||||
|
||||
This leaf matches if it has the value '*' or if the
|
||||
bit corresponding to the requested operation is set.";
|
||||
}
|
||||
}
|
||||
|
||||
leaf action {
|
||||
type action-type;
|
||||
mandatory true;
|
||||
description
|
||||
"The access control action associated with the
|
||||
leaf action {
|
||||
type action-type;
|
||||
mandatory true;
|
||||
description
|
||||
"The access control action associated with the
|
||||
rule. If a rule has been determined to match a
|
||||
particular request, then this object is used
|
||||
to determine whether to permit or deny the
|
||||
request.";
|
||||
}
|
||||
}
|
||||
|
||||
leaf comment {
|
||||
type string;
|
||||
description
|
||||
"A textual description of the access rule.";
|
||||
}
|
||||
}
|
||||
}
|
||||
leaf comment {
|
||||
type string;
|
||||
description
|
||||
"A textual description of the access rule.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@ module ietf-restconf-monitoring {
|
|||
import ietf-inet-types { prefix inet; }
|
||||
|
||||
organization
|
||||
"IETF NETCONF (Network Configuration) Working Group";
|
||||
"IETF NETCONF (Network Configuration) Working Group";
|
||||
|
||||
contact
|
||||
"WG Web: <https://datatracker.ietf.org/wg/netconf/>
|
||||
"WG Web: <https://datatracker.ietf.org/wg/netconf/>
|
||||
WG List: <mailto:netconf@ietf.org>
|
||||
|
||||
Author: Andy Bierman
|
||||
|
|
@ -22,7 +22,7 @@ module ietf-restconf-monitoring {
|
|||
<mailto:kwatsen@juniper.net>";
|
||||
|
||||
description
|
||||
"This module contains monitoring information for the
|
||||
"This module contains monitoring information for the
|
||||
RESTCONF protocol.
|
||||
|
||||
Copyright (c) 2017 IETF Trust and the persons identified as
|
||||
|
|
@ -39,111 +39,111 @@ module ietf-restconf-monitoring {
|
|||
the RFC itself for full legal notices.";
|
||||
|
||||
revision 2017-01-26 {
|
||||
description
|
||||
"Initial revision.";
|
||||
reference
|
||||
"RFC 8040: RESTCONF Protocol.";
|
||||
description
|
||||
"Initial revision.";
|
||||
reference
|
||||
"RFC 8040: RESTCONF Protocol.";
|
||||
}
|
||||
|
||||
container restconf-state {
|
||||
config false;
|
||||
description
|
||||
"Contains RESTCONF protocol monitoring information.";
|
||||
config false;
|
||||
description
|
||||
"Contains RESTCONF protocol monitoring information.";
|
||||
|
||||
container capabilities {
|
||||
description
|
||||
"Contains a list of protocol capability URIs.";
|
||||
container capabilities {
|
||||
description
|
||||
"Contains a list of protocol capability URIs.";
|
||||
|
||||
leaf-list capability {
|
||||
type inet:uri;
|
||||
description
|
||||
"A RESTCONF protocol capability URI.";
|
||||
}
|
||||
}
|
||||
leaf-list capability {
|
||||
type inet:uri;
|
||||
description
|
||||
"A RESTCONF protocol capability URI.";
|
||||
}
|
||||
}
|
||||
|
||||
container streams {
|
||||
description
|
||||
"Container representing the notification event streams
|
||||
container streams {
|
||||
description
|
||||
"Container representing the notification event streams
|
||||
supported by the server.";
|
||||
reference
|
||||
"RFC 5277, Section 3.4, <streams> element.";
|
||||
reference
|
||||
"RFC 5277, Section 3.4, <streams> element.";
|
||||
|
||||
list stream {
|
||||
key name;
|
||||
description
|
||||
"Each entry describes an event stream supported by
|
||||
list stream {
|
||||
key name;
|
||||
description
|
||||
"Each entry describes an event stream supported by
|
||||
the server.";
|
||||
|
||||
leaf name {
|
||||
type string;
|
||||
description
|
||||
"The stream name.";
|
||||
reference
|
||||
"RFC 5277, Section 3.4, <name> element.";
|
||||
}
|
||||
leaf name {
|
||||
type string;
|
||||
description
|
||||
"The stream name.";
|
||||
reference
|
||||
"RFC 5277, Section 3.4, <name> element.";
|
||||
}
|
||||
|
||||
leaf description {
|
||||
type string;
|
||||
description
|
||||
"Description of stream content.";
|
||||
reference
|
||||
"RFC 5277, Section 3.4, <description> element.";
|
||||
}
|
||||
leaf description {
|
||||
type string;
|
||||
description
|
||||
"Description of stream content.";
|
||||
reference
|
||||
"RFC 5277, Section 3.4, <description> element.";
|
||||
}
|
||||
|
||||
leaf replay-support {
|
||||
type boolean;
|
||||
default false;
|
||||
description
|
||||
"Indicates if replay buffer is supported for this stream.
|
||||
leaf replay-support {
|
||||
type boolean;
|
||||
default false;
|
||||
description
|
||||
"Indicates if replay buffer is supported for this stream.
|
||||
If 'true', then the server MUST support the 'start-time'
|
||||
and 'stop-time' query parameters for this stream.";
|
||||
reference
|
||||
"RFC 5277, Section 3.4, <replaySupport> element.";
|
||||
}
|
||||
reference
|
||||
"RFC 5277, Section 3.4, <replaySupport> element.";
|
||||
}
|
||||
|
||||
leaf replay-log-creation-time {
|
||||
when "../replay-support" {
|
||||
description
|
||||
"Only present if notification replay is supported.";
|
||||
}
|
||||
type yang:date-and-time;
|
||||
description
|
||||
"Indicates the time the replay log for this stream
|
||||
leaf replay-log-creation-time {
|
||||
when "../replay-support" {
|
||||
description
|
||||
"Only present if notification replay is supported.";
|
||||
}
|
||||
type yang:date-and-time;
|
||||
description
|
||||
"Indicates the time the replay log for this stream
|
||||
was created.";
|
||||
reference
|
||||
"RFC 5277, Section 3.4, <replayLogCreationTime>
|
||||
reference
|
||||
"RFC 5277, Section 3.4, <replayLogCreationTime>
|
||||
element.";
|
||||
}
|
||||
}
|
||||
|
||||
list access {
|
||||
key encoding;
|
||||
min-elements 1;
|
||||
description
|
||||
"The server will create an entry in this list for each
|
||||
list access {
|
||||
key encoding;
|
||||
min-elements 1;
|
||||
description
|
||||
"The server will create an entry in this list for each
|
||||
encoding format that is supported for this stream.
|
||||
The media type 'text/event-stream' is expected
|
||||
for all event streams. This list identifies the
|
||||
subtypes supported for this stream.";
|
||||
|
||||
leaf encoding {
|
||||
type string;
|
||||
description
|
||||
"This is the secondary encoding format within the
|
||||
leaf encoding {
|
||||
type string;
|
||||
description
|
||||
"This is the secondary encoding format within the
|
||||
'text/event-stream' encoding used by all streams.
|
||||
The type 'xml' is supported for XML encoding.
|
||||
The type 'json' is supported for JSON encoding.";
|
||||
}
|
||||
}
|
||||
|
||||
leaf location {
|
||||
type inet:uri;
|
||||
mandatory true;
|
||||
description
|
||||
"Contains a URL that represents the entry point
|
||||
leaf location {
|
||||
type inet:uri;
|
||||
mandatory true;
|
||||
description
|
||||
"Contains a URL that represents the entry point
|
||||
for establishing notification delivery via
|
||||
server-sent events.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue