SACM Working Group                                           H. Birkholz
Internet-Draft                                            Fraunhofer SIT
Intended status: Standards Track                           N. Cam-Winget
Expires: July 22, 2018                                     Cisco Systems
                                                        January 18, 2018


           YANG subscribed notifications via SACM Statements
                  draft-birkholz-sacm-yang-content-01

Abstract

   This document summarizes a subset of the emerging generic SACM Data
   Model for inter-component distribution of SACM Content in and between
   SACM Domains.  The subset defined in this document is covering every
   information element that can be acquired using YANG based protocols,
   i.e. NETCONF, RESTCONF, COMI or derived mechanisms that transfer YANG
   modeled data, such as MUD.  As subscriptions to data origins in a
   SACM domain are one of the architectural corner-stones of the SACM
   architecture, this document recommends the use of YANG Push, YANG
   subscribed Notifications and corresponding Notification Headers and
   Bundles.  Analogously, a mapping of Notification Header content to
   SACM Metadata is provided in this document.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on July 22, 2018.

Copyright Notice

   Copyright (c) 2018 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with
   respect to this document.



Birkholz & Cam-Winget     Expires July 22, 2018                 [Page 1]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements notation . . . . . . . . . . . . . . . . . . . .   3
   3.  Brokering of YANG Push Telemetry via SACM Statements  . . . .   3
   4.  Encapsulation of YANG notifications in SACM content-elements    4
     4.1.  Enumeration definition for content-type . . . . . . . . .   4
     4.2.  Element definition for content-metadata . . . . . . . . .   5
     4.3.  Definition of the yang-output-metadata element included
           in content-metadata . . . . . . . . . . . . . . . . . . .   5
   5.  Mapping of YANG Bundled Notifications to SACM Metadata  . . .   7
   6.  SACM Component Composition  . . . . . . . . . . . . . . . . .   8
   7.  IANA considerations . . . . . . . . . . . . . . . . . . . . .   8
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   8
   10. Change Log  . . . . . . . . . . . . . . . . . . . . . . . . .   8
   11. Contributors  . . . . . . . . . . . . . . . . . . . . . . . .   9
   12. Normative References  . . . . . . . . . . . . . . . . . . . .   9
   Appendix A.  Minimal SACM Statement Definition for YANG Output  .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  29

1.  Introduction

   This document defines an XML encoding of SACM Statements that contain
   SACM Content composed of YANG modeled data (i.e.  NETCONF messages).
   Correspondingly, this documents provides a standardized mapping to
   derive SACM Metadata from YANG Subscribed Notifications
   [I-D.ietf-netconf-subscribed-notifications] using Notification
   Message Headers and Bundles [I-D.ietf-netconf-notification-messages]
   content.

   Every message defined in the generic SACM Data Model is a SACM
   Statement.  The SACM Statement structure is provided by the SACM
   Information Model.  In consequence, a SACM Statement is an
   Information Element not acquired by, but created by SACM Components
   for inter-component distribution of SACM Content (Information
   Elements on the Data Plane that represent information about Target
   Endpoints (TE) or Guidance.  Examples include: software identifiers,
   assessment guidance/results, ECA Policy rules, or VDD).




Birkholz & Cam-Winget     Expires July 22, 2018                 [Page 2]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


   YANG modules are a powerful established tool to provide Information
   Elements about Target Endpoints with well-defined semantics.  YANG
   Push [I-D.ietf-netconf-yang-push] and the corresponding YANG
   Subscribed Notifications [I-D.ietf-netconf-subscribed-notifications]
   drafts make use of these modules to create streams of notifications
   (YANG telemetry).  Subscriptions to YANG data stores or YANG streams
   are Data Sources that provide Information Elements that can be
   acquired by SACM Collectors to provide SACM Content on the Data
   Plane.

   Analogously, filter expressions used in the context of YANG
   subscriptions constitute SACM Content that is Imperative Guidance
   consumed by SACM Components on the Management Plane in order to
   create YANG telemetry.

   In this document (not including the abstract, of course), terms that
   are Capitalized or prefixed with SACM are defined in the SACM
   Terminology document.

2.  Requirements notation

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in RFC
   2119, BCP 14 [RFC2119].

