<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns="http://netconfcentral.org/ns/netconfd"
  targetNamespace="http://netconfcentral.org/ns/netconfd"
  elementFormDefault="qualified" attributeFormDefault="unqualified"
  xml:lang="en" version="2011-12-15"
  xmlns:ncx="http://netconfcentral.org/ns/yuma-ncx"
  xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
  xmlns:yt="http://netconfcentral.org/ns/yuma-types"
  xmlns:appcmn="http://netconfcentral.org/ns/yuma-app-common"
  xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types">
  <xs:annotation>
    <xs:documentation>Converted from YANG file 'netconfd.yang' by yangdump version 2.2.1737
      
      Module: netconfd
      Organization: Netconf Central
      Version: 2011-12-15
      Contact: Andy Bierman &lt;support@netconfcentral.org&gt;.</xs:documentation>
    <xs:documentation>Configuration Parameters for netconfd;
      This module is not advertised by the server.
      It contains only CLI parameters.</xs:documentation>
    <xs:appinfo>
      <ncx:source>/usr/share/yuma/modules/netconfcentral/netconfd.yang</ncx:source>
      <ncx:organization>Netconf Central</ncx:organization>
      <ncx:contact>Andy Bierman &lt;support@netconfcentral.org&gt;.</ncx:contact>
    </xs:appinfo>
    <xs:appinfo>
      <ncx:revision>
        <ncx:version>2011-12-15</ncx:version>
        <ncx:description>Add --running-error parameter.</ncx:description>
      </ncx:revision>
      <ncx:revision>
        <ncx:version>2011-10-08</ncx:version>
        <ncx:description>Add --home parameter.</ncx:description>
      </ncx:revision>
      <ncx:revision>
        <ncx:version>2011-08-27</ncx:version>
        <ncx:description>Add --runpath parameter.
          Add --factory-startup parameter.</ncx:description>
      </ncx:revision>
      <ncx:revision>
        <ncx:version>2011-07-20</ncx:version>
        <ncx:description>Add --audit-log and --audit-log-append CLI parameters.
          Add --system-sorted CLI parameter.
          Make with-defaults enum local to prevent report-all-tagged
          from being accepted as a basic mode.</ncx:description>
      </ncx:revision>
      <ncx:revision>
        <ncx:version>2011-05-29</ncx:version>
        <ncx:description>Removed superuser YANG default to disable by default,
          to make sure an admin has to explicitly enable
          this feature.</ncx:description>
      </ncx:revision>
      <ncx:revision>
        <ncx:version>2011-04-24</ncx:version>
        <ncx:description>Added --protocols parameter via uses ProtocolsParm.
          Not available in yuma v1 branch.</ncx:description>
      </ncx:revision>
      <ncx:revision>
        <ncx:version>2011-04-02</ncx:version>
        <ncx:description>Added --delete-np-containers parameter.</ncx:description>
      </ncx:revision>
      <ncx:revision>
        <ncx:version>2010-05-13</ncx:version>
        <ncx:description>Added --with-url to enable :url capability.</ncx:description>
      </ncx:revision>
      <ncx:revision>
        <ncx:version>2010-01-14</ncx:version>
        <ncx:description>Initial version for 0.9.9 release.</ncx:description>
      </ncx:revision>
    </xs:appinfo>
  </xs:annotation>
  <xs:group name="StartupChoice">
    <xs:sequence>
      <xs:choice>
        <xs:annotation>
          <xs:documentation>select startup config for boot load</xs:documentation>
          <xs:appinfo>
            <ncx:choice-name>start</ncx:choice-name>
          </xs:appinfo>
        </xs:annotation>
        <xs:sequence>
          <xs:annotation>
            <xs:appinfo>
              <ncx:case-name>no-startup</ncx:case-name>
            </xs:appinfo>
          </xs:annotation>
          <xs:element name="no-startup" minOccurs="0">
            <xs:annotation>
              <xs:documentation>If present, do not load the startup config file.
                Use the factory default settings but do not
                overwrite the NV-storage startup unless it
                is altered. This option does not delete the startup
                config file if it exists.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:any minOccurs="0" maxOccurs="unbounded"
            namespace="##other" processContents="lax"/>
        </xs:sequence>
        <xs:sequence>
          <xs:annotation>
            <xs:appinfo>
              <ncx:case-name>factory-startup</ncx:case-name>
            </xs:appinfo>
          </xs:annotation>
          <xs:element name="factory-startup" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Force the system to use the factory configuration
                and delete the startup config file if it exists.
                Force the NV-storage startup to
                contain the factory default configuration.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:any minOccurs="0" maxOccurs="unbounded"
            namespace="##other" processContents="lax"/>
        </xs:sequence>
        <xs:sequence>
          <xs:annotation>
            <xs:appinfo>
              <ncx:case-name>startup</ncx:case-name>
            </xs:appinfo>
          </xs:annotation>
          <xs:element name="startup" type="xs:string" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The full or relative filespec of the startup config
                file to use.
                
                If present, overrides the default startup config
                file name 'startup-cfg.xml',  This will also
                override the YUMA_DATAPATH environment variable
                and the datapath CLI parameter, if the first
                character is the forward slash '/', indicating
                an absolute file path.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:any minOccurs="0" maxOccurs="unbounded"
            namespace="##other" processContents="lax"/>
        </xs:sequence>
        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
          processContents="lax"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:element name="netconfd">
    <xs:annotation>
      <xs:documentation>Server CLI for the NETCONF protocol.
        Usage:
          netconfd [parameters]</xs:documentation>
      <xs:appinfo>
        <ncx:config>true</ncx:config>
        <ncx:cli/>
      </xs:appinfo>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="access-control" default="enforcing"
          minOccurs="0">
          <xs:annotation>
            <xs:documentation>Controls how access control is initially enforced by the
              server.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="enforcing">
                <xs:annotation>
                  <xs:documentation>All configured access control rules will be
                    enforced.</xs:documentation>
                  <xs:appinfo>
                    <ncx:value>0</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="permissive">
                <xs:annotation>
                  <xs:documentation>All configured access control rules will be
                    enforced for write and execute requests.
                    All read requests will be allowed, unless
                    the requested object contains the
                    'nacm:very-secure' extension.  In that case,
                    all configured access control rules will
                    be enforced.</xs:documentation>
                  <xs:appinfo>
                    <ncx:value>1</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="disabled">
                <xs:annotation>
                  <xs:documentation>All read, write, and execute requests will be
                    allowed, unless the object contains the
                    'nacm:secure' or 'nacm:very-secure' extension.
                    If the 'nacm:secure' extension is in effect,
                    then all configured access control rules
                    will be enforced for write and execute requests.
                    If the 'nacm:very-secure' extension is in effect,
                    then all configured access control rules
                    will be enforced for all requests.
                    Use this mode with caution.</xs:documentation>
                  <xs:appinfo>
                    <ncx:value>2</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="off">
                <xs:annotation>
                  <xs:documentation>All access control enforcement is disabled.
                    Use this mode with extreme caution.</xs:documentation>
                  <xs:appinfo>
                    <ncx:value>3</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="audit-log" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Filespec for the server audit log file to use in addition
              to the normal log file or STDOUT.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="audit-log-append" minOccurs="0">
          <xs:annotation>
            <xs:documentation>If present, the audit log will be appended not over-written.
              If not, the audit log will be over-written.
              Only meaningful if the 'audit-log' parameter is
              also present.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="default-style" default="explicit"
          minOccurs="0">
          <xs:annotation>
            <xs:documentation>Selects the type of filtering behavior the server will
              advertise as the 'basic' behavior in the 'with-defaults'
              capability.  The server will use this default handling
              behavior if the 'with-defaults' parameter is not
              explicitly set.
              
              Also, when saving a configuration to NV-storage,
              this value will be used for filtering defaults
              from the saved configuration.
              
              See wd:with-defaults leaf for enumeration details.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="report-all">
                <xs:annotation>
                  <xs:appinfo>
                    <ncx:value>0</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="trim">
                <xs:annotation>
                  <xs:appinfo>
                    <ncx:value>1</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="explicit">
                <xs:annotation>
                  <xs:appinfo>
                    <ncx:value>2</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="delete-empty-npcontainers" type="xs:boolean"
          default="false" minOccurs="0">
          <xs:annotation>
            <xs:documentation>An empty non-presence container has no meaning
              in NETCONF/YANG so it may be deleted by the server.
              This takes non-trivial processing time for large
              databases, but uses less memory.
              Disabling this parameter will result in a larger
              database in both memory and NV-save.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="eventlog-size" type="xs:unsignedInt"
          default="1000" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Specifies the maximum number of notification events
              that will be saved in the notification replay buffer.
              The oldest entries will be deleted first.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="hello-timeout" default="600" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Specifies the number of seconds that a session
              may exist before the hello PDU is received.
              A session will be dropped if no hello PDU
              is received before this number of seconds elapses.
              
              If this parameter is set to zero, then the server
              will wait forever for a hello message, and not
              drop any sessions stuck in 'hello-wait' state.
              
              Setting this parameter to zero may permit
              denial of service attacks, since only a limited
              number of concurrent sessions are supported
              by the server.</xs:documentation>
            <xs:appinfo>
              <ncx:units>seconds</ncx:units>
            </xs:appinfo>
          </xs:annotation>
          <xs:simpleType>
            <xs:union>
              <xs:simpleType>
                <xs:restriction base="xs:unsignedInt">
                  <xs:maxInclusive value="0"/>
                </xs:restriction>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:unsignedInt">
                  <xs:minInclusive value="10"/>
                  <xs:maxInclusive value="3600"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:union>
          </xs:simpleType>
        </xs:element>
        <xs:element name="idle-timeout" default="3600" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Specifies the number of seconds that a session
              may remain idle without issuing any RPC requests.
              A session will be dropped if it is idle for an
              interval longer than this number of seconds.
              
              Sessions that have a notification subscription
              active are never dropped.
              
              If this parameter is set to zero, then the server
              will never drop a session because it is idle.</xs:documentation>
            <xs:appinfo>
              <ncx:units>seconds</ncx:units>
            </xs:appinfo>
          </xs:annotation>
          <xs:simpleType>
            <xs:union>
              <xs:simpleType>
                <xs:restriction base="xs:unsignedInt">
                  <xs:maxInclusive value="0"/>
                </xs:restriction>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:unsignedInt">
                  <xs:minInclusive value="10"/>
                  <xs:maxInclusive value="360000"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:union>
          </xs:simpleType>
        </xs:element>
        <xs:element name="max-burst" type="xs:unsignedInt" default="10"
          minOccurs="0">
          <xs:annotation>
            <xs:documentation>Specifies the maximum number of notifications
              that should be sent to one session, within a
              one second time interval.  The value 0 indicates
              that the server should not limit notification
              bursts at all.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="port" type="inet:port-number" minOccurs="0"
          maxOccurs="4">
          <xs:annotation>
            <xs:documentation>Specifies the TCP ports that the server will accept
              connections from.  These ports must also be configured
              in the /etc/ssh/sshd_config file for the SSH master
              server to accept the connection and invoke the netconf
              subsystem.
              
              Up to 4 port numbers can be configured.
              
              If any ports are configured, then only those values
              will be accepted by the server.
              
              If no ports are configured, then the server will accept
              connections on the netconf-ssh port (tcp/830).</xs:documentation>
            <xs:appinfo>
              <ncx:ordered-by>system</ncx:ordered-by>
            </xs:appinfo>
          </xs:annotation>
        </xs:element>
        <xs:element name="running-error" default="stop" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Controls the server behavior if any errors are
              encountered while validating the running database
              during the initial load of the running configuration
              at boot-time.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="stop">
                <xs:annotation>
                  <xs:documentation>Terminate the program if any errors are
                    encountered in the running configuration.</xs:documentation>
                  <xs:appinfo>
                    <ncx:value>0</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="continue">
                <xs:annotation>
                  <xs:documentation>Continue the program if any errors are
                    encountered in the running configuration.
                    Altering the running configuration will fail
                    until the commit validation tests succeed.</xs:documentation>
                  <xs:appinfo>
                    <ncx:value>1</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:choice>
          <xs:annotation>
            <xs:documentation>select startup config for boot load</xs:documentation>
            <xs:appinfo>
              <ncx:choice-name>start</ncx:choice-name>
            </xs:appinfo>
          </xs:annotation>
          <xs:sequence>
            <xs:annotation>
              <xs:appinfo>
                <ncx:case-name>factory-startup</ncx:case-name>
              </xs:appinfo>
            </xs:annotation>
            <xs:element name="factory-startup" minOccurs="0">
              <xs:annotation>
                <xs:documentation>Force the system to use the factory configuration
                  and delete the startup config file if it exists.
                  Force the NV-storage startup to
                  contain the factory default configuration.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:any minOccurs="0" maxOccurs="unbounded"
              namespace="##other" processContents="lax"/>
          </xs:sequence>
          <xs:sequence>
            <xs:annotation>
              <xs:appinfo>
                <ncx:case-name>no-startup</ncx:case-name>
              </xs:appinfo>
            </xs:annotation>
            <xs:element name="no-startup" minOccurs="0">
              <xs:annotation>
                <xs:documentation>If present, do not load the startup config file.
                  Use the factory default settings but do not
                  overwrite the NV-storage startup unless it
                  is altered. This option does not delete the startup
                  config file if it exists.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:any minOccurs="0" maxOccurs="unbounded"
              namespace="##other" processContents="lax"/>
          </xs:sequence>
          <xs:sequence>
            <xs:annotation>
              <xs:appinfo>
                <ncx:case-name>startup</ncx:case-name>
              </xs:appinfo>
            </xs:annotation>
            <xs:element name="startup" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>The full or relative filespec of the startup config
                  file to use.
                  
                  If present, overrides the default startup config
                  file name 'startup-cfg.xml',  This will also
                  override the YUMA_DATAPATH environment variable
                  and the datapath CLI parameter, if the first
                  character is the forward slash '/', indicating
                  an absolute file path.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:any minOccurs="0" maxOccurs="unbounded"
              namespace="##other" processContents="lax"/>
          </xs:sequence>
          <xs:any minOccurs="0" maxOccurs="unbounded"
            namespace="##other" processContents="lax"/>
        </xs:choice>
        <xs:element name="startup-error" default="continue"
          minOccurs="0">
          <xs:annotation>
            <xs:documentation>Controls the server behavior if any errors are
              encountered while loading the startup configuration
              file into the running configuration at boot-time.
              It is possible for the startup configuration
              to contain errors within optional nodes.  If this
              parameter is set to 'continue', then the validation
              tests on the running config (controlled by running-error)
              should not fail due to missing optional nodes.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="stop">
                <xs:annotation>
                  <xs:documentation>Terminate the program if any errors are
                    encountered in the startup configuration.</xs:documentation>
                  <xs:appinfo>
                    <ncx:value>0</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="continue">
                <xs:annotation>
                  <xs:documentation>Continue the program if any errors are
                    encountered in the startup configuration.
                    The entire module-specific data structure(s)
                    containing the error node(s) will not be added
                    to the running configuration at boot-time.</xs:documentation>
                  <xs:appinfo>
                    <ncx:value>1</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="superuser" minOccurs="0">
          <xs:annotation>
            <xs:documentation>The user name to use as the superuser account.
              Any session associated with this user name
              will bypass all access control enforcement.
              See yuma-nacm.yang for more details.
              
              To disable the superuser account completely,
              set this parameter to the empty string or do
              not set it at all. The default mode is to
              disable superuser access.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:union>
              <xs:simpleType>
                <xs:restriction base="yt:NcxName"/>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:maxLength value="0"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:union>
          </xs:simpleType>
        </xs:element>
        <xs:element name="system-sorted" type="xs:boolean"
          default="true" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Indicates whether ordered-by system leaf-lists
              and lists will be kept in sorted order.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="target" default="candidate" minOccurs="0">
          <xs:annotation>
            <xs:documentation>The database to use as the target of edit-config
              operations.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="running">
                <xs:annotation>
                  <xs:documentation>Write to the running config and support
                    the :writable-running capability.</xs:documentation>
                  <xs:appinfo>
                    <ncx:value>0</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="candidate">
                <xs:annotation>
                  <xs:documentation>Write to the candidate config and support
                    the :candidate and :confirmed-commit
                    capabilities.</xs:documentation>
                  <xs:appinfo>
                    <ncx:value>1</ncx:value>
                  </xs:appinfo>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="usexmlorder" minOccurs="0">
          <xs:annotation>
            <xs:documentation>If present, then XML element order will be enforced.
              Otherwise, XML element order errors will not be
              generated if possible. Default is no enforcement of
              strict XML order.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="with-startup" type="xs:boolean"
          default="false" minOccurs="0">
          <xs:annotation>
            <xs:documentation>If set to 'true', then the :startup capability will be
              enabled. Otherwise, the :startup capability
              will not be enabled.  This capability
              makes the NV-save operation an explicit operation
              instead of an automatic save.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="with-url" type="xs:boolean" default="true"
          minOccurs="0">
          <xs:annotation>
            <xs:documentation>If set to 'true', then the :url capability will be
              enabled. Otherwise, the :url capability
              will not be enabled.  This capability requires a
              file system and may introduce security risks
              because internal files such as startup-cfg.xml
              and backup-cfg.xml will be exposed.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="with-validate" type="xs:boolean"
          default="true" minOccurs="0">
          <xs:annotation>
            <xs:documentation>If set to 'true', then the :validate capability will be
              enabled. Otherwise, the :validate capability
              will not be enabled.  This capability requires
              extensive memory resources.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
          processContents="lax"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

