<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:ietf:params:xml:ns:yang:yin:1" xmlns:nacm="urn:ietf:params:xml:ns:yang:ietf-netconf-acm" xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types" name="ietf-netconf-acm">
  <namespace uri="urn:ietf:params:xml:ns:yang:ietf-netconf-acm"/>
  <prefix value="nacm"/>
  <import module="ietf-yang-types">
    <prefix value="yang"/>
  </import>
  <organization>
    <text>IETF NETCONF (Network Configuration) Working Group</text>
  </organization>
  <contact>
    <text>WG Web:   &lt;http://tools.ietf.org/wg/netconf/&gt;
WG List:  &lt;mailto:netconf@ietf.org&gt;

WG Chair: Mehmet Ersue
          &lt;mailto:mehmet.ersue@nsn.com&gt;

WG Chair: Bert Wijnen
          &lt;mailto:bertietf@bwijnen.net&gt;

Editor:   Andy Bierman
          &lt;mailto:andy@yumaworks.com&gt;

Editor:   Martin Bjorklund
          &lt;mailto:mbj@tail-f.com&gt;</text>
  </contact>
  <description>
    <text>NETCONF Access Control Model.

Copyright (c) 2012 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 6536; see
the RFC itself for full legal notices.</text>
  </description>
  <revision date="2012-02-22">
    <description>
      <text>Initial version</text>
    </description>
    <reference>
      <text>RFC 6536: Network Configuration Protocol (NETCONF)
          Access Control Model</text>
    </reference>
  </revision>
  <extension name="default-deny-write">
    <description>
      <text>Used to indicate that the data model node
represents a sensitive security system parameter.

If present, and the NACM module is enabled (i.e.,
/nacm/enable-nacm object equals 'true'), the NETCONF server
will only allow the designated 'recovery session' to have
write access to the node.  An explicit access control rule is
required for all other users.

The 'default-deny-write' extension MAY appear within a data
definition statement.  It is ignored otherwise.</text>
    </description>
  </extension>
  <extension name="default-deny-all">
    <description>
      <text>Used to indicate that the data model node
controls a very sensitive security system parameter.

If present, and the NACM module is enabled (i.e.,
/nacm/enable-nacm object equals 'true'), the NETCONF server
will only allow the designated 'recovery session' to have
read, write, or execute access to the node.  An explicit
access control rule is required for all other users.

The 'default-deny-all' extension MAY appear within a data
definition statement, 'rpc' statement, or 'notification'
statement.  It is ignored otherwise.</text>
    </description>
  </extension>
  <typedef name="user-name-type">
    <type name="string">
      <length value="1..max"/>
    </type>
    <description>
      <text>General Purpose Username string.</text>
    </description>
  </typedef>
  <typedef name="matchall-string-type">
    <type name="string">
      <pattern value="\*"/>
    </type>
    <description>
      <text>The string containing a single asterisk '*' is used
to conceptually represent all possible values
for the particular leaf using this data type.</text>
    </description>
  </typedef>
  <typedef name="access-operations-type">
    <type name="bits">
      <bit name="create">
        <description>
          <text>Any protocol operation that creates a
new data node.</text>
        </description>
      </bit>
      <bit name="read">
        <description>
          <text>Any protocol operation or notification that
returns the value of a data node.</text>
        </description>
      </bit>
      <bit name="update">
        <description>
          <text>Any protocol operation that alters an existing
data node.</text>
        </description>
      </bit>
      <bit name="delete">
        <description>
          <text>Any protocol operation that removes a data node.</text>
        </description>
      </bit>
      <bit name="exec">
        <description>
          <text>Execution access to the specified protocol operation.</text>
        </description>
      </bit>
    </type>
    <description>
      <text>NETCONF Access Operation.</text>
    </description>
  </typedef>
  <typedef name="group-name-type">
    <type name="string">
      <length value="1..max"/>
      <pattern value="[^\*].*"/>
    </type>
    <description>
      <text>Name of administrative group to which
users can be assigned.</text>
    </description>
  </typedef>
  <typedef name="action-type">
    <type name="enumeration">
      <enum name="permit">
        <description>
          <text>Requested action is permitted.</text>
        </description>
      </enum>
      <enum name="deny">
        <description>
          <text>Requested action is denied.</text>
        </description>
      </enum>
    </type>
    <description>
      <text>Action taken by the server when a particular
rule matches.</text>
    </description>
  </typedef>
  <typedef name="node-instance-identifier">
    <type name="yang:xpath1.0"/>
    <description>
      <text>Path expression used to represent a special
data node instance identifier string.

A node-instance-identifier value is an
unrestricted YANG instance-identifier expression.
All the same rules as an instance-identifier apply
except predicates for keys are optional.  If a key
predicate is missing, then the node-instance-identifier
represents all possible server instances for that key.

This XPath expression is evaluated in the following context:

 o  The set of namespace declarations are those in scope on
    the leaf element where this type is used.

 o  The set of variable bindings contains one variable,
    'USER', which contains the name of the user of the current
     session.

 o  The function library is the core function library, but
    note that due to the syntax restrictions of an
    instance-identifier, no functions are allowed.

 o  The context node is the root node in the data tree.</text>
    </description>
  </typedef>
  <container name="nacm">
    <nacm:default-deny-all/>
    <description>
      <text>Parameters for NETCONF Access Control Model.</text>
    </description>
    <leaf name="enable-nacm">
      <type name="boolean"/>
      <default value="true"/>
      <description>
        <text>Enables or disables all NETCONF access control