3.  Brokering of YANG Push Telemetry via SACM Statements

   Every SACM Content is published into a SACM Domain using a statement
   envelope/encapsulation.  The general structure of a SACM Statement is
   based on the Information Element definition found in
   [I-D.ietf-sacm-information-model] and can be summarized as follows:

   o  a sacm-statement encapsulates statement-metadata and content-
      elements

   o  a content-element encapsulates content-metadata and SACM Content

   In the scope of this document, only one type of SACM Content is
   covered: YANG modeled data.  Correspondingly, the minimal required
   structure of statements, statement-metadata, content-elements, and
   content-metadata are defined.  A complete XML schema definition of
   this subset of the generic SACM Data Model can be found in
   Appendix A.







Birkholz & Cam-Winget     Expires July 22, 2018                 [Page 3]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


4.  Encapsulation of YANG notifications in SACM content-elements

   A YANG notification is associated with a set of YANG specific
   metadata as defined in [I-D.ietf-netconf-notification-messages].
   Hence, SACM Content that is derived from a YANG notification
   published to a SACM Domain MUST be encapsulated with its
   corresponding Metadata in a content-element as defined below.

   YANG output that is SACM Content MUST be represented according to the
   XSD definition included in the content choice of the content-element.

<CODE BEGINS>
<xs:complexType name="content-element">
  <xs:sequence>
    <xs:element name="content-metadata" type="content-metadata" maxOccurs="unbounded"/>
    <xs:choice>
      <xs:element name="yang-output" type="yang-output" />
        <!-- There is only one element here now, but virtually every other content choice
             will go here, i.e. data models, such as OVAL, SCAP, SWID, etc. -->
    </xs:choice>
  </xs:sequence>
</xs:complexType>
<CODE ENDS>

4.1.  Enumeration definition for content-type

   An occurrence of the yang-output element MUST be instantiated in the
   content-metadata element, if YANG Push output is to be transferred.
   Also, the content-type MUST be set to the enumeration value "yang-
   output", respectively.

   In general, the list of content-type enumerations is including every
   subject as defined in the SACM Information Model.  Regarding the
   definition of the subset of the generic SACM Data Model provided by
   this document, the list of potential content-types is reduced to
   "yang-output".  Please note, that the complete generic SACM Data
   Model includes additional content-type enumerations next to the
   definition provided by this document.

<CODE BEGINS>
<xs:simpleType name="content-type">
  <xs:restriction base="xs:string">
    <xs:enumeration value="yang-output" />
       <!-- There is only one type here now, but virtually every other content-type
            will go here, i.e. data models, such as OVAL, SCAP, SWID, etc. -->
  </xs:restriction>
</xs:simpleType>
<CODE ENDS>



Birkholz & Cam-Winget     Expires July 22, 2018                 [Page 4]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


4.2.  Element definition for content-metadata

   The list of optional elements included in content-metadata will
   incorporate any every potential metadata type.  For the scope of this
   document, the list of elements is also limited to the minimal
   required set of metadata elements and the yang-output metadata
   element to support the encapsulation of NETCONF encoded subscribed
   notifications or YANG query result.  As defined above, one occurrence
   of the yang-output element has to be included in the content-metadata
   element.

   A more complete content-metadata element definition is illustrated in
   the Appendix A.

<CODE BEGINS>
<xs:complexType name="content-metadata">
  <xs:sequence>
    <xs:element name="content-element-guid" type="content-element-guid"/>
    <xs:element name="content-creation-timestamp" type="content-creation-timestamp"/>
    <xs:element name="content-topic" type="content-topic"/>
    <xs:element name="content-type" type="content-type"/>
    <xs:element name="data-source" type="data-source" minOccurs="0"/>
    <xs:element name="data-origin" type="data-origin" minOccurs="0"/>
    <xs:element name="relationship" type="relationship" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="yang-output-metadata" type="yang-output-metadata" minOccurs="0"/>
  </xs:sequence>
</xs:complexType>
<CODE ENDS>

4.3.  Definition of the yang-output-metadata element included in
      content-metadata

   The composition of metadata that can be associated with a XML NETCONF
   result depends on multiple factors:

   o  acquisition method: query / subscription

   o  encoding: XML # more content encodings will be supported as
      indicated by the definition

   o  subscription interval: periodic / on-change

   o  filter-type: xpath / subtree

   Additionally, the actual filter expression (or in future iterations
   of this work, a referencing Label, such as a URI, UUID or other
   composed identifier) has to be included in the content-metadata.




Birkholz & Cam-Winget     Expires July 22, 2018                 [Page 5]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


<CODE BEGINS>
<xs:complexType name="yang-output-metadata">
  <xs:sequence>
    <xs:choice maxOccurs="1">
      <xs:element name="yang-query" type="yang-query-value" />
      <xs:element name="yang-subscribtion" type="yang-subscribtion-type" />
    </xs:choice>
    <xs:element name="encoding" type="yang-encoding" />
    <xs:element name="module-names" type="module-name" minOccurs="0" maxOccurs="unbounded" />
    <xs:element name="filter-expression" type="filter-expression-value" minOccurs="0" maxOccurs="1" />
  </xs:sequence>
</xs:complexType>

<xs:complexType name="yang-subscribtion-type">
  <xs:restriction base="xs:NMTOKEN">
    <xs:enumeration value="periodic" />
    <xs:enumeration value="on-change" />
  </xs:restriction>
  <xs:restriction base="xs:NMTOKEN">
    <xs:enumeration value="xpath" />
    <xs:enumeration value="subtree" />
  </xs:restriction>
<xs:complexType>

<xs:simpleType name="filter-expression-value">
  <xs:restriction base="xs:string" />
</xs:simpleType>

<xs:simpleType name="yang-query-value">
  <xs:restriction base="xs:string" />
</xs:simpleType>

<xs:simpleType name="yang-encoding">
  <xs:restriction base="xs:NMTOKEN">
    <xs:enumeration value="netconf" />
    <xs:enumeration value="restconf" />
    <xs:enumeration value="comi" />
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="module-name">
  <xs:restriction base="xs:string" />
</xs:simpleType>
<CODE ENDS>







Birkholz & Cam-Winget     Expires July 22, 2018                 [Page 6]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


5.  Mapping of YANG Bundled Notifications to SACM Metadata

   [I-D.ietf-netconf-notification-messages] includes the following
   definition:

          yang-data bundled-message
             +-- bundled-message-header
             |  +-- message-time                yang:date-and-time
             |  +-- message-id?                 uint32
             |  +-- previous-message-id?        uint32
             |  +-- message-generator-id?       string
             |  +-- signature?                  string
             |  +-- notification-count?         uint16
             +-- notifications*
                +-- notification-header
                |  +-- notification-time        yang:date-and-time
                |  +-- subscription-id*         uint32
                |  +-- notification-id?         uint32
                |  +-- module?                  yang-identifier
                |  +-- notification-type?       notification
                |  +-- observation-domain-id?   string
                +-- receiver-record-contents?

   The corresponding mapping MUST be used when deriving SACM Content
   Metadata for content-metadata items from YANG modeled data
   corresponding to YANG Notification Message Headers and Bundles:

        notification-time -> content-creation-timestamp
        subscription-id + (observation-domain-id OR "SACM Component Label") -> content-element-guid
        module -> module-names
        notification-type -> yang-subscribtion-type
        receiver-record-contents -> content-elements

   If there are more than one receiver-record-contents instanced
   included in the received Notification Message Bundle, multiple
   content-elements MUST be instanciated, accordingly.

   The following mapping MUST be used when deriving SACM Statement
   Metadata (see Appendix A) statement-metadata items representing
   NETCONF instances adhering to the definition of YANG Notification
   Message Headers and Bundles:

        message-id -> statement-guid
        "SACM Component Label" -> data-origin
        message-time -> statement-creation-timestamp
        "SACM Component Publictation Time" -> statement-publish-timestamp
        statement-type -> "Observation"




Birkholz & Cam-Winget     Expires July 22, 2018                 [Page 7]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


   "SACM Component Publicatation Time" can only be inferred by the SACM
   Component using its "most trustworthy source of time".

   If there is not receiver-record-contents included in the YANG
   notification, a SACM Component MUST NOT publish a corresponding SACM
   Statement to the SACM Domain.

6.  SACM Component Composition

   A SACM Component able to process YANG subscribed notifications
   requires at least two functions:

   o  a SACM Function supporting YANG Push and YANG Notification Headers
      and

   o  Bundles function [I-D.ietf-netconf-yang-push],
      [I-D.ietf-netconf-subscribed-notifications], and

   o  an xmpp-grid provider function [I-D.ietf-mile-xmpp-grid]

   Orchestration of functions inside a component, their discovery as
   capabilities and the internal distribution of SACM Content inside a
   SACM Component is out of scope of this document. # for now

7.  IANA considerations

   This document includes requests to IANA.

8.  Security Considerations

   TBD

9.  Acknowledgements

   Christoph Vigano, Guangying Zheng, Eric Voit, Alexander Clemm

10.  Change Log

   First version -00

   Second version -01 * generalized the content of the document,
   detaching it from the implementation created at the Hackaton of IETF
   99 * included a mapping of the -03 version of the YANG Notification
   Headers and Bundles draft to this draft