enforcement.  If 'true', then enforcement
is enabled.  If 'false', then enforcement
is disabled.</text>
      </description>
    </leaf>
    <leaf name="read-default">
      <type name="action-type"/>
      <default value="permit"/>
      <description>
        <text>Controls whether read access is granted if
no appropriate rule is found for a
particular read request.</text>
      </description>
    </leaf>
    <leaf name="write-default">
      <type name="action-type"/>
      <default value="deny"/>
      <description>
        <text>Controls whether create, update, or delete access
is granted if no appropriate rule is found for a
particular write request.</text>
      </description>
    </leaf>
    <leaf name="exec-default">
      <type name="action-type"/>
      <default value="permit"/>
      <description>
        <text>Controls whether exec access is granted if no appropriate
rule is found for a particular protocol operation request.</text>
      </description>
    </leaf>
    <leaf name="enable-external-groups">
      <type name="boolean"/>
      <default value="true"/>
      <description>
        <text>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.</text>
      </description>
    </leaf>
    <leaf name="denied-operations">
      <type name="yang:zero-based-counter32"/>
      <config value="false"/>
      <mandatory value="true"/>
      <description>
        <text>Number of times since the server last restarted that a
protocol operation request was denied.</text>
      </description>
    </leaf>
    <leaf name="denied-data-writes">
      <type name="yang:zero-based-counter32"/>
      <config value="false"/>
      <mandatory value="true"/>
      <description>
        <text>Number of times since the server last restarted that a
protocol operation request to alter
a configuration datastore was denied.</text>
      </description>
    </leaf>
    <leaf name="denied-notifications">
      <type name="yang:zero-based-counter32"/>
      <config value="false"/>
      <mandatory value="true"/>
      <description>
        <text>Number of times since the server last restarted that
a notification was dropped for a subscription because
access to the event type was denied.</text>
      </description>
    </leaf>
    <container name="groups">
      <description>
        <text>NETCONF Access Control Groups.</text>
      </description>
      <list name="group">
        <key value="name"/>
        <description>
          <text>One NACM Group Entry.  This list will only contain
configured entries, not any entries learned from
any transport protocols.</text>
        </description>
        <leaf name="name">
          <type name="group-name-type"/>
          <description>
            <text>Group name associated with this entry.</text>
          </description>
        </leaf>
        <leaf-list name="user-name">
          <type name="user-name-type"/>
          <description>
            <text>Each entry identifies the username of
a member of the group associated with
this entry.</text>
          </description>
        </leaf-list>
      </list>
    </container>
    <list name="rule-list">
      <key value="name"/>
      <ordered-by value="user"/>
      <description>
        <text>An ordered collection of access control rules.</text>
      </description>
      <leaf name="name">
        <type name="string">
          <length value="1..max"/>
        </type>
        <description>
          <text>Arbitrary name assigned to the rule-list.</text>
        </description>
      </leaf>
      <leaf-list name="group">
        <type name="union">
          <type name="matchall-string-type"/>
          <type name="group-name-type"/>
        </type>
        <description>
          <text>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.</text>
        </description>
      </leaf-list>
      <list name="rule">
        <key value="name"/>
        <ordered-by value="user"/>
        <description>
          <text>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
'access-operations' match the request.  If a rule
matches, the 'action' leaf determines if access is granted
or not.</text>
        </description>
        <leaf name="name">
          <type name="string">
            <length value="1..max"/>
          </type>
          <description>
            <text>Arbitrary name assigned to the rule.</text>
          </description>
        </leaf>
        <leaf name="module-name">
          <type name="union">
            <type name="matchall-string-type"/>
            <type name="string"/>
          </type>
          <default value="*"/>
          <description>
            <text>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.</text>
          </description>
        </leaf>
        <choice name="rule-type">
          <description>
            <text>This choice matches if all leafs present in the rule
match the request.  If no leafs are present, the
choice matches all requests.</text>
          </description>
          <case name="protocol-operation">
            <leaf name="rpc-name">
              <type name="union">
                <type name="matchall-string-type"/>
                <type name="string"/>
              </type>
              <description>
                <text>This leaf matches if it has the value '*' or if
its value equals the requested protocol operation
name.</text>
              </description>
            </leaf>
          </case>
          <case name="notification">
            <leaf name="notification-name">
              <type name="union">
                <type name="matchall-string-type"/>
                <type name="string"/>
              </type>
              <description>
                <text>This leaf matches if it has the value '*' or if its
value equals the requested notification name.</text>
              </description>
            </leaf>
          </case>
          <case name="data-node">
            <leaf name="path">
              <type name="node-instance-identifier"/>
              <mandatory value="true"/>
              <description>
                <text>Data Node Instance Identifier associated with the
data node controlled by this rule.

Configuration data or state data instance
identifiers start with a top-level data node.  A
complete instance identifier is required for this
type of path value.

The special value '/' refers to all possible
datastore contents.</text>
              </description>
            </leaf>
          </case>
        </choice>
        <leaf name="access-operations">
          <type name="union">
            <type name="matchall-string-type"/>
            <type name="access-operations-type"/>
          </type>
          <default value="*"/>
          <description>
            <text>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.</text>
          </description>
        </leaf>
        <leaf name="action">
          <type name="action-type"/>
          <mandatory value="true"/>
          <description>
            <text>The access control action associated with the
rule.  If a rule is determined to match a
particular request, then this object is used
to determine whether to permit or deny the
request.</text>
          </description>
        </leaf>
        <leaf name="comment">
          <type name="string"/>
          <description>
            <text>A textual description of the access rule.</text>
          </description>
        </leaf>
      </list>
    </list>
  </container>
</module>