Birkholz & Cam-Winget     Expires July 22, 2018                 [Page 8]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


11.  Contributors

   Eric Voit

12.  Normative References

   [I-D.ietf-mile-xmpp-grid]
              Cam-Winget, N., Appala, S., Pope, S., and P. Saint-Andre,
              "Using XMPP for Security Information Exchange", draft-
              ietf-mile-xmpp-grid-04 (work in progress), October 2017.

   [I-D.ietf-netconf-notification-messages]
              Voit, E., Bierman, A., Clemm, A., and T. Jenkins,
              "Notification Message Headers and Bundles", draft-ietf-
              netconf-notification-messages-02 (work in progress),
              October 2017.

   [I-D.ietf-netconf-subscribed-notifications]
              Voit, E., Clemm, A., Prieto, A., Nilsen-Nygaard, E., and
              A. Tripathy, "Custom Subscription to Event Streams",
              draft-ietf-netconf-subscribed-notifications-08 (work in
              progress), December 2017.

   [I-D.ietf-netconf-yang-push]
              Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen-
              Nygaard, E., Bierman, A., and B. Lengyel, "YANG Datastore
              Subscription", draft-ietf-netconf-yang-push-12 (work in
              progress), December 2017.

   [I-D.ietf-sacm-information-model]
              Waltermire, D., Watson, K., Kahn, C., Lorenzin, L., Cokus,
              M., Haynes, D., and H. Birkholz, "SACM Information Model",
              draft-ietf-sacm-information-model-10 (work in progress),
              April 2017.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

Appendix A.  Minimal SACM Statement Definition for YANG Output

   The definitions of statements, statement-metadata, content-element,
   and content-metadata are provided by the SACM Information Model
   [I-D.ietf-sacm-information-model].

   Due to the stripping down of content-elements to YANG output, the
   enumerations still included in the relationship-type are not able to



Birkholz & Cam-Winget     Expires July 22, 2018                 [Page 9]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


   point to other types of content in the scope of this document, but
   are able to reference other content-types in the scope of the generic
   SACM Data Model.

<CODE BEGINS>
<?xml version="1.0"?>
<xs:schema version="1.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified">

  <xs:complexType name="StatementMetadata">
    <xs:sequence>
      <xs:element name="statement-guid" type="statement-guid" />
      <xs:element name="data-origin" type="data-origin" />
      <xs:element name="statement-creation-timestamp" type="statement-creation-timestamp" minOccurs="0" />
      <xs:element name="statement-publish-timestamp" type="statement-creation-timestamp" />
      <xs:element name="statement-type" type="statement-type" />
      <xs:element name="content-elements" type="content-elements" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="sacm-statement">
    <xs:sequence>
      <xs:element name="statement-metadata" type="StatementMetadata" />
      <xs:element name="content-element" type="content-element" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="sacm-statement" type="sacm-statement">
  </xs:element>

  <xs:simpleType name="statement-guid">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="decimal-fraction-denominator">
    <xs:restriction base="xs:integer" />
  </xs:simpleType>

  <xs:simpleType name="decimal-fraction-numerator">
    <xs:restriction base="xs:integer" />
  </xs:simpleType>

  <xs:simpleType name="content-elements">
    <xs:restriction base="xs:integer" />
  </xs:simpleType>

  <xs:complexType name="statement-creation-timestamp">



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 10]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


    <xs:sequence>
      <xs:element name="decimal-fraction-denominator" type="decimal-fraction-denominator"/>
      <xs:element name="decimal-fraction-numerator" type="decimal-fraction-numerator"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="content-creation-timestamp">
    <xs:sequence>
      <xs:element name="decimal-fraction-denominator" type="decimal-fraction-denominator"/>
      <xs:element name="decimal-fraction-numerator" type="decimal-fraction-numerator"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="statement-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Observation" />
      <xs:enumeration value="DirectoryContent" />
      <xs:enumeration value="Correlation" />
      <xs:enumeration value="Assessment" />
      <xs:enumeration value="Guidance" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="content-topic">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Session" />
      <xs:enumeration value="User" />
      <xs:enumeration value="Interface" />
      <xs:enumeration value="PostureProfile" />
      <xs:enumeration value="Flow" />
      <xs:enumeration value="PostureAssessment" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="content-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="EndpointConfiguration" />
      <xs:enumeration value="EndpointState" />
      <xs:enumeration value="DirectoryEntry" />
      <xs:enumeration value="Event" />
      <xs:enumeration value="Incident" />
      <xs:enumeration value="yang-output" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="content-element-guid">
    <xs:restriction base="xs:string" />
  </xs:simpleType>



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 11]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


  <xs:complexType name="yang-output-metadata">
    <xs:sequence>
      <xs:choice maxOccurs="1">
        <xs:element name="yang-query" type="yang-query" />
        <xs:element name="yang-subscribe" type="yang-subscribe" />
      </xs:choice>
      <xs:element name="encoding" type="yang-encoding" />
      <xs:element name="module-names" type="module-name" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="yang-subscribe">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="periodic" />
      <xs:enumeration value="on-change" />
    </xs:restriction>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="xpath" />
      <xs:enumeration value="subtree" />
    </xs:restriction>
  </xs:complexType>

  <xs:simpleType name="filter-expression">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="yang-query">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="yang-encoding">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="netconf" />
      <xs:enumeration value="restconf" />
      <xs:enumeration value="comi" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="module-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="relationship-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="associated_with_user" />
      <xs:enumeration value="applies_to_session" />
      <xs:enumeration value="seen_on_interface" />
      <xs:enumeration value="associated_with_flow" />



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 12]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


      <xs:enumeration value="contains_virtual_device" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="relationship-content-element-guid">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="relationship-statement-guid">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="relationship-object-label">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="data-source-label">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="data-origin">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="host-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="administrative-domain-label">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="sub-administrative-domain">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="super-administrative-domain">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:complexType name="relationship">
    <xs:sequence>
      <xs:element name="relationship-type" type="relationship-type" />
      <xs:element name="relationship-content-element-guid" type="relationship-content-element-guid" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="relationship-statement-guid" type="relationship-statement-guid" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="relationship-object-label" type="relationship-object-label" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 13]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


  <xs:complexType name="flow-element">
    <xs:sequence>
      <xs:element name="network-address" type="network-address"/>
      <xs:element name="layer4-port-address" type="layer4-port-address" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="flow-record">
    <xs:sequence>
      <xs:element name="src-flow-element" type="flow-element" />
      <xs:element name="dst-flow-element" type="flow-element" />
      <xs:element name="protocol" type="protocol" />
      <xs:element name="layer4-protocol" type="layer4-protocol" />
      <xs:element name="flow-statistics" type="flow-statistics" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="content-metadata">
    <xs:sequence>
      <xs:element name="content-element-guid" type="content-element-guid" />
      <xs:element name="content-creation-timestamp" type="content-creation-timestamp" />
      <xs:element name="content-topic" type="content-topic" />
      <xs:element name="content-type" type="content-type" />
      <xs:element name="data-source" type="data-source" minOccurs="0" />
      <xs:element name="data-origin" type="data-origin" minOccurs="0" />
      <xs:element name="relationship" type="relationship" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="yang-output-metadata" type="yang-output-metadata" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="content-element">
    <xs:sequence>
      <xs:element name="content-metadata" type="content-metadata" maxOccurs="unbounded"/>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="yang-output" type="yang-output" />
        <xs:element name="flow" type="flow-record" />
        <xs:element name="posture" type="xs:string" />
        <xs:element name="user" type="user" />
        <xs:element name="session" type="session" />
        <xs:element name="ethernet-interface" type="ethernet-interface" />
        <xs:element name="target-endpoint" type="target-endpoint" />
        <xs:element name="port" type="port" />
        <xs:element name="posture-assessment" type="posture-assessment" />
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="posture-assessment"></xs:complexType>



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 14]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


  <xs:complexType name="target-endpoint">
    <xs:sequence>
      <xs:element name="host-name" type="host-name" />
      <xs:element name="te-label" type="te-label" />
      <xs:element name="administrative-domain" type="administrative-domain" minOccurs="0" />
      <xs:element name="application-instance" type="application-instance" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="ethernet-interface" type="ethernet-interface" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="address-association" type="address-association" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="data-source" type="data-source" minOccurs="0" />
      <xs:element name="operating-system" type="operating-system" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="te-label">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:complexType name="application-instance">
    <xs:sequence>
      <xs:element name="application-label" type="application-label" />
      <xs:element name="target-endpoint" type="target-endpoint" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="attribute-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="attribute-value">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:complexType name="attribute-value-pair">
    <xs:sequence>
      <xs:element name="attribute-name" type="attribute-name" />
      <xs:element name="attribute-value" type="attribute-value" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="application-label">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="application-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="application-version">



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 15]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="application-manufacturer">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <!--     TODO: is it possible to declare this as an enumeration or is that unrealistic? -->
  <xs:simpleType name="application-type">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="application-component">
    <xs:restriction base="xs:string" />
  </xs:simpleType>



  <xs:complexType name="application">
    <xs:sequence>
      <xs:element name="application-label" type="application-label" minOccurs="0" />
      <xs:element name="application-name" type="application-name" />
      <xs:element name="application-type" type="application-type" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="application-component" type="application-component" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="application-manufacturer" type="application-manufacturer" minOccurs="0" />
      <xs:element name="application-version" type="application-version" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="address-association">
    <xs:sequence>
      <xs:element name="address" type="address" />
      <xs:element name="address-association-type" type="address-association-type" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="address">
    <xs:sequence>
      <xs:element name="address-mask-value" type="address-mask-value" />
      <xs:element name="address-type" type="address-type" />
      <xs:element name="address-value" type="address-value" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="address-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Ethernet" />
      <xs:enumeration value="ZigBee" />



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 16]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


      <xs:enumeration value="ModBus" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="session-state-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Authenticating"></xs:enumeration>
      <xs:enumeration value="Authenticated"></xs:enumeration>
      <xs:enumeration value="Postured"></xs:enumeration>
      <xs:enumeration value="Started"></xs:enumeration>
      <xs:enumeration value="Disconnected"></xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="session">
    <xs:sequence>
      <xs:element name="session-state-type" type="session-state-type" />
      <!-- TODO: add additional elements for Session Type -->
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="user-id">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="username">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="user-directory">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:complexType name="user">
    <xs:sequence>
      <xs:element name="user-id" type="user-id" />
      <xs:element name="username" type="username" minOccurs="0" />
      <xs:element name="data-source" type="data-source" minOccurs="0" />
      <xs:element name="user-directory" type="user-directory" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ethernet-interface">
    <xs:sequence>
      <xs:element name="interface-label" type="interface-label" />
      <xs:element name="network-interface-name" type="network-interface-name" minOccurs="0"/>
      <xs:element name="mac-address" type="mac-address" />
      <xs:element name="network-name" type="network-name" minOccurs="0"/>



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 17]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


      <xs:element name="network-id" type="network-id" minOccurs="0"/>
      <xs:element name="layer2-interface-type" type="layer2-interface-type" minOccurs="0"/>
      <xs:element name="sub-interface-label" type="sub-interface-label" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="super-interface-label" type="super-interface-label" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="event-type">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="event-threshold">
    <xs:restriction base="xs:integer" />
  </xs:simpleType>

  <xs:simpleType name="event-threshold-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="event-trigger">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="timestamp-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="discovered" />
      <xs:enumeration value="classified" />
      <xs:enumeration value="collected" />
      <xs:enumeration value="published" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="typed-timestamp">
    <xs:sequence>
      <xs:element name="decimal-fraction-denominator" type="decimal-fraction-denominator"/>
      <xs:element name="decimal-fraction-numerator" type="decimal-fraction-numerator"/>
      <xs:element name="timestamp-type" type="timestamp-type" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="event">
    <xs:sequence>
      <xs:element name="event-type" type="event-type" minOccurs="0" />
      <xs:element name="event-threshold" type="event-threshold" minOccurs="0" />
      <xs:element name="event-threshold-name" type="event-threshold-name" minOccurs="0" />
      <xs:element name="event-trigger" type="event-trigger" minOccurs="0" />
      <xs:element name="typed-timestamp" type="typed-timestamp" />
      <xs:element name="content" type="xs:anySimpleType" />



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 18]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="os-label">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="os-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="os-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="real-time" />
      <xs:enumeration value="consumer" />
      <xs:enumeration value="server" />
      <xs:enumeration value="security-enhanced" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="os-component">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="os-manufacturer">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="os-version">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:complexType name="operating-system">
    <xs:sequence>
      <xs:element name="os-label" type="os-label" minOccurs="0" />
      <xs:element name="os-name" type="os-name" />
      <xs:element name="os-type" type="os-type" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="os-component" type="os-component" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="os-manufacturer" type="os-manufacturer" minOccurs="0" />
      <xs:element name="os-version" type="os-version" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="sub-interface-label">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="super-interface-label">



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 19]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="address-association-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="broadcast-domain-member-list" />
      <xs:enumeration value="ip-subnet-member-list" />
      <xs:enumeration value="ip-mac" />
      <xs:enumeration value="shared-backhaul-interface" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="address-mask-value">
    <xs:restriction base="xs:string" />
  </xs:simpleType>
  <xs:simpleType name="address-value">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="interface-label">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="network-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="network-id">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="network-interface-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="layer2-interface-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="fastEther" />
      <xs:enumeration value="fastEtherFX" />
      <xs:enumeration value="gigabitEthernet" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ipv6-address-subnet-mask-cidrnot">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ipv6-address-value">



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 20]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ipv4-address-subnet-mask-cidrnot">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ipv4-address-subnet-mask">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ipv4-address-value">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="network-address">
    <xs:choice>
      <xs:element name="ipv4-address" type="ipv4-address" />
      <xs:element name="ipv6-address" type="ipv6-address" />
      <xs:element name="mac-address" type="mac-address" />
    </xs:choice>
  </xs:complexType>

  <xs:complexType name="endpoint-identifier">
    <xs:choice>
      <xs:element name="certificate" type="certificate" />
      <xs:element name="firmware-id" type="firmware-id" />
      <xs:element name="hardware-serial-number" type="hardware-serial-number" />
      <xs:element name="host-name" type="host-name" />
      <xs:element name="ipv4-address-value" type="ipv4-address-value" />
      <xs:element name="ipv6-address-value" type="ipv6-address-value" />
      <xs:element name="mac-address" type="mac-address" />
      <xs:element name="public-key" type="public-key" />
      <xs:element name="username" type="username" />
    </xs:choice>
  </xs:complexType>

  <xs:complexType name="ipv4-address">
    <xs:sequence>
      <xs:element name="ipv4-address-value" type="ipv4-address-value" />
      <xs:element name="ipv4-address-subnet-mask-cidrnot" type="ipv4-address-subnet-mask-cidrnot"/>
      <xs:element name="ipv4-address-subnet-mask" type="ipv4-address-subnet-mask"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ipv6-address">



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 21]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


    <xs:sequence>
      <xs:element name="ipv6-address-value" type="ipv6-address-value" />
      <xs:element name="ipv6-address-subnet-mask-cidrnot" type="ipv6-address-subnet-mask-cidrnot"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="mac-address">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="layer4-port-address">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="protocol">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="layer4-protocol">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="bytes-received">
    <xs:restriction base="xs:integer" />
  </xs:simpleType>

  <xs:simpleType name="bytes-sent">
    <xs:restriction base="xs:integer" />
  </xs:simpleType>

  <xs:simpleType name="units-received">
    <xs:restriction base="xs:integer" />
  </xs:simpleType>

  <xs:simpleType name="units-sent">
    <xs:restriction base="xs:integer" />
  </xs:simpleType>

  <xs:complexType name="flow-statistics">
    <xs:sequence>
      <xs:element name="bytes-received" type="bytes-received" />
      <xs:element name="bytes-sent" type="bytes-sent" />
      <xs:element name="units-received" type="units-received" />
      <xs:element name="units-sent" type="units-sent" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="person">



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 22]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


    <xs:sequence>
      <xs:element name="person-first-name" type="person-first-name" />
      <xs:element name="person-last-name" type="person-last-name" />
      <xs:element name="person-middle-name" type="person-middle-name" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="phone-contact" type="phone-contact" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="email-address" type="email-address" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="person-first-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="person-last-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="person-middle-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="email-address">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:complexType name="phone-contact">
    <xs:sequence>
      <xs:element name="phone-number" type="phone-number" />
      <xs:element name="phone-number-type" type="phone-number-type" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="phone-number">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="phone-number-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="DSN" />
      <xs:enumeration value="Fax" />
      <xs:enumeration value="Home" />
      <xs:enumeration value="Mobile" />
      <xs:enumeration value="Pager" />
      <xs:enumeration value="Secure" />
      <xs:enumeration value="Unsecure" />
      <xs:enumeration value="Work" />
      <xs:enumeration value="Other" />
    </xs:restriction>



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 23]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


  </xs:simpleType>

  <xs:complexType name="privilege">
    <xs:sequence>
      <xs:element name="privilege-name" type="privilege-name" />
      <xs:element name="privilege-value" type="privilege-value" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="privilege-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="privilege-value">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:complexType name="location">
    <xs:sequence>
      <xs:element name="WGS84-longitude" type="WGS84-longitude" />
      <xs:element name="WGS84-latitude" type="WGS84-latitude" />
      <xs:element name="WGS84-altitude" type="WGS84-altitude" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="WGS84-longitude">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="WGS84-latitude">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="WGS84-altitude">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="organization-id">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="organization-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:complexType name="organization">
    <xs:sequence>
      <xs:element name="organization-id" type="organization-id" />



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 24]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


      <xs:element name="organization-name" type="organization-name" />
      <xs:element name="location" type="location" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="data-source">
    <xs:sequence>
      <xs:element name="data-source-label" type="data-source-label" minOccurs="0" />
      <xs:element name="endpoint-identifier" type="endpoint-identifier" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="administrative-domain">
    <xs:sequence>
      <xs:element name="administrative-domain-label" type="administrative-domain-label" />
      <xs:element name="sub-administrative-domain" type="sub-administrative-domain" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="super-administrative-domain" type="super-administrative-domain" minOccurs="0" />
      <xs:element name="location" type="location" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="access-privilege-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="read" />
      <xs:enumeration value="write" />
      <xs:enumeration value="none" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="account-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="authenticator">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="authentication-type">
    <xs:restriction base="xs:string">
      <!-- To be done -->
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="birthdate">
    <xs:restriction base="xs:date" />
  </xs:simpleType>

  <xs:simpleType name="certificate">



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 25]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="collection-task-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="network-observation" />
      <xs:enumeration value="remote-acquisition" />
      <xs:enumeration value="self-reported" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="confidence">
    <xs:restriction base="xs:float">
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="content-action">
    <xs:restriction base="xs:string">
      <xs:enumeration value="add" />
      <xs:enumeration value="delete" />
      <xs:enumeration value="update" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="country-code">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="default-depth">
    <xs:restriction base="xs:integer" />
  </xs:simpleType>

  <xs:simpleType name="discoverer">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="firmware-id">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="hardware-serial-number">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="location-name">
    <xs:restriction base="xs:string" />



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 26]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


  </xs:simpleType>

  <xs:simpleType name="method-label">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="method-repository">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="network-access-level-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="block" />
      <xs:enumeration value="quarantine" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="patch-id">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="patch-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <!-- FIXME: is this type appropriate? -->
  <xs:simpleType name="public-key">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="role-name">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="status">
    <xs:restriction base="xs:string">
      <xs:enumeration value="true" />
      <xs:enumeration value="false" />
      <xs:enumeration value="error" />
      <xs:enumeration value="unknown" />
      <xs:enumeration value="not applicable" />
      <xs:enumeration value="not evaluated" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="te-assessment-state">
    <xs:restriction base="xs:string">
      <xs:enumeration value="in-discovery" />



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 27]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


      <xs:enumeration value="discovered" />
      <xs:enumeration value="in-classification" />
      <xs:enumeration value="classified" />
      <xs:enumeration value="in-assessment" />
      <xs:enumeration value="assessed" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="timestamp">
    <xs:restriction base="xs:dateTime" />
  </xs:simpleType>

  <xs:simpleType name="web-site">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="port-id">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="atm-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="lowSpeed" />
      <xs:enumeration value="highSpeed" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="enet-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="enet" />
      <xs:enumeration value="1genet" />
      <xs:enumeration value="10genet" />
      <xs:enumeration value="100genet" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="wifi-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="11n" />
      <xs:enumeration value="11a" />
      <xs:enumeration value="11gb" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="virtual-type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="virtual-1g" />
    </xs:restriction>



Birkholz & Cam-Winget     Expires July 22, 2018                [Page 28]


Internet-DrafYANG subscribed notifications via SACM Stateme January 2018


  </xs:simpleType>

  <xs:complexType name="port">
    <xs:sequence>
      <xs:element name="port-id" type="port-id"/>
      <xs:element name="atm-type" type="atm-type" maxOccurs="1" minOccurs="0" />
      <xs:element name="enet-type" type="enet-type" maxOccurs="1" minOccurs="0" />
      <xs:element name="wifi-type" type="wifi-type" maxOccurs="1" minOccurs="0" />
      <xs:element name="virtual-type" type="virtual-type" maxOccurs="1" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="user-account">
    <xs:sequence>
      <xs:element name="user" type="user"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
<CODE ENDS>

Authors' Addresses

   Henk Birkholz
   Fraunhofer SIT
   Rheinstrasse 75
   Darmstadt  64295
   Germany

   Email: henk.birkholz@sit.fraunhofer.de


   Nancy Cam-Winget
   Cisco Systems
   3550 Cisco Way
   San Jose, CA  95134
   USA

   Email: ncamwing@cisco.com













Birkholz & Cam-Winget     Expires July 22, 2018                [Page 29]