<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-mile-jsoniodef-14" indexInclude="true" ipr="trust200902" number="8727" prepTime="2020-08-05T16:39:05" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="4" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-mile-jsoniodef-14" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc8727" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="JSON-IODEF">JSON Binding of the Incident Object Description Exchange Format</title>
    <seriesInfo name="RFC" value="8727" stream="IETF"/>
    <author fullname="Takeshi Takahashi" initials="T." surname="Takahashi">
      <organization abbrev="NICT" showOnFrontPage="true">National Institute of Information and Communications Technology</organization>
      <address>
        <postal>
          <extaddr/>
          <street>4-2-1 Nukui-Kitamachi</street>
          <region>Koganei, Tokyo</region>
          <code>184-8795</code>
          <country>Japan</country>
        </postal>
        <phone>+81 42 327 5862</phone>
        <email>takeshi_takahashi@nict.go.jp</email>
      </address>
    </author>
    <author fullname="Roman Danyliw" initials="R." surname="Danyliw">
      <organization abbrev="CERT" showOnFrontPage="true">CERT, Software Engineering Institute, Carnegie Mellon University</organization>
      <address>
        <postal>
          <street>4500 Fifth Avenue</street>
          <city>Pittsburgh</city>
          <region>PA</region>
          <country>United States of America</country>
        </postal>
        <email>rdd@cert.org</email>
      </address>
    </author>
    <author fullname="Mio Suzuki" initials="M." surname="Suzuki">
      <organization abbrev="NICT" showOnFrontPage="true">National Institute of Information and Communications Technology</organization>
      <address>
        <postal>
          <extaddr/>
          <street>4-2-1 Nukui-Kitamachi</street>
          <region>Koganei, Tokyo</region>
          <code>184-8795</code>
          <country>Japan</country>
        </postal>
        <email>mio@nict.go.jp</email>
      </address>
    </author>
    <date month="08" year="2020"/>
    <area>Security</area>
    <workgroup>MILE</workgroup>
    <keyword>CBOR</keyword>
    <keyword>JSON</keyword>
    <keyword>IODEF</keyword>
    <abstract pn="section-abstract">
      <t pn="section-abstract-1">The Incident Object Description Exchange Format (IODEF) defined in RFC 7970 provides an information model and a corresponding XML data model for exchanging incident and indicator information. This document gives implementers and operators an alternative format to exchange the same information by defining an alternative data model implementation in JSON and its encoding in Concise Binary Object Representation (CBOR).</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc8727" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t pn="section-boilerplate.2-1">
            Copyright (c) 2020 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iodef-data-types">IODEF Data Types</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-abstract-data-type-to-json-">Abstract Data Type to JSON Data Type Mapping</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-complex-json-types">Complex JSON Types</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2.2.2">
                  <li pn="section-toc.1-1.2.2.2.2.1">
                    <t pn="section-toc.1-1.2.2.2.2.1.1"><xref derivedContent="2.2.1" format="counter" sectionFormat="of" target="section-2.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-integer">Integer</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.2.2.2">
                    <t pn="section-toc.1-1.2.2.2.2.2.1"><xref derivedContent="2.2.2" format="counter" sectionFormat="of" target="section-2.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multilingual-strings">Multilingual Strings</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.2.2.3">
                    <t pn="section-toc.1-1.2.2.2.2.3.1"><xref derivedContent="2.2.3" format="counter" sectionFormat="of" target="section-2.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-enum">Enum</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.2.2.4">
                    <t pn="section-toc.1-1.2.2.2.2.4.1"><xref derivedContent="2.2.4" format="counter" sectionFormat="of" target="section-2.2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-software-and-software-refer">Software and Software Reference</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.2.2.5">
                    <t pn="section-toc.1-1.2.2.2.2.5.1"><xref derivedContent="2.2.5" format="counter" sectionFormat="of" target="section-2.2.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-structured-information">Structured Information</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.2.2.6">
                    <t pn="section-toc.1-1.2.2.2.2.6.1"><xref derivedContent="2.2.6" format="counter" sectionFormat="of" target="section-2.2.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-extension">EXTENSION</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iodef-json-data-model">IODEF JSON Data Model</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-classes-and-elements">Classes and Elements</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mapping-between-json-and-xm">Mapping between JSON and XML IODEF</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-examples">Examples</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-minimal-example">Minimal Example</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-indicators-from-a-campaign">Indicators from a Campaign</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mapkeys">Mapkeys</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-iodef-data-model-cddl">The IODEF Data Model (CDDL)</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t pn="section-toc.1-1.10.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-data-types-used-in-this-doc">Data Types Used in This Document</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t pn="section-toc.1-1.11.1"><xref derivedContent="Appendix B" format="default" sectionFormat="of" target="section-appendix.b"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-iodef-data-model-json-s">The IODEF Data Model (JSON Schema)</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.d"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t pn="section-1-1"><xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970">The Incident Object Description Exchange Format (IODEF)</xref> defines a data representation for security incident reports and indicators commonly exchanged by operational security teams.  It facilitates the automated exchange of this information to enable mitigation and watch-and-warning.  An information model using Unified Modeling Language (UML) is defined in <xref target="RFC7970" sectionFormat="of" section="3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3" derivedContent="RFC7970"/> and a corresponding Extensible Markup Language (XML) schema data model is defined in <xref target="RFC7970" sectionFormat="of" section="8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-8" derivedContent="RFC7970"/>.  This UML-based information model and XML-based data model are referred to as IODEF UML and IODEF XML, respectively, in this document.</t>
      <t pn="section-1-2">IODEF documents are structured and thus suitable for machine processing. They will streamline incident response operations.
Another well-used and structured format that is suitable for machine processing is <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259">JavaScript Object Notation (JSON)</xref>.
To facilitate the automation of incident response operations, IODEF documents and implementations should support JSON representation and its encoding in <xref target="RFC7049" format="default" sectionFormat="of" derivedContent="RFC7049">Concise Binary Object Representation (CBOR)</xref>.</t>
      <t pn="section-1-3">This document defines an alternate implementation of the IODEF UML information model by specifying a JSON data model using <xref target="RFC8610" format="default" sectionFormat="of" derivedContent="RFC8610">Concise Data Definition Language (CDDL)</xref> and a JSON Schema <xref target="I-D.handrews-json-schema-validation" format="default" sectionFormat="of" derivedContent="JSON-SCHEMA"/>.  This JSON data model is referred to as IODEF JSON in this document. IODEF JSON provides all of the expressivity of IODEF XML.  It gives implementers and operators an alternative format to exchange the same information.</t>
      <t pn="section-1-4">The normative IODEF JSON data model is found in <xref target="cddlSection" format="default" sectionFormat="of" derivedContent="Section 6"/>.  Sections <xref target="dt" format="counter" sectionFormat="of" derivedContent="2"/> and <xref target="dm" format="counter" sectionFormat="of" derivedContent="3"/> describe the data types and elements of this data model.  <xref target="examples" format="default" sectionFormat="of" derivedContent="Section 4"/> provides examples. </t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t pn="section-1.1-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section anchor="dt" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-iodef-data-types">IODEF Data Types</name>
      <t pn="section-2-1">IODEF JSON implements the abstract data types specified in <xref target="RFC7970" sectionFormat="of" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2" derivedContent="RFC7970"/>.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-abstract-data-type-to-json-">Abstract Data Type to JSON Data Type Mapping</name>
        <t pn="section-2.1-1">IODEF JSON uses native and derived JSON data types. <xref target="dtmap" format="default" sectionFormat="of" derivedContent="Table 1"/> describes the mapping between the abstract data types in <xref target="RFC7970" sectionFormat="of" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2" derivedContent="RFC7970"/> and their corresponding implementations in IODEF JSON.</t>
        <table anchor="dtmap" align="left" pn="table-1">
          <name slugifiedName="name-json-data-types">JSON Data Types</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">IODEF Data Type</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
              <th align="left" colspan="1" rowspan="1">JSON Data Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">INTEGER</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.1" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">integer; see <xref target="integer" format="default" sectionFormat="of" derivedContent="Section 2.2.1"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">REAL</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.2" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"number" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">CHARACTER</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.3" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">STRING</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.3" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ML_STRING</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.4" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">see <xref target="ml_string" format="default" sectionFormat="of" derivedContent="Section 2.2.2"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">BYTE</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.5.1" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">BYTE[]</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.5.1" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">HEXBIN</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.5.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.5.2" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">HEXBIN[]</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.5.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.5.2" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ENUM</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.6" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">see <xref target="enum" format="default" sectionFormat="of" derivedContent="Section 2.2.3"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">DATETIME</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.7" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">TIMEZONE</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.8" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">PORTLIST</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.9" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.9" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">POSTAL</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.10" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.10" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">ML_STRING; see <xref target="ml_string" format="default" sectionFormat="of" derivedContent="Section 2.2.2"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">PHONE</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.11" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.11" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">EMAIL</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.12" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.12" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">URL</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.13" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.13" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ID</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.14" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.14" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">IDREF</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.14" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.14" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">"string" per <xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">SOFTWARE</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.15" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.15" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">see <xref target="software" format="default" sectionFormat="of" derivedContent="Section 2.2.4"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">STRUCTUREDINFO</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7203" sectionFormat="of" section="4.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7203#section-4.4" derivedContent="RFC7203"/></td>
              <td align="left" colspan="1" rowspan="1">see <xref target="STRUCTUREDINFO" format="default" sectionFormat="of" derivedContent="Section 2.2.5"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">EXTENSION</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="of" section="2.16" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-2.16" derivedContent="RFC7970"/></td>
              <td align="left" colspan="1" rowspan="1">see <xref target="extension" format="default" sectionFormat="of" derivedContent="Section 2.2.6"/></td>
            </tr>
          </tbody>
        </table>
        <table anchor="dtmap_cbor" align="left" pn="table-2">
          <name slugifiedName="name-cbor-data-types">CBOR Data Types</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">IODEF Data Type</th>
              <th align="left" colspan="1" rowspan="1">CBOR Data Type</th>
              <th align="left" colspan="1" rowspan="1">CDDL Prelude <xref target="RFC8610" format="default" sectionFormat="of" derivedContent="RFC8610"/></th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">INTEGER</td>
              <td align="left" colspan="1" rowspan="1"> 0, 1, 6 tag 2, 6 tag 3</td>
              <td align="left" colspan="1" rowspan="1">integer</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">REAL</td>
              <td align="left" colspan="1" rowspan="1">7 bits 26</td>
              <td align="left" colspan="1" rowspan="1">float32</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">CHARACTER</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">text</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">STRING</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">text</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ML_STRING</td>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">Maps/Structs (<xref target="RFC8610" section="3.5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8610#section-3.5.1" derivedContent="RFC8610"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">BYTE</td>
              <td align="left" colspan="1" rowspan="1">6 tag 22</td>
              <td align="left" colspan="1" rowspan="1">eb64legacy</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">BYTE[]</td>
              <td align="left" colspan="1" rowspan="1">6 tag 22</td>
              <td align="left" colspan="1" rowspan="1">eb64legacy</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">HEXBIN</td>
              <td align="left" colspan="1" rowspan="1">6 tag 23</td>
              <td align="left" colspan="1" rowspan="1">eb16</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">HEXBIN[]</td>
              <td align="left" colspan="1" rowspan="1">6 tag 23</td>
              <td align="left" colspan="1" rowspan="1">eb16</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ENUM</td>
              <td align="left" colspan="1" rowspan="1">-</td>
              <td align="left" colspan="1" rowspan="1">Choices (<xref target="RFC8610" section="2.2.2" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8610#section-2.2.2" derivedContent="RFC8610"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">DATETIME</td>
              <td align="left" colspan="1" rowspan="1">6 tag 0</td>
              <td align="left" colspan="1" rowspan="1">tdate</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">TIMEZONE</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">text</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">PORTLIST</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">text</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">POSTAL</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">ML_STRING (<xref target="ml_string" format="default" sectionFormat="of" derivedContent="Section 2.2.2"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">PHONE</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">text</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">EMAIL</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">text</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">URL</td>
              <td align="left" colspan="1" rowspan="1">6 tag 32</td>
              <td align="left" colspan="1" rowspan="1">uri</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ID</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">text</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">IDREF</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">text</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">SOFTWARE</td>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">Maps/Structs (<xref target="RFC8610" section="3.5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8610#section-3.5.1" derivedContent="RFC8610"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">STRUCTUREDINFO</td>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">Maps/Structs (<xref target="RFC8610" section="3.5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8610#section-3.5.1" derivedContent="RFC8610"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">EXTENSION</td>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">Maps/Structs (<xref target="RFC8610" section="3.5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8610#section-3.5.1" derivedContent="RFC8610"/>)</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-complex-json-types">Complex JSON Types</name>
        <section numbered="true" toc="include" anchor="integer" removeInRFC="false" pn="section-2.2.1">
          <name slugifiedName="name-integer">Integer</name>
          <t pn="section-2.2.1-1">An integer is a subset of the "number" type of JSON, which represents signed digits encoded in Base 10. The definition of this integer is "[ minus ] int" per <xref target="RFC8259" sectionFormat="comma" section="6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8259#section-6" derivedContent="RFC8259"/>.</t>
        </section>
        <section numbered="true" toc="include" anchor="ml_string" removeInRFC="false" pn="section-2.2.2">
          <name slugifiedName="name-multilingual-strings">Multilingual Strings</name>
          <t pn="section-2.2.2-1">A string that needs to be represented in a human-readable language different from the default encoding of the document is represented in the information model by the ML_STRING data type. This data type is implemented as either an object with "value", "lang", and "translation-id" elements or a text string as defined in <xref target="cddlSection" format="default" sectionFormat="of" derivedContent="Section 6"/>. An example is shown below.</t>
          <sourcecode type="" markers="false" pn="section-2.2.2-2">
"MLStringType": {
  "value": "free-form text",                              # STRING
  "lang": "en",                                             # ENUM
  "translation-id": "jp2en0023"                           # STRING
}
</sourcecode>
          <t pn="section-2.2.2-3">Note that in figures throughout this document, some supplementary information follows "#", but these are not valid syntax in JSON; instead, they are intended to facilitate reader understanding.</t>
        </section>
        <section numbered="true" toc="include" anchor="enum" removeInRFC="false" pn="section-2.2.3">
          <name slugifiedName="name-enum">Enum</name>
          <t pn="section-2.2.3-1">Enum is an ordered list of acceptable string values. Each value has a representative keyword.  Within the data model, the enumerated type keywords are used as attribute values.</t>
        </section>
        <section numbered="true" toc="include" anchor="software" removeInRFC="false" pn="section-2.2.4">
          <name slugifiedName="name-software-and-software-refer">Software and Software Reference</name>
          <t pn="section-2.2.4-1">A particular version of software is represented in the information model by the SOFTWARE data type. This software can be described by using a reference, <xref target="RFC3986" format="default" sectionFormat="of" derivedContent="RFC3986">a Uniform Resource Locator (URL)</xref>, or free-form text. The SOFTWARE data type is implemented as an object with "SoftwareReference", "URL", and "Description" elements as defined in <xref target="cddlSection" format="default" sectionFormat="of" derivedContent="Section 6"/>. Examples are shown below.</t>
          <sourcecode type="" markers="false" pn="section-2.2.4-2">
"SoftwareType": {
  "SoftwareReference": {...},                  # SoftwareReference
  "Description": ["MS Windows"]                           # STRING
}
</sourcecode>
          <t pn="section-2.2.4-3">SoftwareReference class is a reference to a particular version of software. Examples are shown below.</t>
          <sourcecode type="" markers="false" pn="section-2.2.4-4">
"SoftwareReference": {
  "value": "cpe:/a:google:chrome:59.0.3071.115",          # STRING
  "spec-name": "cpe",                                       # ENUM
  "dtype": "string"                                         # ENUM
}
</sourcecode>
        </section>
        <section anchor="STRUCTUREDINFO" numbered="true" toc="include" removeInRFC="false" pn="section-2.2.5">
          <name slugifiedName="name-structured-information">Structured Information</name>
          <t pn="section-2.2.5-1">Information provided in the form of a structured string, such as an ID, or structured information, such as XML documents, is represented in the information model by the STRUCTUREDINFO data type. Note that this type was originally specified in <xref target="RFC7203" sectionFormat="of" section="4.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7203#section-4.4" derivedContent="RFC7203"/> as a basic structure of its extension classes. The STRUCTUREDINFO data type is implemented as an object with "SpecID", "ext-SpecID", "ContentID", "RawData", and "Reference" elements. An example for embedding a structured ID is shown below.</t>
          <sourcecode type="" markers="false" pn="section-2.2.5-2">
"STRUCTUREDINFO": {
  "SpecID": "urn:ietf:params:xml:ns:mile:cwe:3.3",          # ENUM
  "ContentID": "CWE-89"                                   # STRING
}
</sourcecode>
          <t pn="section-2.2.5-3">When embedding the raw data, it should be encoded as a BYTE type object, as shown below.</t>
          <sourcecode type="" markers="false" pn="section-2.2.5-4">
"STRUCTUREDINFO": {
  "SpecID": "urn:ietf:params:xml:ns:mile:mmdef:1.2",        # ENUM
  "RawData": "&lt;&lt;&lt; encoded structured data &gt;&gt;&gt;"              # BYTE
}
</sourcecode>
          <t pn="section-2.2.5-5">When embedding the raw data, base64 encoding defined in <xref target="RFC4648" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4648#section-4" derivedContent="RFC4648"/> <bcp14>MUST</bcp14> be used for JSON IODEF while binary representation <bcp14>MUST</bcp14> be used for CBOR IODEF.</t>
        </section>
        <section numbered="true" toc="include" anchor="extension" removeInRFC="false" pn="section-2.2.6">
          <name slugifiedName="name-extension">EXTENSION</name>
          <t pn="section-2.2.6-1">Information not otherwise represented in the IODEF can be added using the EXTENSION data type.  This data type is a generic extension mechanism. The EXTENSION data type is implemented as an ExtensionType object with "value", "name", "dtype", "ext-dtype", "meaning", "formatid", "restriction", "ext-restriction", and "observable-id" elements. An example for embedding a structured ID is shown below.</t>
          <sourcecode type="" markers="false" pn="section-2.2.6-2">
"ExtensionType": {
  "value": "xxxxxxx",                                     # STRING
  "name": "Syslog",                                       # STRING
  "dtype": "string",                                        # ENUM
  "meaning": "Syslog from the security appliance X"       # STRING
}
</sourcecode>
          <t pn="section-2.2.6-3">Note that this data type is specified in <xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970"/> as its generic extension mechanism. If a data item has internal structure that is intended to be processed outside of the IODEF framework, one may consider using the STRUCTUREDINFO data type mentioned in <xref target="STRUCTUREDINFO" format="default" sectionFormat="of" derivedContent="Section 2.2.5"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="dm" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-iodef-json-data-model">IODEF JSON Data Model</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-classes-and-elements">Classes and Elements</name>
        <t pn="section-3.1-1"> The following table shows the list of IODEF classes and their elements and the corresponding sections in <xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970"/>. Note that the complete JSON schema is defined in <xref target="cddlSection" format="default" sectionFormat="of" derivedContent="Section 6"/> using CDDL.</t>
        <table anchor="iodef_classes" align="left" pn="table-3">
          <name slugifiedName="name-iodef-classes">IODEF Classes</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">IODEF Class</th>
              <th align="left" colspan="1" rowspan="1">Class, Element, and Attribute</th>
              <th align="left" colspan="1" rowspan="1">Section in <xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970"/></th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">IODEF-Document</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.1.2.1">
                  <li pn="section-3.1-2.2.1.2.1.1">version</li>
                  <li pn="section-3.1-2.2.1.2.1.2">lang?</li>
                  <li pn="section-3.1-2.2.1.2.1.3">format-id?</li>
                  <li pn="section-3.1-2.2.1.2.1.4">private-enum-name?</li>
                  <li pn="section-3.1-2.2.1.2.1.5">private-enum-id?</li>
                  <li pn="section-3.1-2.2.1.2.1.6">Incident+</li>
                  <li pn="section-3.1-2.2.1.2.1.7">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Incident</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.2.2.1">
                  <li pn="section-3.1-2.2.2.2.1.1">purpose</li>
                  <li pn="section-3.1-2.2.2.2.1.2">ext-purpose?</li>
                  <li pn="section-3.1-2.2.2.2.1.3">status?</li>
                  <li pn="section-3.1-2.2.2.2.1.4">ext-status?</li>
                  <li pn="section-3.1-2.2.2.2.1.5">lang?</li>
                  <li pn="section-3.1-2.2.2.2.1.6">restriction?</li>
                  <li pn="section-3.1-2.2.2.2.1.7">ext-restriction?</li>
                  <li pn="section-3.1-2.2.2.2.1.8">observable-id?</li>
                  <li pn="section-3.1-2.2.2.2.1.9">IncidentID</li>
                  <li pn="section-3.1-2.2.2.2.1.10">AlternativeID?</li>
                  <li pn="section-3.1-2.2.2.2.1.11">RelatedActivity*</li>
                  <li pn="section-3.1-2.2.2.2.1.12">DetectTime?</li>
                  <li pn="section-3.1-2.2.2.2.1.13">StartTime?</li>
                  <li pn="section-3.1-2.2.2.2.1.14">EndTime?</li>
                  <li pn="section-3.1-2.2.2.2.1.15">RecoveryTime?</li>
                  <li pn="section-3.1-2.2.2.2.1.16">ReportTime?</li>
                  <li pn="section-3.1-2.2.2.2.1.17">GenerationTime</li>
                  <li pn="section-3.1-2.2.2.2.1.18">Description*</li>
                  <li pn="section-3.1-2.2.2.2.1.19">Discovery*</li>
                  <li pn="section-3.1-2.2.2.2.1.20">Assessment*</li>
                  <li pn="section-3.1-2.2.2.2.1.21">Method*</li>
                  <li pn="section-3.1-2.2.2.2.1.22">Contact+</li>
                  <li pn="section-3.1-2.2.2.2.1.23">EventData*</li>
                  <li pn="section-3.1-2.2.2.2.1.24">Indicator*</li>
                  <li pn="section-3.1-2.2.2.2.1.25">History?</li>
                  <li pn="section-3.1-2.2.2.2.1.26">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.2" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">IncidentID</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.3.2.1">
                  <li pn="section-3.1-2.2.3.2.1.1">id</li>
                  <li pn="section-3.1-2.2.3.2.1.2">name</li>
                  <li pn="section-3.1-2.2.3.2.1.3">instance?</li>
                  <li pn="section-3.1-2.2.3.2.1.4">restriction?</li>
                  <li pn="section-3.1-2.2.3.2.1.5">ext-restriction?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.4" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">AlternativeID</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.4.2.1">
                  <li pn="section-3.1-2.2.4.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.4.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.4.2.1.3">IncidentID+</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.5" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">RelatedActivity</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.5.2.1">
                  <li pn="section-3.1-2.2.5.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.5.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.5.2.1.3">IncidentID*</li>
                  <li pn="section-3.1-2.2.5.2.1.4">URL*</li>
                  <li pn="section-3.1-2.2.5.2.1.5">ThreatActor*</li>
                  <li pn="section-3.1-2.2.5.2.1.6">Campaign*</li>
                  <li pn="section-3.1-2.2.5.2.1.7">IndicatorID*</li>
                  <li pn="section-3.1-2.2.5.2.1.8">Confidence?</li>
                  <li pn="section-3.1-2.2.5.2.1.9">Description*</li>
                  <li pn="section-3.1-2.2.5.2.1.10">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.6" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ThreatActor</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.6.2.1">
                  <li pn="section-3.1-2.2.6.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.6.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.6.2.1.3">ThreatActorID*</li>
                  <li pn="section-3.1-2.2.6.2.1.4">URL*</li>
                  <li pn="section-3.1-2.2.6.2.1.5">Description*</li>
                  <li pn="section-3.1-2.2.6.2.1.6">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.7" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Campaign</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.7.2.1">
                  <li pn="section-3.1-2.2.7.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.7.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.7.2.1.3">CampaignID*</li>
                  <li pn="section-3.1-2.2.7.2.1.4">URL*</li>
                  <li pn="section-3.1-2.2.7.2.1.5">Description*</li>
                  <li pn="section-3.1-2.2.7.2.1.6">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.8" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Contact</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.8.2.1">
                  <li pn="section-3.1-2.2.8.2.1.1">role</li>
                  <li pn="section-3.1-2.2.8.2.1.2">ext-role?</li>
                  <li pn="section-3.1-2.2.8.2.1.3">type</li>
                  <li pn="section-3.1-2.2.8.2.1.4">ext-type?</li>
                  <li pn="section-3.1-2.2.8.2.1.5">restriction?</li>
                  <li pn="section-3.1-2.2.8.2.1.6">ext-restriction?</li>
                  <li pn="section-3.1-2.2.8.2.1.7">ContactName*</li>
                  <li pn="section-3.1-2.2.8.2.1.8">ContactTitle*</li>
                  <li pn="section-3.1-2.2.8.2.1.9">Description*</li>
                  <li pn="section-3.1-2.2.8.2.1.10">RegistryHandle*</li>
                  <li pn="section-3.1-2.2.8.2.1.11">PostalAddress*</li>
                  <li pn="section-3.1-2.2.8.2.1.12">Email*</li>
                  <li pn="section-3.1-2.2.8.2.1.13">Telephone*</li>
                  <li pn="section-3.1-2.2.8.2.1.14">Timezone?</li>
                  <li pn="section-3.1-2.2.8.2.1.15">Contact*</li>
                  <li pn="section-3.1-2.2.8.2.1.16">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.9" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.9" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">RegistryHandle</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.9.2.1">
                  <li pn="section-3.1-2.2.9.2.1.1">handle</li>
                  <li pn="section-3.1-2.2.9.2.1.2">registry</li>
                  <li pn="section-3.1-2.2.9.2.1.3">ext-registry?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.9.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.9.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">PostalAddress</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.10.2.1">
                  <li pn="section-3.1-2.2.10.2.1.1">type?</li>
                  <li pn="section-3.1-2.2.10.2.1.2">ext-type?</li>
                  <li pn="section-3.1-2.2.10.2.1.3">PAddress</li>
                  <li pn="section-3.1-2.2.10.2.1.4">Description*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.9.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.9.2" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Email</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.11.2.1">
                  <li pn="section-3.1-2.2.11.2.1.1">type?</li>
                  <li pn="section-3.1-2.2.11.2.1.2">ext-type?</li>
                  <li pn="section-3.1-2.2.11.2.1.3">EmailTo</li>
                  <li pn="section-3.1-2.2.11.2.1.4">Description*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.9.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.9.3" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Telephone</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.12.2.1">
                  <li pn="section-3.1-2.2.12.2.1.1">type?</li>
                  <li pn="section-3.1-2.2.12.2.1.2">ext-type?</li>
                  <li pn="section-3.1-2.2.12.2.1.3">TelephoneNumber</li>
                  <li pn="section-3.1-2.2.12.2.1.4">Description*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.9.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.9.4" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Discovery</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.13.2.1">
                  <li pn="section-3.1-2.2.13.2.1.1">source?</li>
                  <li pn="section-3.1-2.2.13.2.1.2">ext-source?</li>
                  <li pn="section-3.1-2.2.13.2.1.3">restriction?</li>
                  <li pn="section-3.1-2.2.13.2.1.4">ext-restriction?</li>
                  <li pn="section-3.1-2.2.13.2.1.5">Description*</li>
                  <li pn="section-3.1-2.2.13.2.1.6">Contact*</li>
                  <li pn="section-3.1-2.2.13.2.1.7">DetectionPattern*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.10" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.10" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">DetectionPattern</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.14.2.1">
                  <li pn="section-3.1-2.2.14.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.14.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.14.2.1.3">observable-id?</li>
                  <li pn="section-3.1-2.2.14.2.1.4">Application</li>
                  <li pn="section-3.1-2.2.14.2.1.5">Description*</li>
                  <li pn="section-3.1-2.2.14.2.1.6">DetectionConfiguration*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.10.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.10.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Method</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.15.2.1">
                  <li pn="section-3.1-2.2.15.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.15.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.15.2.1.3">Reference*</li>
                  <li pn="section-3.1-2.2.15.2.1.4">Description*</li>
                  <li pn="section-3.1-2.2.15.2.1.5">AttackPattern*</li>
                  <li pn="section-3.1-2.2.15.2.1.6">Vulnerability*</li>
                  <li pn="section-3.1-2.2.15.2.1.7">Weakness*</li>
                  <li pn="section-3.1-2.2.15.2.1.8">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.11" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.11" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Weakness</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.16.2.1">
                  <li pn="section-3.1-2.2.16.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.16.2.1.2">ext-restriction?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7203" sectionFormat="bare" section="4.5.5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7203#section-4.5.5" derivedContent="RFC7203"/> in <xref target="RFC7203" format="default" sectionFormat="of" derivedContent="RFC7203"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Reference</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.17.2.1">
                  <li pn="section-3.1-2.2.17.2.1.1">observable-id?</li>
                  <li pn="section-3.1-2.2.17.2.1.2">ReferenceName?</li>
                  <li pn="section-3.1-2.2.17.2.1.3">URL*</li>
                  <li pn="section-3.1-2.2.17.2.1.4">Description*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.11.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.11.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Assessment</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.18.2.1">
                  <li pn="section-3.1-2.2.18.2.1.1">occurrence?</li>
                  <li pn="section-3.1-2.2.18.2.1.2">restriction?</li>
                  <li pn="section-3.1-2.2.18.2.1.3">ext-restriction?</li>
                  <li pn="section-3.1-2.2.18.2.1.4">observable-id?</li>
                  <li pn="section-3.1-2.2.18.2.1.5">IncidentCategory*</li>
                  <li pn="section-3.1-2.2.18.2.1.6">SystemImpact*</li>
                  <li pn="section-3.1-2.2.18.2.1.7">BusinessImpact*</li>
                  <li pn="section-3.1-2.2.18.2.1.8">TimeImpact*</li>
                  <li pn="section-3.1-2.2.18.2.1.9">MonetaryImpact*</li>
                  <li pn="section-3.1-2.2.18.2.1.10">IntendedImpact*</li>
                  <li pn="section-3.1-2.2.18.2.1.11">Counter*</li>
                  <li pn="section-3.1-2.2.18.2.1.12">MitigatingFactor*</li>
                  <li pn="section-3.1-2.2.18.2.1.13">Cause*</li>
                  <li pn="section-3.1-2.2.18.2.1.14">Confidence?</li>
                  <li pn="section-3.1-2.2.18.2.1.15">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.12" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.12" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">SystemImpact</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.19.2.1">
                  <li pn="section-3.1-2.2.19.2.1.1">severity?</li>
                  <li pn="section-3.1-2.2.19.2.1.2">completion?</li>
                  <li pn="section-3.1-2.2.19.2.1.3">type</li>
                  <li pn="section-3.1-2.2.19.2.1.4">ext-type?</li>
                  <li pn="section-3.1-2.2.19.2.1.5">Description*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.12.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.12.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">BusinessImpact</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.20.2.1">
                  <li pn="section-3.1-2.2.20.2.1.1">severity?</li>
                  <li pn="section-3.1-2.2.20.2.1.2">ext-severity?</li>
                  <li pn="section-3.1-2.2.20.2.1.3">type</li>
                  <li pn="section-3.1-2.2.20.2.1.4">ext-type?</li>
                  <li pn="section-3.1-2.2.20.2.1.5">Description*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.12.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.12.2" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">TimeImpact</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.21.2.1">
                  <li pn="section-3.1-2.2.21.2.1.1">value</li>
                  <li pn="section-3.1-2.2.21.2.1.2">severity?</li>
                  <li pn="section-3.1-2.2.21.2.1.3">metric</li>
                  <li pn="section-3.1-2.2.21.2.1.4">ext-metric?</li>
                  <li pn="section-3.1-2.2.21.2.1.5">duration?</li>
                  <li pn="section-3.1-2.2.21.2.1.6">ext-duration?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.12.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.12.3" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">MonetaryImpact</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.22.2.1">
                  <li pn="section-3.1-2.2.22.2.1.1">value</li>
                  <li pn="section-3.1-2.2.22.2.1.2">severity?</li>
                  <li pn="section-3.1-2.2.22.2.1.3">currency?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.12.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.12.4" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Confidence</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.23.2.1">
                  <li pn="section-3.1-2.2.23.2.1.1">value</li>
                  <li pn="section-3.1-2.2.23.2.1.2">rating</li>
                  <li pn="section-3.1-2.2.23.2.1.3">ext-rating?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.12.5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.12.5" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">History</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.24.2.1">
                  <li pn="section-3.1-2.2.24.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.24.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.24.2.1.3">HistoryItem+</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.13" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.13" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">HistoryItem</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.25.2.1">
                  <li pn="section-3.1-2.2.25.2.1.1">action</li>
                  <li pn="section-3.1-2.2.25.2.1.2">ext-action?</li>
                  <li pn="section-3.1-2.2.25.2.1.3">restriction?</li>
                  <li pn="section-3.1-2.2.25.2.1.4">ext-restriction?</li>
                  <li pn="section-3.1-2.2.25.2.1.5">observable-id?</li>
                  <li pn="section-3.1-2.2.25.2.1.6">DateTime</li>
                  <li pn="section-3.1-2.2.25.2.1.7">IncidentID?</li>
                  <li pn="section-3.1-2.2.25.2.1.8">Contact?</li>
                  <li pn="section-3.1-2.2.25.2.1.9">Description*</li>
                  <li pn="section-3.1-2.2.25.2.1.10">DefinedCOA*</li>
                  <li pn="section-3.1-2.2.25.2.1.11">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.13.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.13.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">EventData</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.26.2.1">
                  <li pn="section-3.1-2.2.26.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.26.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.26.2.1.3">observable-id?</li>
                  <li pn="section-3.1-2.2.26.2.1.4">Description*</li>
                  <li pn="section-3.1-2.2.26.2.1.5">DetectTime?</li>
                  <li pn="section-3.1-2.2.26.2.1.6">StartTime?</li>
                  <li pn="section-3.1-2.2.26.2.1.7">EndTime?</li>
                  <li pn="section-3.1-2.2.26.2.1.8">RecoveryTime?</li>
                  <li pn="section-3.1-2.2.26.2.1.9">ReportTime?</li>
                  <li pn="section-3.1-2.2.26.2.1.10">Contact*</li>
                  <li pn="section-3.1-2.2.26.2.1.11">Discovery*</li>
                  <li pn="section-3.1-2.2.26.2.1.12">Assessment?</li>
                  <li pn="section-3.1-2.2.26.2.1.13">Method*</li>
                  <li pn="section-3.1-2.2.26.2.1.14">System*</li>
                  <li pn="section-3.1-2.2.26.2.1.15">Expectation*</li>
                  <li pn="section-3.1-2.2.26.2.1.16">RecordData*</li>
                  <li pn="section-3.1-2.2.26.2.1.17">EventData*</li>
                  <li pn="section-3.1-2.2.26.2.1.18">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.14" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.14" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Expectation</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.27.2.1">
                  <li pn="section-3.1-2.2.27.2.1.1">action?</li>
                  <li pn="section-3.1-2.2.27.2.1.2">ext-action?</li>
                  <li pn="section-3.1-2.2.27.2.1.3">severity?</li>
                  <li pn="section-3.1-2.2.27.2.1.4">restriction?</li>
                  <li pn="section-3.1-2.2.27.2.1.5">ext-restriction?</li>
                  <li pn="section-3.1-2.2.27.2.1.6">observable-id?</li>
                  <li pn="section-3.1-2.2.27.2.1.7">Description*</li>
                  <li pn="section-3.1-2.2.27.2.1.8">DefinedCOA*</li>
                  <li pn="section-3.1-2.2.27.2.1.9">StartTime?</li>
                  <li pn="section-3.1-2.2.27.2.1.10">EndTime?</li>
                  <li pn="section-3.1-2.2.27.2.1.11">Contact?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.15" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.15" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">System</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.28.2.1">
                  <li pn="section-3.1-2.2.28.2.1.1">category?</li>
                  <li pn="section-3.1-2.2.28.2.1.2">ext-category?</li>
                  <li pn="section-3.1-2.2.28.2.1.3">interface?</li>
                  <li pn="section-3.1-2.2.28.2.1.4">spoofed?</li>
                  <li pn="section-3.1-2.2.28.2.1.5">virtual?</li>
                  <li pn="section-3.1-2.2.28.2.1.6">ownership?</li>
                  <li pn="section-3.1-2.2.28.2.1.7">ext-ownership?</li>
                  <li pn="section-3.1-2.2.28.2.1.8">restriction?</li>
                  <li pn="section-3.1-2.2.28.2.1.9">ext-restriction?</li>
                  <li pn="section-3.1-2.2.28.2.1.10">Node</li>
                  <li pn="section-3.1-2.2.28.2.1.11">NodeRole*</li>
                  <li pn="section-3.1-2.2.28.2.1.12">Service*</li>
                  <li pn="section-3.1-2.2.28.2.1.13">OperatingSystem*</li>
                  <li pn="section-3.1-2.2.28.2.1.14">Counter*</li>
                  <li pn="section-3.1-2.2.28.2.1.15">AssetID*</li>
                  <li pn="section-3.1-2.2.28.2.1.16">Description*</li>
                  <li pn="section-3.1-2.2.28.2.1.17">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.17" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.17" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Node</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.29.2.1">
                  <li pn="section-3.1-2.2.29.2.1.1">DomainData*</li>
                  <li pn="section-3.1-2.2.29.2.1.2">Address*</li>
                  <li pn="section-3.1-2.2.29.2.1.3">PostalAddress?</li>
                  <li pn="section-3.1-2.2.29.2.1.4">Location*</li>
                  <li pn="section-3.1-2.2.29.2.1.5">Counter*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.18" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.18" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Address</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.30.2.1">
                  <li pn="section-3.1-2.2.30.2.1.1">value</li>
                  <li pn="section-3.1-2.2.30.2.1.2">category</li>
                  <li pn="section-3.1-2.2.30.2.1.3">ext-category?</li>
                  <li pn="section-3.1-2.2.30.2.1.4">vlan-name?</li>
                  <li pn="section-3.1-2.2.30.2.1.5">vlan-num?</li>
                  <li pn="section-3.1-2.2.30.2.1.6">observable-id?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.18.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.18.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">NodeRole</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.31.2.1">
                  <li pn="section-3.1-2.2.31.2.1.1">category</li>
                  <li pn="section-3.1-2.2.31.2.1.2">ext-category?</li>
                  <li pn="section-3.1-2.2.31.2.1.3">Description*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.18.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.18.2" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Counter</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.32.2.1">
                  <li pn="section-3.1-2.2.32.2.1.1">value</li>
                  <li pn="section-3.1-2.2.32.2.1.2">type</li>
                  <li pn="section-3.1-2.2.32.2.1.3">ext-type?</li>
                  <li pn="section-3.1-2.2.32.2.1.4">unit</li>
                  <li pn="section-3.1-2.2.32.2.1.5">ext-unit?</li>
                  <li pn="section-3.1-2.2.32.2.1.6">meaning?</li>
                  <li pn="section-3.1-2.2.32.2.1.7">duration?</li>
                  <li pn="section-3.1-2.2.32.2.1.8">ext-duration?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.18.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.18.3" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">DomainData</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.33.2.1">
                  <li pn="section-3.1-2.2.33.2.1.1">system-status</li>
                  <li pn="section-3.1-2.2.33.2.1.2">ext-system-status?</li>
                  <li pn="section-3.1-2.2.33.2.1.3">domain-status</li>
                  <li pn="section-3.1-2.2.33.2.1.4">ext-domain-status?</li>
                  <li pn="section-3.1-2.2.33.2.1.5">observable-id?</li>
                  <li pn="section-3.1-2.2.33.2.1.6">Name</li>
                  <li pn="section-3.1-2.2.33.2.1.7">DateDomainWasChecked?</li>
                  <li pn="section-3.1-2.2.33.2.1.8">RegistrationDate?</li>
                  <li pn="section-3.1-2.2.33.2.1.9">ExpirationDate?</li>
                  <li pn="section-3.1-2.2.33.2.1.10">RelatedDNS*</li>
                  <li pn="section-3.1-2.2.33.2.1.11">Nameservers*</li>
                  <li pn="section-3.1-2.2.33.2.1.12">DomainContacts?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.19" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.19" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Nameservers</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.34.2.1">
                  <li pn="section-3.1-2.2.34.2.1.1">Server</li>
                  <li pn="section-3.1-2.2.34.2.1.2">Address*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.19.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.19.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">DomainContacts</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.35.2.1">
                  <li pn="section-3.1-2.2.35.2.1.1">SameDomainContact?</li>
                  <li pn="section-3.1-2.2.35.2.1.2">Contact+</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.19.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.19.2" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Service</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.36.2.1">
                  <li pn="section-3.1-2.2.36.2.1.1">ip-protocol?</li>
                  <li pn="section-3.1-2.2.36.2.1.2">observable-id?</li>
                  <li pn="section-3.1-2.2.36.2.1.3">ServiceName?</li>
                  <li pn="section-3.1-2.2.36.2.1.4">Port?</li>
                  <li pn="section-3.1-2.2.36.2.1.5">Portlist?</li>
                  <li pn="section-3.1-2.2.36.2.1.6">ProtoCode?</li>
                  <li pn="section-3.1-2.2.36.2.1.7">ProtoType?</li>
                  <li pn="section-3.1-2.2.36.2.1.8">ProtoField?</li>
                  <li pn="section-3.1-2.2.36.2.1.9">ApplicationHeaderField*</li>
                  <li pn="section-3.1-2.2.36.2.1.10">EmailData?</li>
                  <li pn="section-3.1-2.2.36.2.1.11">Application?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.20" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.20" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ServiceName</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.37.2.1">
                  <li pn="section-3.1-2.2.37.2.1.1">IANAService?</li>
                  <li pn="section-3.1-2.2.37.2.1.2">URL*</li>
                  <li pn="section-3.1-2.2.37.2.1.3">Description*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.20.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.20.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">EmailData</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.38.2.1">
                  <li pn="section-3.1-2.2.38.2.1.1">observable-id?</li>
                  <li pn="section-3.1-2.2.38.2.1.2">EmailTo*</li>
                  <li pn="section-3.1-2.2.38.2.1.3">EmailFrom?</li>
                  <li pn="section-3.1-2.2.38.2.1.4">EmailSubject?</li>
                  <li pn="section-3.1-2.2.38.2.1.5">EmailX-Mailer?</li>
                  <li pn="section-3.1-2.2.38.2.1.6">EmailHeaderField*</li>
                  <li pn="section-3.1-2.2.38.2.1.7">EmailHeaders?</li>
                  <li pn="section-3.1-2.2.38.2.1.8">EmailBody?</li>
                  <li pn="section-3.1-2.2.38.2.1.9">EmailMessage?</li>
                  <li pn="section-3.1-2.2.38.2.1.10">HashData*</li>
                  <li pn="section-3.1-2.2.38.2.1.11">Signature*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.21" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.21" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">RecordData</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.39.2.1">
                  <li pn="section-3.1-2.2.39.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.39.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.39.2.1.3">observable-id?</li>
                  <li pn="section-3.1-2.2.39.2.1.4">DateTime?</li>
                  <li pn="section-3.1-2.2.39.2.1.5">Description*</li>
                  <li pn="section-3.1-2.2.39.2.1.6">Application?</li>
                  <li pn="section-3.1-2.2.39.2.1.7">RecordPattern*</li>
                  <li pn="section-3.1-2.2.39.2.1.8">RecordItem*</li>
                  <li pn="section-3.1-2.2.39.2.1.9">URL*</li>
                  <li pn="section-3.1-2.2.39.2.1.10">FileData*</li>
                  <li pn="section-3.1-2.2.39.2.1.11">WindowsRegistryKeysModified*</li>
                  <li pn="section-3.1-2.2.39.2.1.12">CertificateData*</li>
                  <li pn="section-3.1-2.2.39.2.1.13">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.22.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.22.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">RecordPattern</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.40.2.1">
                  <li pn="section-3.1-2.2.40.2.1.1">type</li>
                  <li pn="section-3.1-2.2.40.2.1.2">ext-type?</li>
                  <li pn="section-3.1-2.2.40.2.1.3">offset?</li>
                  <li pn="section-3.1-2.2.40.2.1.4">offsetunit?</li>
                  <li pn="section-3.1-2.2.40.2.1.5">ext-offsetunit?</li>
                  <li pn="section-3.1-2.2.40.2.1.6">instance?</li>
                  <li pn="section-3.1-2.2.40.2.1.7">value</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.22.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.22.2" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">WindowsRegistryKeysModified</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.41.2.1">
                  <li pn="section-3.1-2.2.41.2.1.1">observable-id?</li>
                  <li pn="section-3.1-2.2.41.2.1.2">Key+</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.23" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.23" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Key</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.42.2.1">
                  <li pn="section-3.1-2.2.42.2.1.1">registryaction?</li>
                  <li pn="section-3.1-2.2.42.2.1.2">ext-registryaction?</li>
                  <li pn="section-3.1-2.2.42.2.1.3">observable-id?</li>
                  <li pn="section-3.1-2.2.42.2.1.4">KeyName</li>
                  <li pn="section-3.1-2.2.42.2.1.5">KeyValue?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.23.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.23.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">CertificateData</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.43.2.1">
                  <li pn="section-3.1-2.2.43.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.43.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.43.2.1.3">observable-id?</li>
                  <li pn="section-3.1-2.2.43.2.1.4">Certificate+</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.24" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.24" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Certificate</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.44.2.1">
                  <li pn="section-3.1-2.2.44.2.1.1">observable-id?</li>
                  <li pn="section-3.1-2.2.44.2.1.2">X509Data</li>
                  <li pn="section-3.1-2.2.44.2.1.3">Description*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.24.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.24.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">FileData</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.45.2.1">
                  <li pn="section-3.1-2.2.45.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.45.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.45.2.1.3">observable-id?</li>
                  <li pn="section-3.1-2.2.45.2.1.4">File+</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.25" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.25" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">File</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.46.2.1">
                  <li pn="section-3.1-2.2.46.2.1.1">observable-id?</li>
                  <li pn="section-3.1-2.2.46.2.1.2">FileName?</li>
                  <li pn="section-3.1-2.2.46.2.1.3">FileSize?</li>
                  <li pn="section-3.1-2.2.46.2.1.4">FileType?</li>
                  <li pn="section-3.1-2.2.46.2.1.5">URL*</li>
                  <li pn="section-3.1-2.2.46.2.1.6">HashData?</li>
                  <li pn="section-3.1-2.2.46.2.1.7">Signature*</li>
                  <li pn="section-3.1-2.2.46.2.1.8">AssociatedSoftware?</li>
                  <li pn="section-3.1-2.2.46.2.1.9">FileProperties*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.25.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.25.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">HashData</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.47.2.1">
                  <li pn="section-3.1-2.2.47.2.1.1">scope</li>
                  <li pn="section-3.1-2.2.47.2.1.2">HashTargetID?</li>
                  <li pn="section-3.1-2.2.47.2.1.3">Hash*</li>
                  <li pn="section-3.1-2.2.47.2.1.4">FuzzyHash*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.26" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.26" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Hash</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.48.2.1">
                  <li pn="section-3.1-2.2.48.2.1.1">DigestMethod</li>
                  <li pn="section-3.1-2.2.48.2.1.2">DigestValue</li>
                  <li pn="section-3.1-2.2.48.2.1.3">CanonicalizationMethod?</li>
                  <li pn="section-3.1-2.2.48.2.1.4">Application?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.26.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.26.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">FuzzyHash</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.49.2.1">
                  <li pn="section-3.1-2.2.49.2.1.1">FuzzyHashValue+</li>
                  <li pn="section-3.1-2.2.49.2.1.2">Application?</li>
                  <li pn="section-3.1-2.2.49.2.1.3">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.26.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.26.2" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Indicator</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.50.2.1">
                  <li pn="section-3.1-2.2.50.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.50.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.50.2.1.3">IndicatorID</li>
                  <li pn="section-3.1-2.2.50.2.1.4">AlternativeIndicatorID*</li>
                  <li pn="section-3.1-2.2.50.2.1.5">Description*</li>
                  <li pn="section-3.1-2.2.50.2.1.6">StartTime?</li>
                  <li pn="section-3.1-2.2.50.2.1.7">EndTime?</li>
                  <li pn="section-3.1-2.2.50.2.1.8">Confidence?</li>
                  <li pn="section-3.1-2.2.50.2.1.9">Contact*</li>
                  <li pn="section-3.1-2.2.50.2.1.10">Observable?</li>
                  <li pn="section-3.1-2.2.50.2.1.11">uid-ref?</li>
                  <li pn="section-3.1-2.2.50.2.1.12">IndicatorExpression?</li>
                  <li pn="section-3.1-2.2.50.2.1.13">IndicatorReference?</li>
                  <li pn="section-3.1-2.2.50.2.1.14">NodeRole*</li>
                  <li pn="section-3.1-2.2.50.2.1.15">AttackPhase*</li>
                  <li pn="section-3.1-2.2.50.2.1.16">Reference*</li>
                  <li pn="section-3.1-2.2.50.2.1.17">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.29" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.29" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">IndicatorID</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.51.2.1">
                  <li pn="section-3.1-2.2.51.2.1.1">id</li>
                  <li pn="section-3.1-2.2.51.2.1.2">name</li>
                  <li pn="section-3.1-2.2.51.2.1.3">version</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.29.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.29.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">AlternativeIndicatorID</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.52.2.1">
                  <li pn="section-3.1-2.2.52.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.52.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.52.2.1.3">IndicatorID+</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.29.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.29.2" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Observable</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.53.2.1">
                  <li pn="section-3.1-2.2.53.2.1.1">restriction?</li>
                  <li pn="section-3.1-2.2.53.2.1.2">ext-restriction?</li>
                  <li pn="section-3.1-2.2.53.2.1.3">System?</li>
                  <li pn="section-3.1-2.2.53.2.1.4">Address?</li>
                  <li pn="section-3.1-2.2.53.2.1.5">DomainData?</li>
                  <li pn="section-3.1-2.2.53.2.1.6">Service?</li>
                  <li pn="section-3.1-2.2.53.2.1.7">EmailData?</li>
                  <li pn="section-3.1-2.2.53.2.1.8">WindowsRegistryKeysModified?</li>
                  <li pn="section-3.1-2.2.53.2.1.9">FileData?</li>
                  <li pn="section-3.1-2.2.53.2.1.10">CertificateData?</li>
                  <li pn="section-3.1-2.2.53.2.1.11">RegistryHandle?</li>
                  <li pn="section-3.1-2.2.53.2.1.12">RecordData?</li>
                  <li pn="section-3.1-2.2.53.2.1.13">EventData?</li>
                  <li pn="section-3.1-2.2.53.2.1.14">Incident?</li>
                  <li pn="section-3.1-2.2.53.2.1.15">Expectation?</li>
                  <li pn="section-3.1-2.2.53.2.1.16">Reference?</li>
                  <li pn="section-3.1-2.2.53.2.1.17">Assessment?</li>
                  <li pn="section-3.1-2.2.53.2.1.18">DetectionPattern?</li>
                  <li pn="section-3.1-2.2.53.2.1.19">HistoryItem?</li>
                  <li pn="section-3.1-2.2.53.2.1.20">BulkObservable?</li>
                  <li pn="section-3.1-2.2.53.2.1.21">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.29.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.29.3" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">BulkObservable</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.54.2.1">
                  <li pn="section-3.1-2.2.54.2.1.1">type?</li>
                  <li pn="section-3.1-2.2.54.2.1.2">ext-type?</li>
                  <li pn="section-3.1-2.2.54.2.1.3">BulkObservableFormat?</li>
                  <li pn="section-3.1-2.2.54.2.1.4">BulkObservableList</li>
                  <li pn="section-3.1-2.2.54.2.1.5">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.29.3.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.29.3.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">BulkObservableFormat</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.55.2.1">
                  <li pn="section-3.1-2.2.55.2.1.1">Hash?</li>
                  <li pn="section-3.1-2.2.55.2.1.2">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.29.3.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.29.3.1.1" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">IndicatorExpression</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.56.2.1">
                  <li pn="section-3.1-2.2.56.2.1.1">operator?</li>
                  <li pn="section-3.1-2.2.56.2.1.2">ext-operator?</li>
                  <li pn="section-3.1-2.2.56.2.1.3">IndicatorExpression*</li>
                  <li pn="section-3.1-2.2.56.2.1.4">Observable*</li>
                  <li pn="section-3.1-2.2.56.2.1.5">uid-ref*</li>
                  <li pn="section-3.1-2.2.56.2.1.6">IndicatorReference*</li>
                  <li pn="section-3.1-2.2.56.2.1.7">Confidence?</li>
                  <li pn="section-3.1-2.2.56.2.1.8">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.29.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.29.4" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">IndicatorReference</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.57.2.1">
                  <li pn="section-3.1-2.2.57.2.1.1">uid-ref?</li>
                  <li pn="section-3.1-2.2.57.2.1.2">euid-ref?</li>
                  <li pn="section-3.1-2.2.57.2.1.3">version?</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.29.7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.29.7" derivedContent="RFC7970"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">AttackPhase</td>
              <td align="left" colspan="1" rowspan="1">
                <ul bare="true" empty="true" spacing="compact" pn="section-3.1-2.2.58.2.1">
                  <li pn="section-3.1-2.2.58.2.1.1">AttackPhaseID*</li>
                  <li pn="section-3.1-2.2.58.2.1.2">URL*</li>
                  <li pn="section-3.1-2.2.58.2.1.3">Description*</li>
                  <li pn="section-3.1-2.2.58.2.1.4">AdditionalData*</li>
                </ul>
              </td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC7970" sectionFormat="bare" section="3.29.8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7970#section-3.29.8" derivedContent="RFC7970"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="mapping" numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-mapping-between-json-and-xm">Mapping between JSON and XML IODEF</name>
        <ul spacing="normal" bare="false" empty="false" pn="section-3.2-1">
          <li pn="section-3.2-1.1">Attributes and elements of each class in the XML IODEF document are both presented as JSON attributes in the JSON IODEF document, and the order of their appearances is ignored.</li>
          <li pn="section-3.2-1.2">Flow class is deleted, and classes with its instances now directly have instances of the EventData class that used to belong to the Flow class.</li>
          <li pn="section-3.2-1.3">ApplicationHeader class is deleted, and classes with its instances now directly have instances of the ApplicationHeaderField class that used to belong to the ApplicationHeader class.</li>
          <li pn="section-3.2-1.4">SignatureData class is deleted, and classes with its instances now directly have instances of the Signature class that used to belong to the SignatureData class.</li>
          <li pn="section-3.2-1.5">IndicatorData class is deleted, and classes with its instances now directly have instances of the Indicator class that used to belong to the IndicatorData class.</li>
          <li pn="section-3.2-1.6">ObservableReference class is deleted, and classes with its instances now directly have uid-ref as an element.</li>
          <li pn="section-3.2-1.7">Record class is deleted, and classes with its instances now directly have instances of the RecordData class that used to belong to the Record class.</li>
          <li pn="section-3.2-1.8">The MLStringType was modified to support simple string by allowing the type to have not only a predefined object type but also a text type, in order to allow simple descriptions of elements of the type. Implementations need to be capable of parsing an MLStringType that could take the form of both text and an object.</li>
          <li pn="section-3.2-1.9">The elements of the ML_STRING type in the XML IODEF document are presented as either STRING type or ML_STRING type in the JSON IODEF document.
When converting from the XML IODEF document to the JSON IODEF document, or vice versa, the information contained in the original data of the ML_STRING type must be preserved.
When STRING is used instead of ML_STRING, parsers can assume that its "xml:lang" is set to "en".</li>
          <li pn="section-3.2-1.10">Data models of the extension classes defined by <xref target="RFC7203" format="default" sectionFormat="of" derivedContent="RFC7203"/> and referenced by <xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970"/> are represented by the STRUCTUREDINFO class defined in this document.</li>
          <li pn="section-3.2-1.11">Signature, X509Data, and RawData are encoded using base64 encoding for JSON IODEF and binary representation for CBOR IODEF to represent them as BYTE objects.</li>
          <li pn="section-3.2-1.12">EmailBody represents a whole message body including MIME structure in the same manner defined in <xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970"/>. In case of an email composed of a MIME multipart, the EmailBody contains multiple body parts separated by boundary strings.</li>
          <li pn="section-3.2-1.13">The "ipv6-net-mask" type attribute of the BulkObservable class
	  remains available for the purpose of backward compatibility, but the use of this attribute is not recommended because IPv6 does not use netmask any more.</li>
          <li pn="section-3.2-1.14">ENUM values in this document are extensible and managed by IANA, which is also the case in <xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970"/>. The values in the table are used both by <xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970"/> implementations and by their JSON (and CBOR) bindings as specified by this document.</li>
          <li pn="section-3.2-1.15">This document uses JSON's "number" type to represent integers that only have full precision for integer values between -2<sup>53</sup> and 2<sup>53</sup>. When dealing with integers outside the range, this issue needs to be considered.</li>
          <li pn="section-3.2-1.16">Binaries are encoded in bytes. Note that XML IODEF in <xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970"/> uses HEXBIN due to the incapability of XML for embedding binaries as they are.</li>
        </ul>
      </section>
    </section>
    <section anchor="examples" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-examples">Examples</name>
      <t pn="section-4-1">
   This section provides examples of IODEF documents.  These examples do
   not represent the full capabilities of the data model or the only
   way to encode particular information.
</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-minimal-example">Minimal Example</name>
        <t pn="section-4.1-1">A document containing only the mandatory elements and attributes is shown below in JSON and CBOR, respectively.</t>
        <figure anchor="minimal_example_json" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-a-minimal-example-in-json">A Minimal Example in JSON</name>
          <sourcecode type="json" markers="false" pn="section-4.1-2.1">
{
  "version": "2.0",
  "lang": "en",
  "Incident": [{
      "purpose": "reporting",
      "restriction": "private",
      "IncidentID": {
        "id": "492382",
        "name": "csirt.example.com"
      },
      "GenerationTime": "2015-07-18T09:00:00-05:00",
      "Contact": [{
          "type": "organization",
          "role": "creator",
          "Email": [{"EmailTo": "contact@csirt.example.com"}]
      }]
  }]
}
</sourcecode>
        </figure>
        <figure anchor="minimal_example_cbor" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-a-minimal-example-in-cbor">A Minimal Example in CBOR</name>
          <sourcecode type="cbor" markers="false" pn="section-4.1-3.1">
A3                                    # map(3)
   37                                 # negative(23)
   63                                 # text(3)
      322E30                          # "2.0"
   36                                 # negative(22)
   62                                 # text(2)
      656E                            # "en"
   32                                 # negative(18)
   81                                 # array(1)
      A5                              # map(5)
         21                           # negative(1)
         69                           # text(9)
            7265706F7274696E67        # "reporting"
         29                           # negative(9)
         67                           # text(7)
            70726976617465            # "private"
         02                           # unsigned(2)
         A2                           # map(2)
            12                        # unsigned(18)
            66                        # text(6)
               343932333832           # "492382"
            2E                        # negative(14)
            71                        # text(17)
               63736972742E6578616D706C652E636F6D
                                      # "csirt.example.com"
         0A                           # unsigned(10)
         78 19                        # text(25)
            323031352D30372D31385430393A30303A30302D30353A3030
                                      # "2015-07-18T09:00:00
                                      # -05:00"
         0E                           # unsigned(14)
         81                           # array(1)
            A3                        # map(3)
               18 1C                  # unsigned(28)
               6C                     # text(12)
                  6F7267616E697A6174696F6E # "organization"
               18 1A                  # unsigned(26)
               67                     # text(7)
                  63726561746F72      # "creator"
               18 22                  # unsigned(34)
               81                     # array(1)
                  A1                  # map(1)
                     18 29            # unsigned(41)
                     78 19            # text(25)
                        636F6E746163744063736972742E6578616D70
                        6C652E636F6D
                                      # "contact@csirt.example.com"
</sourcecode>
        </figure>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-indicators-from-a-campaign">Indicators from a Campaign</name>
        <t pn="section-4.2-1">An example of C2 domains from a given campaign is shown below in JSON and CBOR, respectively.</t>
        <figure anchor="campaign_example_json" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-indicators-from-a-campaign-">Indicators from a Campaign in JSON</name>
          <sourcecode type="json" markers="false" pn="section-4.2-2.1">
{
  "version": "2.0",
  "lang": "en",
  "Incident": [{
    "purpose": "watch",
    "restriction": "green",
    "IncidentID": {
      "id": "897923",
      "name": "csirt.example.com"
    },
    "RelatedActivity": [{
      "ThreatActor": [{
        "ThreatActorID": ["TA-12-AGGRESSIVE-BUTTERFLY"],
        "Description": ["Aggressive Butterfly"]}],
      "Campaign": [{
        "CampaignID": ["C-2015-59405"],
        "Description": ["Orange Giraffe"]
      }]
    }],
    "GenerationTime": "2015-10-02T11:18:00-05:00",
    "Description": ["Summarizes the Indicators of Compromise for the
      Orange Giraffe campaign of the Aggressive Butterfly crime
      gang."],
    "Assessment": [{
      "Impact": [{"BusinessImpact": {"type": "breach-proprietary"}}]
    }],
    "Contact": [{
      "type": "organization",
      "role": "creator",
      "ContactName": ["CSIRT for example.com"],
      "Email": [{
        "EmailTo": "contact@csirt.example.com"
      }]
    }],
    "Indicator": [{
      "IndicatorID": {
        "id": "G90823490",
        "name": "csirt.example.com",
        "version": "1"
      },
      "Description": ["C2 domains"],
      "StartTime": "2014-12-02T11:18:00-05:00",
      "Observable": {
        "BulkObservable": {
          "type": "domain-name",
          "BulkObservableList": "kj290023j09r34.example.com"}
      }
    }]
  }]
}</sourcecode>
        </figure>
        <figure anchor="campaign_example_cbor" align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-indicators-from-a-campaign-i">Indicators from a Campaign in CBOR</name>
          <sourcecode type="cbor" markers="false" pn="section-4.2-3.1">
A3                                      # map(3)
   37                                   # negative(23)
   63                                   # text(3)
      322E30                            # "2.0"
   36                                   # negative(22)
   62                                   # text(2)
      656E                              # "en"
   32                                   # negative(18)
   81                                   # array(1)
      A9                                # map(9)
         21                             # negative(1)
         65                             # text(5)
            7761746368                  # "watch"
         29                             # negative(9)
         65                             # text(5)
            677265656E                  # "green"
         02                             # unsigned(2)
         A2                             # map(2)
            12                          # unsigned(18)
            66                          # text(6)
               383937393233             # "897923"
            2E                          # negative(14)
            71                          # text(17)
               63736972742E6578616D706C652E636F6D
                                        # "csirt.example.com"
         04                             # unsigned(4)
         81                             # array(1)
            A2                          # map(2)
               14                       # unsigned(20)
               81                       # array(1)
                  A2                    # map(2)
                     18 18              # unsigned(24)
                     81                 # array(1)
                        78 1A           # text(26)
                           54412D31322D414747524553534956452D4
                           25554544552464C59
                                        # "TA-12-AGGRESSIVE
                                        # -BUTTERFLY"
                     24                 # negative(4)
                     81                 # array(1)
                        74              # text(20)
                           41676772657373697665204275747465726
                           66C79
                                        # "Aggressive Butterfly"
               15                       # unsigned(21)
               81                       # array(1)
                  A2                    # map(2)
                     18 19              # unsigned(25)
                     81                 # array(1)
                        6C              # text(12)
                           432D323031352D3539343035
                                        # "C-2015-59405"
                     24                 # negative(4)
                     81                 # array(1)
                        6E              # text(14)
                           4F72616E67652047697261666665
 # "Orange Giraffe"
         0A                             # unsigned(10)
         78 19                          # text(25)
            323031352D31302D30325431313A31383A30302D30353A3030
                                       # "2015-10-02T11:18:00-05:00"
         24                             # negative(4)
         81                             # array(1)
            78 6F                       # text(111)
               53756D6D6172697A65732074686520496E64696361746F7
               273206F6620436F6D70726F6D69736520666F7220746865
               204F72616E676520476972616666652063616D706169676
               E206F662074686520416767726573736976652042757474
               6572666C79206372696D652067616E672E
                                        # "Summarizes the Indicators
                                        # of Compromise for the
                                        # Orange Giraffe campaign
                                        # of the Aggressive
                                        # Butterfly crime gang."
         0C                             # unsigned(12)
         81                             # array(1)
            A1                          # map(1)
               18 3F                    # unsigned(63)
               81                       # array(1)
                  A1                    # map(1)
                     18 41              # unsigned(65)
                     A1                 # map(1)
                        18 1C           # unsigned(28)
                        72              # text(18)
                           6272656163682D70726F7072696574617279
                                        # "breach-proprietary"
         0E                             # unsigned(14)
         81                             # array(1)
            A4                          # map(4)
               18 1C                    # unsigned(28)
               6C                       # text(12)
                  6F7267616E697A6174696F6E
                                        # "organization"
               18 1A                    # unsigned(26)
               67                       # text(7)
                  63726561746F72        # "creator"
               18 1E                    # unsigned(30)
               81                       # array(1)
                  75                    # text(21)
                     435349525420666F72206578616D706C652E636F6D
                                        # "CSIRT for example.com"
               18 22                    # unsigned(34)
               81                       # array(1)
                  A1                    # map(1)
                     18 29              # unsigned(41)
                     78 19              # text(25)
                        636F6E746163744063736972742E6578616D70
                        6C652E636F6D
                                       # "contact@csirt.example.com"
         10                             # unsigned(16)
         81                             # array(1)
            A4                          # map(4)
               16                       # unsigned(22)
               A3                       # map(3)
                  12                    # unsigned(18)
                  69                    # text(9)
                     473930383233343930 # "G90823490"
                  2E                    # negative(14)
                  71                    # text(17)
                     63736972742E6578616D706C652E636F6D
                                        # "csirt.example.com"
                  37                    # negative(23)
                  61                    # text(1)
                     31                 # "1"
               24                       # negative(4)
               81                       # array(1)
                  6A                    # text(10)
                     433220646F6D61696E73 # "C2 domains"
               06                       # unsigned(6)
               78 19                    # text(25)
                  323031342D31322D30325431313A31383A30302D30353A3030
                                       # "2014-12-02T11:18:00-05:00"
               18 AB                    # unsigned(171)
               A1                       # map(1)
                  18 B0                 # unsigned(176)
                  A2                    # map(2)
                     18 1C              # unsigned(28)
                     6B                 # text(11)
                        646F6D61696E2D6E616D65
                                        # "domain-name"
                     18 B2              # unsigned(178)
                     78 1A              # text(26)
                        6B6A3239303032336A30397233342E6578616D
                        706C652E636F6D
                                      # "kj290023j09r34.example.com"
</sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="mapkeys" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-mapkeys">Mapkeys</name>
      <t pn="section-5-1">The mapkeys are provided in <xref target="fig_mapkeys" format="default" sectionFormat="of" derivedContent="Table 4"/> for minimizing the CBOR size.</t>
      <table align="left" anchor="fig_mapkeys" pn="table-4">
        <name slugifiedName="name-mapkeys-2">Mapkeys</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">mapkey</th>
            <th align="left" colspan="1" rowspan="1">cborkey</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-version</td>
            <td align="left" colspan="1" rowspan="1">-24</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-lang</td>
            <td align="left" colspan="1" rowspan="1">-23</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-format-id</td>
            <td align="left" colspan="1" rowspan="1">-22</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-private-enum-name</td>
            <td align="left" colspan="1" rowspan="1">-21</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-private-enum-id</td>
            <td align="left" colspan="1" rowspan="1">-20</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Incident</td>
            <td align="left" colspan="1" rowspan="1">-19</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-AdditionalData</td>
            <td align="left" colspan="1" rowspan="1">-18</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-value</td>
            <td align="left" colspan="1" rowspan="1">-17</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-translation-id</td>
            <td align="left" colspan="1" rowspan="1">-16</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-name</td>
            <td align="left" colspan="1" rowspan="1">-15</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-dtype</td>
            <td align="left" colspan="1" rowspan="1">-14</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-dtype</td>
            <td align="left" colspan="1" rowspan="1">-13</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-meaning</td>
            <td align="left" colspan="1" rowspan="1">-12</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-formatid</td>
            <td align="left" colspan="1" rowspan="1">-11</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-restriction</td>
            <td align="left" colspan="1" rowspan="1">-10</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-restriction</td>
            <td align="left" colspan="1" rowspan="1">-9</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-observable-id</td>
            <td align="left" colspan="1" rowspan="1">-8</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-SoftwareReference</td>
            <td align="left" colspan="1" rowspan="1">-7</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-URL</td>
            <td align="left" colspan="1" rowspan="1">-6</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Description</td>
            <td align="left" colspan="1" rowspan="1">-5</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-spec-name</td>
            <td align="left" colspan="1" rowspan="1">-4</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-spec-name</td>
            <td align="left" colspan="1" rowspan="1">-3</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-purpose</td>
            <td align="left" colspan="1" rowspan="1">-2</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-purpose</td>
            <td align="left" colspan="1" rowspan="1">-1</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-status</td>
            <td align="left" colspan="1" rowspan="1">0</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-status</td>
            <td align="left" colspan="1" rowspan="1">1</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-IncidentID</td>
            <td align="left" colspan="1" rowspan="1">2</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-AlternativeID</td>
            <td align="left" colspan="1" rowspan="1">3</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-RelatedActivity</td>
            <td align="left" colspan="1" rowspan="1">4</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-DetectTime</td>
            <td align="left" colspan="1" rowspan="1">5</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-StartTime</td>
            <td align="left" colspan="1" rowspan="1">6</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EndTime</td>
            <td align="left" colspan="1" rowspan="1">7</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-RecoveryTime</td>
            <td align="left" colspan="1" rowspan="1">8</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ReportTime</td>
            <td align="left" colspan="1" rowspan="1">9</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-GenerationTime</td>
            <td align="left" colspan="1" rowspan="1">10</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Discovery</td>
            <td align="left" colspan="1" rowspan="1">11</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Assessment</td>
            <td align="left" colspan="1" rowspan="1">12</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Method</td>
            <td align="left" colspan="1" rowspan="1">13</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Contact</td>
            <td align="left" colspan="1" rowspan="1">14</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EventData</td>
            <td align="left" colspan="1" rowspan="1">15</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Indicator</td>
            <td align="left" colspan="1" rowspan="1">16</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-History</td>
            <td align="left" colspan="1" rowspan="1">17</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-id</td>
            <td align="left" colspan="1" rowspan="1">18</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-instance</td>
            <td align="left" colspan="1" rowspan="1">19</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ThreatActor</td>
            <td align="left" colspan="1" rowspan="1">20</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Campaign</td>
            <td align="left" colspan="1" rowspan="1">21</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-IndicatorID</td>
            <td align="left" colspan="1" rowspan="1">22</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Confidence</td>
            <td align="left" colspan="1" rowspan="1">23</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ThreatActorID</td>
            <td align="left" colspan="1" rowspan="1">24</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-CampaignID</td>
            <td align="left" colspan="1" rowspan="1">25</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-role</td>
            <td align="left" colspan="1" rowspan="1">26</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-role</td>
            <td align="left" colspan="1" rowspan="1">27</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-type</td>
            <td align="left" colspan="1" rowspan="1">28</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-type</td>
            <td align="left" colspan="1" rowspan="1">29</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ContactName</td>
            <td align="left" colspan="1" rowspan="1">30</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ContactTitle</td>
            <td align="left" colspan="1" rowspan="1">31</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-RegistryHandle</td>
            <td align="left" colspan="1" rowspan="1">32</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-PostalAddress</td>
            <td align="left" colspan="1" rowspan="1">33</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Email</td>
            <td align="left" colspan="1" rowspan="1">34</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Telephone</td>
            <td align="left" colspan="1" rowspan="1">35</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Timezone</td>
            <td align="left" colspan="1" rowspan="1">36</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-handle</td>
            <td align="left" colspan="1" rowspan="1">37</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-registry</td>
            <td align="left" colspan="1" rowspan="1">38</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-registry</td>
            <td align="left" colspan="1" rowspan="1">39</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-PAddress</td>
            <td align="left" colspan="1" rowspan="1">40</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EmailTo</td>
            <td align="left" colspan="1" rowspan="1">41</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-TelephoneNumber</td>
            <td align="left" colspan="1" rowspan="1">42</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-source</td>
            <td align="left" colspan="1" rowspan="1">43</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-source</td>
            <td align="left" colspan="1" rowspan="1">44</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-DetectionPattern</td>
            <td align="left" colspan="1" rowspan="1">45</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-DetectionConfiguration</td>
            <td align="left" colspan="1" rowspan="1">46</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Application</td>
            <td align="left" colspan="1" rowspan="1">47</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Reference</td>
            <td align="left" colspan="1" rowspan="1">48</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-AttackPattern</td>
            <td align="left" colspan="1" rowspan="1">49</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Vulnerability</td>
            <td align="left" colspan="1" rowspan="1">50</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Weakness</td>
            <td align="left" colspan="1" rowspan="1">51</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-SpecID</td>
            <td align="left" colspan="1" rowspan="1">52</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-SpecID</td>
            <td align="left" colspan="1" rowspan="1">53</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ContentID</td>
            <td align="left" colspan="1" rowspan="1">54</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-RawData</td>
            <td align="left" colspan="1" rowspan="1">55</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Platform</td>
            <td align="left" colspan="1" rowspan="1">56</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Scoring</td>
            <td align="left" colspan="1" rowspan="1">57</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ReferenceName</td>
            <td align="left" colspan="1" rowspan="1">58</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-specIndex</td>
            <td align="left" colspan="1" rowspan="1">59</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ID</td>
            <td align="left" colspan="1" rowspan="1">60</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-occurrence</td>
            <td align="left" colspan="1" rowspan="1">61</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-IncidentCategory</td>
            <td align="left" colspan="1" rowspan="1">62</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Impact</td>
            <td align="left" colspan="1" rowspan="1">63</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-SystemImpact</td>
            <td align="left" colspan="1" rowspan="1">64</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-BusinessImpact</td>
            <td align="left" colspan="1" rowspan="1">65</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-TimeImpact</td>
            <td align="left" colspan="1" rowspan="1">66</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-MonetaryImpact</td>
            <td align="left" colspan="1" rowspan="1">67</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-IntendedImpact</td>
            <td align="left" colspan="1" rowspan="1">68</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Counter</td>
            <td align="left" colspan="1" rowspan="1">69</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-MitigatingFactor</td>
            <td align="left" colspan="1" rowspan="1">70</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Cause</td>
            <td align="left" colspan="1" rowspan="1">71</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-severity</td>
            <td align="left" colspan="1" rowspan="1">72</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-completion</td>
            <td align="left" colspan="1" rowspan="1">73</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-severity</td>
            <td align="left" colspan="1" rowspan="1">74</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-metric</td>
            <td align="left" colspan="1" rowspan="1">75</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-metric</td>
            <td align="left" colspan="1" rowspan="1">76</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-duration</td>
            <td align="left" colspan="1" rowspan="1">77</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-duration</td>
            <td align="left" colspan="1" rowspan="1">78</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-currency</td>
            <td align="left" colspan="1" rowspan="1">79</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-rating</td>
            <td align="left" colspan="1" rowspan="1">80</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-rating</td>
            <td align="left" colspan="1" rowspan="1">81</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-HistoryItem</td>
            <td align="left" colspan="1" rowspan="1">82</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-action</td>
            <td align="left" colspan="1" rowspan="1">83</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-action</td>
            <td align="left" colspan="1" rowspan="1">84</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-DateTime</td>
            <td align="left" colspan="1" rowspan="1">85</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-DefinedCOA</td>
            <td align="left" colspan="1" rowspan="1">86</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-System</td>
            <td align="left" colspan="1" rowspan="1">87</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Expectation</td>
            <td align="left" colspan="1" rowspan="1">88</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-RecordData</td>
            <td align="left" colspan="1" rowspan="1">89</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-category</td>
            <td align="left" colspan="1" rowspan="1">90</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-category</td>
            <td align="left" colspan="1" rowspan="1">91</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-interface</td>
            <td align="left" colspan="1" rowspan="1">92</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-spoofed</td>
            <td align="left" colspan="1" rowspan="1">93</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-virtual</td>
            <td align="left" colspan="1" rowspan="1">94</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ownership</td>
            <td align="left" colspan="1" rowspan="1">95</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-ownership</td>
            <td align="left" colspan="1" rowspan="1">96</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Node</td>
            <td align="left" colspan="1" rowspan="1">97</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-NodeRole</td>
            <td align="left" colspan="1" rowspan="1">98</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Service</td>
            <td align="left" colspan="1" rowspan="1">99</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-OperatingSystem</td>
            <td align="left" colspan="1" rowspan="1">100</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-AssetID</td>
            <td align="left" colspan="1" rowspan="1">101</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-DomainData</td>
            <td align="left" colspan="1" rowspan="1">102</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Address</td>
            <td align="left" colspan="1" rowspan="1">103</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Location</td>
            <td align="left" colspan="1" rowspan="1">104</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-vlan-name</td>
            <td align="left" colspan="1" rowspan="1">105</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-vlan-num</td>
            <td align="left" colspan="1" rowspan="1">106</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-unit</td>
            <td align="left" colspan="1" rowspan="1">107</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-unit</td>
            <td align="left" colspan="1" rowspan="1">108</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-system-status</td>
            <td align="left" colspan="1" rowspan="1">109</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-system-status</td>
            <td align="left" colspan="1" rowspan="1">110</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-domain-status</td>
            <td align="left" colspan="1" rowspan="1">111</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-domain-status</td>
            <td align="left" colspan="1" rowspan="1">112</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Name</td>
            <td align="left" colspan="1" rowspan="1">113</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-DateDomainWasChecked</td>
            <td align="left" colspan="1" rowspan="1">114</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-RegistrationDate</td>
            <td align="left" colspan="1" rowspan="1">115</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ExpirationDate</td>
            <td align="left" colspan="1" rowspan="1">116</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-RelatedDNS</td>
            <td align="left" colspan="1" rowspan="1">117</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-NameServers</td>
            <td align="left" colspan="1" rowspan="1">118</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-DomainContacts</td>
            <td align="left" colspan="1" rowspan="1">119</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Server</td>
            <td align="left" colspan="1" rowspan="1">120</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-SameDomainContact</td>
            <td align="left" colspan="1" rowspan="1">121</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ip-protocol</td>
            <td align="left" colspan="1" rowspan="1">122</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ServiceName</td>
            <td align="left" colspan="1" rowspan="1">123</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Port</td>
            <td align="left" colspan="1" rowspan="1">124</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Portlist</td>
            <td align="left" colspan="1" rowspan="1">125</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ProtoCode</td>
            <td align="left" colspan="1" rowspan="1">126</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ProtoType</td>
            <td align="left" colspan="1" rowspan="1">127</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ProtoField</td>
            <td align="left" colspan="1" rowspan="1">128</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ApplicationHeaderField</td>
            <td align="left" colspan="1" rowspan="1">129</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EmailData</td>
            <td align="left" colspan="1" rowspan="1">130</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-IANAService</td>
            <td align="left" colspan="1" rowspan="1">131</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EmailFrom</td>
            <td align="left" colspan="1" rowspan="1">132</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EmailSubject</td>
            <td align="left" colspan="1" rowspan="1">133</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EmailX-Mailer</td>
            <td align="left" colspan="1" rowspan="1">134</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EmailHeaderField</td>
            <td align="left" colspan="1" rowspan="1">135</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EmailHeaders</td>
            <td align="left" colspan="1" rowspan="1">136</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EmailBody</td>
            <td align="left" colspan="1" rowspan="1">137</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-EmailMessage</td>
            <td align="left" colspan="1" rowspan="1">138</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-HashData</td>
            <td align="left" colspan="1" rowspan="1">139</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Signature</td>
            <td align="left" colspan="1" rowspan="1">140</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-RecordPattern</td>
            <td align="left" colspan="1" rowspan="1">141</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-RecordItem</td>
            <td align="left" colspan="1" rowspan="1">142</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-FileData</td>
            <td align="left" colspan="1" rowspan="1">143</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-WindowsRegistryKeysModified</td>
            <td align="left" colspan="1" rowspan="1">144</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-CertificateData</td>
            <td align="left" colspan="1" rowspan="1">145</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-offset</td>
            <td align="left" colspan="1" rowspan="1">146</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-offsetunit</td>
            <td align="left" colspan="1" rowspan="1">147</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-offsetunit</td>
            <td align="left" colspan="1" rowspan="1">148</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Key</td>
            <td align="left" colspan="1" rowspan="1">149</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-registryaction</td>
            <td align="left" colspan="1" rowspan="1">150</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-registryaction</td>
            <td align="left" colspan="1" rowspan="1">151</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-KeyName</td>
            <td align="left" colspan="1" rowspan="1">152</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-KeyValue</td>
            <td align="left" colspan="1" rowspan="1">153</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Certificate</td>
            <td align="left" colspan="1" rowspan="1">154</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-X509Data</td>
            <td align="left" colspan="1" rowspan="1">155</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-File</td>
            <td align="left" colspan="1" rowspan="1">156</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-FileName</td>
            <td align="left" colspan="1" rowspan="1">157</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-FileSize</td>
            <td align="left" colspan="1" rowspan="1">158</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-FileType</td>
            <td align="left" colspan="1" rowspan="1">159</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-AssociatedSoftware</td>
            <td align="left" colspan="1" rowspan="1">160</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-FileProperties</td>
            <td align="left" colspan="1" rowspan="1">161</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-scope</td>
            <td align="left" colspan="1" rowspan="1">162</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-HashTargetID</td>
            <td align="left" colspan="1" rowspan="1">163</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Hash</td>
            <td align="left" colspan="1" rowspan="1">164</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-FuzzyHash</td>
            <td align="left" colspan="1" rowspan="1">165</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-DigestMethod</td>
            <td align="left" colspan="1" rowspan="1">166</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-DigestValue</td>
            <td align="left" colspan="1" rowspan="1">167</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-CanonicalizationMethod</td>
            <td align="left" colspan="1" rowspan="1">168</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-FuzzyHashValue</td>
            <td align="left" colspan="1" rowspan="1">169</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-AlternativeIndicatorID</td>
            <td align="left" colspan="1" rowspan="1">170</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-Observable</td>
            <td align="left" colspan="1" rowspan="1">171</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-uid-ref</td>
            <td align="left" colspan="1" rowspan="1">172</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-IndicatorExpression</td>
            <td align="left" colspan="1" rowspan="1">173</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-IndicatorReference</td>
            <td align="left" colspan="1" rowspan="1">174</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-AttackPhase</td>
            <td align="left" colspan="1" rowspan="1">175</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-BulkObservable</td>
            <td align="left" colspan="1" rowspan="1">176</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-BulkObservableFormat</td>
            <td align="left" colspan="1" rowspan="1">177</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-BulkObservableList</td>
            <td align="left" colspan="1" rowspan="1">178</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-operator</td>
            <td align="left" colspan="1" rowspan="1">179</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-ext-operator</td>
            <td align="left" colspan="1" rowspan="1">180</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-euid-ref</td>
            <td align="left" colspan="1" rowspan="1">181</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">iodef-AttackPhaseID</td>
            <td align="left" colspan="1" rowspan="1">182</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="cddlSection" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-the-iodef-data-model-cddl">The IODEF Data Model (CDDL)</name>
      <t keepWithNext="true" pn="section-6-1">This section provides the IODEF data model.
Note that mapkeys are described at the beginning of the CDDL data model for better readability.</t>
      <figure anchor="cddl" align="left" suppress-title="false" pn="figure-5">
        <name slugifiedName="name-data-model-in-cddl">Data Model in CDDL</name>
        <sourcecode type="cddl" markers="false" pn="section-6-2.1">
start = iodef

;;; iodef.json: IODEF-Document

iodef-version = -24
iodef-lang = -23
iodef-format-id = -22
iodef-private-enum-name = -21
iodef-private-enum-id = -20
iodef-Incident = -19
iodef-AdditionalData = -18
iodef-value = -17
iodef-translation-id = -16
iodef-name = -15
iodef-dtype = -14
iodef-ext-dtype = -13
iodef-meaning = -12
iodef-formatid = -11
iodef-restriction = -10
iodef-ext-restriction = -9
iodef-observable-id = -8
iodef-SoftwareReference = -7
iodef-URL = -6
iodef-Description = -5
iodef-spec-name = -4
iodef-ext-spec-name = -3
iodef-purpose = -2
iodef-ext-purpose = -1
iodef-status = 0
iodef-ext-status = 1
iodef-IncidentID = 2
iodef-AlternativeID = 3
iodef-RelatedActivity = 4
iodef-DetectTime = 5
iodef-StartTime = 6
iodef-EndTime = 7
iodef-RecoveryTime = 8
iodef-ReportTime = 9
iodef-GenerationTime = 10
iodef-Discovery = 11
iodef-Assessment = 12
iodef-Method = 13
iodef-Contact = 14
iodef-EventData = 15
iodef-Indicator = 16
iodef-History = 17
iodef-id = 18
iodef-instance = 19
iodef-ThreatActor = 20
iodef-Campaign = 21
iodef-IndicatorID = 22
iodef-Confidence = 23
iodef-ThreatActorID = 24
iodef-CampaignID = 25
iodef-role = 26
iodef-ext-role = 27
iodef-type = 28
iodef-ext-type = 29
iodef-ContactName = 30
iodef-ContactTitle = 31
iodef-RegistryHandle = 32
iodef-PostalAddress = 33
iodef-Email = 34
iodef-Telephone = 35
iodef-Timezone = 36
iodef-handle = 37
iodef-registry = 38
iodef-ext-registry = 39
iodef-PAddress = 40
iodef-EmailTo = 41
iodef-TelephoneNumber = 42
iodef-source = 43
iodef-ext-source = 44
iodef-DetectionPattern = 45
iodef-DetectionConfiguration = 46
iodef-Application = 47
iodef-Reference = 48
iodef-AttackPattern = 49
iodef-Vulnerability = 50
iodef-Weakness = 51
iodef-SpecID = 52
iodef-ext-SpecID = 53
iodef-ContentID = 54
iodef-RawData = 55
iodef-Platform = 56
iodef-Scoring = 57
iodef-ReferenceName = 58
iodef-specIndex = 59
iodef-ID = 60
iodef-occurrence = 61
iodef-IncidentCategory = 62
iodef-Impact = 63
iodef-SystemImpact = 64
iodef-BusinessImpact = 65
iodef-TimeImpact = 66
iodef-MonetaryImpact = 67
iodef-IntendedImpact = 68
iodef-Counter = 69
iodef-MitigatingFactor = 70
iodef-Cause = 71
iodef-severity = 72
iodef-completion = 73
iodef-ext-severity = 74
iodef-metric = 75
iodef-ext-metric = 76
iodef-duration = 77
iodef-ext-duration = 78
iodef-currency = 79
iodef-rating = 80
iodef-ext-rating = 81
iodef-HistoryItem = 82
iodef-action = 83
iodef-ext-action = 84
iodef-DateTime = 85
iodef-DefinedCOA = 86
iodef-System = 87
iodef-Expectation = 88
iodef-RecordData = 89
iodef-category = 90
iodef-ext-category = 91
iodef-interface = 92
iodef-spoofed = 93
iodef-virtual = 94
iodef-ownership = 95
iodef-ext-ownership = 96
iodef-Node = 97
iodef-NodeRole = 98
iodef-Service = 99
iodef-OperatingSystem = 100
iodef-AssetID = 101
iodef-DomainData = 102
iodef-Address = 103
iodef-Location = 104
iodef-vlan-name = 105
iodef-vlan-num = 106
iodef-unit = 107
iodef-ext-unit = 108
iodef-system-status = 109
iodef-ext-system-status = 110
iodef-domain-status = 111
iodef-ext-domain-status = 112
iodef-Name = 113
iodef-DateDomainWasChecked = 114
iodef-RegistrationDate = 115
iodef-ExpirationDate = 116
iodef-RelatedDNS = 117
iodef-NameServers = 118
iodef-DomainContacts = 119
iodef-Server = 120
iodef-SameDomainContact = 121
iodef-ip-protocol = 122
iodef-ServiceName = 123
iodef-Port = 124
iodef-Portlist = 125
iodef-ProtoCode = 126
iodef-ProtoType = 127
iodef-ProtoField = 128
iodef-ApplicationHeaderField = 129
iodef-EmailData = 130
iodef-IANAService = 131
iodef-EmailFrom = 132
iodef-EmailSubject = 133
iodef-EmailX-Mailer = 134
iodef-EmailHeaderField = 135
iodef-EmailHeaders = 136
iodef-EmailBody = 137
iodef-EmailMessage = 138
iodef-HashData = 139
iodef-Signature = 140
iodef-RecordPattern = 141
iodef-RecordItem = 142
iodef-FileData = 143
iodef-WindowsRegistryKeysModified = 144
iodef-CertificateData = 145
iodef-offset = 146
iodef-offsetunit = 147
iodef-ext-offsetunit = 148
iodef-Key = 149
iodef-registryaction = 150
iodef-ext-registryaction = 151
iodef-KeyName = 152
iodef-KeyValue = 153
iodef-Certificate = 154
iodef-X509Data = 155
iodef-File = 156
iodef-FileName = 157
iodef-FileSize = 158
iodef-FileType = 159
iodef-AssociatedSoftware = 160
iodef-FileProperties = 161
iodef-scope = 162
iodef-HashTargetID = 163
iodef-Hash = 164
iodef-FuzzyHash = 165
iodef-DigestMethod = 166
iodef-DigestValue = 167
iodef-CanonicalizationMethod = 168
iodef-FuzzyHashValue = 169
iodef-AlternativeIndicatorID = 170
iodef-Observable = 171
iodef-uid-ref = 172
iodef-IndicatorExpression = 173
iodef-IndicatorReference = 174
iodef-AttackPhase = 175
iodef-BulkObservable = 176
iodef-BulkObservableFormat = 177
iodef-BulkObservableList = 178
iodef-operator = 179
iodef-ext-operator = 180
iodef-euid-ref = 181
iodef-AttackPhaseID = 182

iodef = {
 iodef-version =&gt; text,
 ? iodef-lang =&gt; lang,
 ? iodef-format-id =&gt; text
 ? iodef-private-enum-name =&gt; text,
 ? iodef-private-enum-id =&gt; text,
 iodef-Incident =&gt; [+ Incident],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

duration = "second" / "minute" / "hour" / "day" / "month" /
"quarter" / "year" / "ext-value"
lang = "" / text .regexp "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"

restriction = "public" / "partner" / "need-to-know" / "private" /
"default" / "white" / "green" / "amber" / "red" /
"ext-value"
SpecID = "urn:ietf:params:xml:ns:mile:mmdef:1.2" /  "private"
IDtype = text .regexp "[a-zA-Z_][a-zA-Z0-9_.-]*"
IDREFType = IDtype
URLtype = uri
TimeZonetype = text .regexp "Z|[\\+\\-](0[0-9]|1[0-4]):[0-5][0-9]"
PortlistType = text .regexp
                        "[0-9]+(\\-[0-9]+)?(,[0-9]+(\\-[0-9]+)?)*"
action = "nothing" / "contact-source-site" / "contact-target-site" /
"contact-sender" / "investigate" / "block-host" /
"block-network" / "block-port" / "rate-limit-host" /
"rate-limit-network" / "rate-limit-port" / "redirect-traffic" /
"honeypot" / "upgrade-software" / "rebuild-asset" /
"harden-asset" / "remediate-other" / "status-triage" /
"status-new-info" / "watch-and-report" / "training" /
"defined-coa" / "other" / "ext-value"

DATETIME = tdate

BYTE = eb64legacy

MLStringType = {
    iodef-value =&gt; text,
    ? iodef-lang =&gt; lang,
    ? iodef-translation-id =&gt; text
} / text

PositiveFloatType = float32 .gt 0

PAddressType = MLStringType

ExtensionType  = {
 iodef-value =&gt; text,
 ? iodef-name =&gt; text,
 iodef-dtype =&gt; "boolean" / "byte" / "bytes" / "character" /
"date-time" / "ntpstamp" / "integer" / "portlist" / "real" /
"string" / "file" / "path" / "frame" / "packet" / "ipv4-packet" /
"json" / "ipv6-packet" / "url" / "csv" / "winreg" / "xml" /
"ext-value"
.default "string"
 ? iodef-ext-dtype =&gt; text,
 ? iodef-meaning =&gt; text,
 ? iodef-formatid =&gt; text,
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
}

SoftwareType = {
 ? iodef-SoftwareReference =&gt; SoftwareReference,
 ? iodef-URL =&gt; [+ URLtype],
 ? iodef-Description =&gt; [+ MLStringType]
}

SoftwareReference = {
 ? iodef-value =&gt; text,
 iodef-spec-name =&gt; "custom" / "cpe" / "swid" / "ext-value",
 ? iodef-ext-spec-name =&gt; text,
 ? iodef-dtype =&gt; "bytes" / "integer" / "real" / "string" / "xml" /
"ext-value" .default "string",
 ? iodef-ext-dtype =&gt; text
}

Incident = {
 iodef-purpose =&gt; "traceback" / "mitigation" / "reporting" /
"watch" / "other" / "ext-value",
 ? iodef-ext-purpose =&gt; text,
 ? iodef-status =&gt; "new" / "in-progress"/ "forwarded" / "resolved" /
"future" / "ext-value",
 ? iodef-ext-status =&gt; text,
 ? iodef-lang =&gt; lang,
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 iodef-IncidentID =&gt; IncidentID,
 ? iodef-AlternativeID =&gt; AlternativeID,
 ? iodef-RelatedActivity =&gt; [+ RelatedActivity],
 ? iodef-DetectTime =&gt; DATETIME,
 ? iodef-StartTime =&gt; DATETIME,
 ? iodef-EndTime =&gt; DATETIME,
 ? iodef-RecoveryTime =&gt; DATETIME,
 ? iodef-ReportTime =&gt; DATETIME,
 iodef-GenerationTime =&gt; DATETIME,
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-Discovery =&gt; [+ Discovery],
 ? iodef-Assessment =&gt; [+ Assessment],
 ? iodef-Method =&gt; [+ Method],
 iodef-Contact =&gt; [+ Contact],
 ? iodef-EventData =&gt; [+ EventData],
 ? iodef-Indicator =&gt; [+ Indicator],
 ? iodef-History =&gt; History,
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

IncidentID = {
 iodef-id =&gt; text,
 iodef-name =&gt; text,
 ? iodef-instance =&gt; text,
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text
}

AlternativeID = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 iodef-IncidentID =&gt; [+ IncidentID]
}

RelatedActivity = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-IncidentID =&gt; [+ IncidentID],
 ? iodef-URL =&gt; [+ URLtype],
 ? iodef-ThreatActor =&gt; [+ ThreatActor],
 ? iodef-Campaign =&gt; [+ Campaign],
 ? iodef-IndicatorID =&gt; [+ IndicatorID],
 ? iodef-Confidence =&gt; Confidence,
 ? iodef-Description =&gt; [+ text],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

ThreatActor = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-ThreatActorID =&gt; [+ text],
 ? iodef-URL =&gt; [+ URLtype],
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

Campaign  = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-CampaignID =&gt; [+ text],
 ? iodef-URL =&gt; [+ URLtype],
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

Contact = {
 iodef-role =&gt; "creator" / "reporter" / "admin" / "tech" /
"provider" / "user" / "billing" / "legal" / "irt" / "abuse" /
"cc" / "cc-irt" / "leo" / "vendor" / "vendor-support" /
"victim" / "victim-notified" / "ext-value",
 ? iodef-ext-role =&gt; text,
 iodef-type =&gt; "person" / "organization" / "ext-value",
 ? iodef-ext-type =&gt; text,
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-ContactName =&gt; [+ MLStringType],
 ? iodef-ContactTitle =&gt; [+ MLStringType],
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-RegistryHandle =&gt; [+ RegistryHandle],
 ? iodef-PostalAddress =&gt; [+ PostalAddress],
 ? iodef-Email =&gt; [+ Email],
 ? iodef-Telephone =&gt; [+ Telephone],
 ? iodef-Timezone =&gt; TimeZonetype,
 ? iodef-Contact =&gt; [+ Contact],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

RegistryHandle = {
 iodef-handle =&gt; text,
 iodef-registry =&gt; "internic" / "apnic" / "arin" / "lacnic" /
"ripe" / "afrinic" / "local" / "ext-value",
 ? iodef-ext-registry =&gt; text
}

PostalAddress = {
 ? iodef-type =&gt; "street" / "mailing" / "ext-value",
 ? iodef-ext-type =&gt; text,
 iodef-PAddress =&gt; PAddressType,
 ? iodef-Description =&gt; [+ MLStringType]
}

Email = {
 ? iodef-type =&gt; "direct" / "hotline" / "ext-value",
 ? iodef-ext-type =&gt; text,
 iodef-EmailTo =&gt; text,
 ? iodef-Description =&gt; [+ MLStringType]
}

Telephone = {
 ? iodef-type =&gt; "wired" / "mobile" / "fax" / "hotline" /
 "ext-value",
 ? iodef-ext-type =&gt; text,
 iodef-TelephoneNumber =&gt; text,
 ? iodef-Description =&gt; [+ MLStringType]
}

Discovery = {
 ? iodef-source =&gt; "nidps" / "hips" / "siem" / "av" /
"third-party-monitoring" / "incident" / "os-log" /
"application-log" / "device-log" / "network-flow" /
"passive-dns" / "investigation" / "audit" /
"internal-notification" / "external-notification" /
"leo" / "partner" / "actor" / "unknown" / "ext-value",
 ? iodef-ext-source =&gt; text,
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-Contact =&gt; [+ Contact],
 ? iodef-DetectionPattern =&gt; [+ DetectionPattern]
}

DetectionPattern = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 (iodef-Description =&gt; [+ MLStringType] //
               iodef-DetectionConfiguration =&gt; [+ text]),
 iodef-Application =&gt; SoftwareType
}

Method = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-Reference =&gt; [+ Reference],
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-AttackPattern =&gt; [+ STRUCTUREDINFO],
 ? iodef-Vulnerability =&gt; [+ STRUCTUREDINFO],
 ? iodef-Weakness =&gt; [+ STRUCTUREDINFO],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

STRUCTUREDINFO = {
 iodef-SpecID =&gt; SpecID,
 ? iodef-ext-SpecID =&gt; text,
 ? iodef-ContentID =&gt; text,
 ? (iodef-RawData =&gt; [+ BYTE] // iodef-Reference =&gt; [+ Reference]),
 ? iodef-Platform =&gt; [+ Platform],
 ? iodef-Scoring =&gt; [+ Scoring]
}

Platform = {
    iodef-SpecID =&gt; SpecID,
    ? iodef-ext-SpecID =&gt; text,
    ? iodef-ContentID =&gt; text,
    ? iodef-RawData =&gt; [+ BYTE],
    ? iodef-Reference =&gt; [+ Reference]
}
Scoring = {
    iodef-SpecID =&gt; SpecID,
    ? iodef-ext-SpecID =&gt; text,
    ? iodef-ContentID =&gt; text,
    ? iodef-RawData =&gt; [+ BYTE],
    ? iodef-Reference =&gt; [+ Reference]
}
Reference = {
 ? iodef-observable-id =&gt; IDtype,
 ? iodef-ReferenceName =&gt; ReferenceName,
 ? iodef-URL =&gt; [+ URLtype],
 ? iodef-Description =&gt; [+ MLStringType]
}

ReferenceName = {
 iodef-specIndex =&gt; integer,
 iodef-ID =&gt; IDtype
}

Assessment = {
 ? iodef-occurrence =&gt; "actual" / "potential",
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 ? iodef-IncidentCategory =&gt; [+ MLStringType],
 iodef-Impact =&gt; [+ {iodef-SystemImpact =&gt; SystemImpact} /
          {iodef-BusinessImpact =&gt; BusinessImpact /
          {iodef-TimeImpact =&gt; TimeImpact} /
          {iodef-MonetaryImpact =&gt; MonetaryImpact} /
          {iodef-IntendedImpact =&gt; BusinessImpact}],
 ? iodef-Counter =&gt; [+ Counter],
 ? iodef-MitigatingFactor =&gt; [+ MLStringType],
 ? iodef-Cause =&gt; [+ MLStringType],
 ? iodef-Confidence =&gt; Confidence,
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

SystemImpact = {
 ? iodef-severity =&gt; "low" / "medium" / "high",
 ? iodef-completion =&gt; "failed" / "succeeded",
 iodef-type =&gt; "takeover-account" / "takeover-service" /
"takeover-system" / "cps-manipulation" / "cps-damage" /
"availability-data" / "availability-account" /
"availability-service" / "availability-system" / "damaged-system" /
"damaged-data" / "breach-proprietary" / "breach-privacy" /
"breach-credential" / "breach-configuration" / "integrity-data" /
"integrity-configuration" / "integrity-hardware" /
"traffic-redirection" / "monitoring-traffic" / "monitoring-host" /
"policy" / "unknown" / "ext-value" .default "unknown",
 ? iodef-ext-type =&gt; text,
 ? iodef-Description =&gt; [+ MLStringType]
}

BusinessImpact = {
? iodef-severity =&gt; "none" / "low" / "medium" / "high" / "unknown" /
"ext-value" .default "unknown",
 ? iodef-ext-severity =&gt; text,
 iodef-type =&gt; "breach-proprietary" / "breach-privacy" /
"breach-credential" / "loss-of-integrity" / "loss-of-service" /
"theft-financial" / "theft-service" / "degraded-reputation" /
"asset-damage" / "asset-manipulation" / "legal" / "extortion" /
"unknown" / "ext-value" .default "unknown",
 ? iodef-ext-type =&gt; text,
 ? iodef-Description =&gt; [+ MLStringType]
}

TimeImpact = {
 iodef-value =&gt; PositiveFloatType,
 ? iodef-severity =&gt; "low" / "medium" / "high",
 iodef-metric =&gt; "labor" / "elapsed" / "downtime" / "ext-value",
 ? iodef-ext-metric =&gt; text,
 ? iodef-duration =&gt; duration .default "hour",
 ? iodef-ext-duration =&gt; text
}

MonetaryImpact = {
 iodef-value =&gt; PositiveFloatType,
 ? iodef-severity =&gt; "low" / "medium" / "high",
 ? iodef-currency =&gt; text
}

Confidence = {
 iodef-value =&gt; float32,
 iodef-rating =&gt; "low" / "medium" / "high" / "numeric" / "unknown" /
"ext-value",
 ? iodef-ext-rating =&gt; text
}

History = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 iodef-HistoryItem =&gt; [+ HistoryItem]
}

HistoryItem = {
 iodef-action =&gt; action .default "other",
 ? iodef-ext-action =&gt; text,
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 iodef-DateTime =&gt; DATETIME,
 ? iodef-IncidentID =&gt; IncidentID,
 ? iodef-Contact =&gt; Contact,
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-DefinedCOA =&gt; [+ text],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

EventData = {
 ? iodef-restriction =&gt; restriction .default "default",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-DetectTime =&gt; DATETIME,
 ? iodef-StartTime =&gt; DATETIME,
 ? iodef-EndTime =&gt; DATETIME,
 ? iodef-RecoveryTime =&gt; DATETIME,
 ? iodef-ReportTime =&gt; DATETIME,
 ? iodef-Contact =&gt; [+ Contact],
 ? iodef-Discovery =&gt; [+ Discovery],
 ? iodef-Assessment =&gt; Assessment,
 ? iodef-Method =&gt; [+ Method],
 ? iodef-System =&gt; [+ System],
 ? iodef-Expectation =&gt; [+ Expectation],
 ? iodef-RecordData =&gt; [+ RecordData],
 ? iodef-EventData =&gt; [+ EventData],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

Expectation = {
 ? iodef-action =&gt; action .default "other",
 ? iodef-ext-action =&gt; text,
 ? iodef-severity =&gt; "low" / "medium" / "high",
 ? iodef-restriction =&gt; restriction .default "default",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-DefinedCOA =&gt; [+ text],
 ? iodef-StartTime =&gt; DATETIME,
 ? iodef-EndTime =&gt; DATETIME,
 ? iodef-Contact =&gt; Contact
}

System = {
 ? iodef-category =&gt; "source" / "target" / "intermediate" /
"sensor" / "infrastructure" / "ext-value",
 ? iodef-ext-category =&gt; text,
 ? iodef-interface =&gt; text,
 ? iodef-spoofed =&gt; "unknown" / "yes" / "no" .default "unknown",
 ? iodef-virtual =&gt; "yes" / "no" / "unknown" .default "unknown",
 ? iodef-ownership =&gt; "organization" / "personal" / "partner" /
"customer" / "no-relationship" / "unknown" / "ext-value",
 ? iodef-ext-ownership =&gt; text,
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 iodef-Node =&gt; Node,
 ? iodef-NodeRole =&gt; [+ NodeRole],
 ? iodef-Service =&gt; [+ Service],
 ? iodef-OperatingSystem =&gt; [+ SoftwareType],
 ? iodef-Counter =&gt; [+ Counter],
 ? iodef-AssetID =&gt; [+ text],
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

Node = {
 (iodef-DomainData =&gt; [+ DomainData] //
                               iodef-Address =&gt; [+ Address]),
 ? iodef-PostalAddress =&gt; PostalAddress,
 ? iodef-Location =&gt; [+ MLStringType],
 ? iodef-Counter =&gt; [+ Counter]
}

Address = {
 iodef-value =&gt; text,
 iodef-category =&gt; "asn" / "atm" / "e-mail" / "ipv4-addr" /
"ipv4-net" / "ipv4-net-masked" / "ipv4-net-mask" / "ipv6-addr" /
"ipv6-net" / "ipv6-net-masked" / "mac" / "site-uri" /
"ext-value" .default "ipv6-addr",
 ? iodef-ext-category =&gt; text,
 ? iodef-vlan-name =&gt; text,
 ? iodef-vlan-num =&gt; integer,
 ? iodef-observable-id =&gt; IDtype
}

NodeRole = {
 iodef-category =&gt; "client" / "client-enterprise" /
"client-partner" / "client-remote" / "client-kiosk" /
"client-mobile" / "server-internal" / "server-public" /
"www" / "mail" / "webmail" / "messaging" / "streaming" /
"voice" / "file" / "ftp" / "p2p" / "name" / "directory" /
"credential" / "print" / "application" / "database" /
"backup" / "dhcp" / "assessment" / "source-control" /
"config-management" / "monitoring" / "infra" / "infra-firewall" /
"infra-router" / "infra-switch" / "camera" / "proxy" /
"remote-access" / "log" / "virtualization" / "pos" /  "scada" /
"scada-supervisory" / "sinkhole" / "honeypot" /
"anomyzation" / "c2-server" / "malware-distribution" /
"drop-server" / "hop-point" / "reflector" /
"phishing-site" / "spear-phishing-site" / "recruiting-site" /
"fraudulent-site" / "ext-value",
 ? iodef-ext-category =&gt; text,
 ? iodef-Description =&gt; [+ MLStringType]
}

Counter = {
 iodef-value =&gt; float32,
 iodef-type =&gt; "count" / "peak" / "average" / "ext-value",
 ? iodef-ext-type =&gt; text,
 iodef-unit =&gt; "byte" / "mbit" / "packet" / "flow" / "session" /
"alert" / "message" / "event" / "host" / "site" / "organization" /
"ext-value",
 ? iodef-ext-unit =&gt; text,
 ? iodef-meaning =&gt; text,
 ? iodef-duration =&gt; duration .default "hour",
 ? iodef-ext-duration =&gt; text
}

DomainData = {
 iodef-system-status =&gt; "spoofed" / "fraudulent" /
"innocent-hacked" / "innocent-hijacked" / "unknown" / "ext-value",
 ? iodef-ext-system-status =&gt; text,
 iodef-domain-status =&gt; "reservedDelegation" / "assignedAndActive" /
"assignedAndInactive" / "assignedAndOnHold" /
"revoked" / "transferPending" / "registryLock" /
"registrarLock" / "other" / "unknown" / "ext-value",
 ? iodef-ext-domain-status =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 iodef-Name =&gt; text,
 ? iodef-DateDomainWasChecked =&gt; DATETIME,
 ? iodef-RegistrationDate =&gt; DATETIME,
 ? iodef-ExpirationDate =&gt; DATETIME,
 ? iodef-RelatedDNS =&gt; [+ ExtensionType],
 ? iodef-NameServers =&gt; [+ NameServers],
 ? iodef-DomainContacts =&gt; DomainContacts
}

NameServers = {
 iodef-Server =&gt; text,
 iodef-Address =&gt; [+ Address]
}

DomainContacts = {
 (iodef-SameDomainContact =&gt; text // iodef-Contact =&gt; [+ Contact])
}

Service = {
 ? iodef-ip-protocol =&gt; integer,
 ? iodef-observable-id =&gt; IDtype,
 ? iodef-ServiceName =&gt; ServiceName,
 ? iodef-Port =&gt; integer,
 ? iodef-Portlist =&gt; PortlistType,
 ? iodef-ProtoCode =&gt; integer,
 ? iodef-ProtoType =&gt; integer,
 ? iodef-ProtoField =&gt; integer,
 ? iodef-ApplicationHeaderField =&gt; [+ ExtensionType],
 ? iodef-EmailData =&gt; EmailData,
 ? iodef-Application =&gt; SoftwareType
}

ServiceName = {
 ? iodef-IANAService =&gt; text,
 ? iodef-URL =&gt; [+ URLtype],
 ? iodef-Description =&gt; [+ MLStringType]
}

EmailData = {
 ? iodef-observable-id =&gt; IDtype,
 ? iodef-EmailTo =&gt; [+ text],
 ? iodef-EmailFrom =&gt; text,
 ? iodef-EmailSubject =&gt; text,
 ? iodef-EmailX-Mailer =&gt; text,
 ? iodef-EmailHeaderField =&gt; [+ ExtensionType],
 ? iodef-EmailHeaders =&gt; text,
 ? iodef-EmailBody =&gt; text,
 ? iodef-EmailMessage =&gt; text,
 ? iodef-HashData =&gt; [+ HashData],
 ? iodef-Signature =&gt; [+ BYTE]
}

RecordData = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 ? iodef-DateTime =&gt; DATETIME,
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-Application =&gt; SoftwareType,
 ? iodef-RecordPattern =&gt; [+ RecordPattern],
 ? iodef-RecordItem =&gt; [+ ExtensionType],
 ? iodef-URL =&gt; [+ URLtype],
 ? iodef-FileData =&gt; [+ FileData],
 ? iodef-WindowsRegistryKeysModified =&gt;
                                [+ WindowsRegistryKeysModified],
 ? iodef-CertificateData =&gt; [+ CertificateData],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

RecordPattern = {
 iodef-value =&gt; text,
 iodef-type =&gt; "regex" / "binary" / "xpath" /
"ext-value"  .default "regex",
 ? iodef-ext-type =&gt; text,
 ? iodef-offset =&gt; integer,
 ? iodef-offsetunit =&gt; "line" / "byte" /
"ext-value" .default "line",
 ? iodef-ext-offsetunit =&gt; text,
 ? iodef-instance =&gt; integer
}

WindowsRegistryKeysModified = {
 ? iodef-observable-id =&gt; IDtype,
 iodef-Key =&gt; [+ Key]
}

Key = {
 ? iodef-registryaction =&gt; "add-key" / "add-value" / "delete-key" /
"delete-value" / "modify-key" / "modify-value" /
"ext-value",
 ? iodef-ext-registryaction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 iodef-KeyName =&gt; text,
 ? iodef-KeyValue =&gt; text
}

CertificateData = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 iodef-Certificate =&gt; [+ Certificate]
}

Certificate = {
 ? iodef-observable-id =&gt; IDtype,
 iodef-X509Data =&gt; BYTE,
 ? iodef-Description =&gt; [+ MLStringType]
}

FileData = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? iodef-observable-id =&gt; IDtype,
 iodef-File =&gt; [+ File]
}

File = {
 ? iodef-observable-id =&gt; IDtype,
 ? iodef-FileName =&gt; text,
 ? iodef-FileSize =&gt; integer,
 ? iodef-FileType =&gt; text,
 ? iodef-URL =&gt; [+ URLtype],
 ? iodef-HashData =&gt; HashData,
 ? iodef-Signature =&gt; [+ BYTE],
 ? iodef-AssociatedSoftware =&gt; SoftwareType,
 ? iodef-FileProperties =&gt; [+ ExtensionType]
}

HashData = {
 iodef-scope =&gt; "file-contents" / "file-pe-section" /
"file-pe-iat" / "file-pe-resource" / "file-pdf-object" /
"email-hash" / "email-headers-hash" / "email-body-hash" /
"ext-value",
 ? iodef-HashTargetID =&gt; text,
 ? iodef-Hash =&gt; [+ Hash],
 ? iodef-FuzzyHash =&gt; [+ FuzzyHash]
}

Hash = {
 iodef-DigestMethod =&gt; BYTE,
 iodef-DigestValue =&gt; BYTE,
 ? iodef-CanonicalizationMethod =&gt; BYTE,
 ? iodef-Application =&gt; SoftwareType
}

FuzzyHash = {
 iodef-FuzzyHashValue =&gt; [+ ExtensionType],
 ? iodef-Application =&gt; SoftwareType,
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

Indicator = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 iodef-IndicatorID =&gt; IndicatorID,
 ? iodef-AlternativeIndicatorID =&gt; [+ AlternativeIndicatorID],
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-StartTime =&gt; DATETIME,
 ? iodef-EndTime =&gt; DATETIME,
 ? iodef-Confidence =&gt; Confidence,
 ? iodef-Contact =&gt; [+ Contact],
 (iodef-Observable =&gt; Observable // iodef-uid-ref =&gt; IDREFType //
  iodef-IndicatorExpression =&gt; IndicatorExpression //
  iodef-IndicatorReference =&gt; IndicatorReference),
 ? iodef-NodeRole =&gt; [+ NodeRole],
 ? iodef-AttackPhase =&gt; [+ AttackPhase],
 ? iodef-Reference =&gt; [+ Reference],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

IndicatorID = {
 iodef-id =&gt; IDtype,
 iodef-name =&gt; text,
 iodef-version =&gt; text
}

AlternativeIndicatorID = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 iodef-IndicatorID =&gt; [+ IndicatorID]
}

Observable = {
 ? iodef-restriction =&gt; restriction .default "private",
 ? iodef-ext-restriction =&gt; text,
 ? (iodef-System =&gt; System // iodef-Address =&gt; Address //
    iodef-DomainData =&gt; DomainData //
    iodef-EmailData =&gt; EmailData //
    iodef-Service =&gt; Service //
    iodef-WindowsRegistryKeysModified =&gt;
                                  WindowsRegistryKeysModified //
    iodef-FileData =&gt; FileData //iodef-CertificateData =&gt;
                                              CertificateData //
    iodef-RegistryHandle =&gt;RegistryHandle// iodef-RecordData =&gt;
                                                  RecordData //
    iodef-EventData =&gt; EventData // iodef-Incident =&gt; Incident //
    iodef-Expectation =&gt; Expectation // iodef-Reference =&gt;
                                                    Reference //
    iodef-Assessment =&gt; Assessment //
    iodef-DetectionPattern =&gt; DetectionPattern //
    iodef-HistoryItem =&gt; HistoryItem //
    iodef-BulkObservable =&gt; BulkObservable //
    iodef-AdditionalData =&gt; [+ ExtensionType])
}

BulkObservable = {
 ? iodef-type =&gt; "asn" / "atm" / "e-mail" / "ipv4-addr" /
"ipv4-net" / "ipv4-net-mask" / "ipv6-addr" / "ipv6-net" /
"ipv6-net-mask" / "mac" / "site-uri" / "domain-name" /
"domain-to-ipv4" / "domain-to-ipv6" /
"domain-to-ipv4-timestamp" / "domain-to-ipv6-timestamp" /
"ipv4-port" / "ipv6-port" / "windows-reg-key" / "file-hash" /
"email-x-mailer" / "email-subject" / "http-user-agent" /
"http-request-uri" / "mutex" / "file-path" / "user-name" /
"ext-value",
 ? iodef-ext-type =&gt; text,
 ? iodef-BulkObservableFormat =&gt; BulkObservableFormat,
 iodef-BulkObservableList =&gt; text,
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

BulkObservableFormat = {
 (iodef-Hash =&gt; Hash // iodef-AdditionalData =&gt; [+ ExtensionType])
}

IndicatorExpression = {
 ? iodef-operator =&gt; "not" / "and" / "or" / "xor" .default "and",
 ? iodef-ext-operator =&gt; text,
 ? iodef-IndicatorExpression =&gt; [+ IndicatorExpression],
 ? iodef-Observable =&gt; [+ Observable],
 ? iodef-uid-ref =&gt; [+ IDREFType],
 ? iodef-IndicatorReference =&gt; [+ IndicatorReference],
 ? iodef-Confidence =&gt; Confidence,
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}

IndicatorReference = {
 (iodef-uid-ref =&gt; IDREFType // iodef-euid-ref =&gt; text),
 ? iodef-version =&gt; text
}

AttackPhase = {
 ? iodef-AttackPhaseID =&gt; [+ text],
 ? iodef-URL =&gt; [+ URLtype],
 ? iodef-Description =&gt; [+ MLStringType],
 ? iodef-AdditionalData =&gt; [+ ExtensionType]
}
</sourcecode>
      </figure>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t pn="section-7-1">This document has no IANA actions.</t>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t pn="section-8-1">This document provides a mapping from XML IODEF defined in <xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970"/> to JSON, and <xref target="mapping" format="default" sectionFormat="of" derivedContent="Section 3.2"/> describes several issues that arise when converting XML IODEF and JSON IODEF.
Though it does not provide any further security considerations other than the one described in <xref target="RFC7970" format="default" sectionFormat="of" derivedContent="RFC7970"/>, implementers of this document should be aware of those issues to avoid any unintended outcome.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.handrews-json-schema-validation" to="JSON-SCHEMA"/>
    <references pn="section-9">
      <name slugifiedName="name-references">References</name>
      <references pn="section-9.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986" quoteTitle="true" derivedAnchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author initials="T." surname="Berners-Lee" fullname="T. Berners-Lee">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Fielding" fullname="R. Fielding">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Masinter" fullname="L. Masinter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2005" month="January"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC4648" target="https://www.rfc-editor.org/info/rfc4648" quoteTitle="true" derivedAnchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author initials="S." surname="Josefsson" fullname="S. Josefsson">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="October"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC7049" target="https://www.rfc-editor.org/info/rfc7049" quoteTitle="true" derivedAnchor="RFC7049">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="October"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.  These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7049"/>
          <seriesInfo name="DOI" value="10.17487/RFC7049"/>
        </reference>
        <reference anchor="RFC7203" target="https://www.rfc-editor.org/info/rfc7203" quoteTitle="true" derivedAnchor="RFC7203">
          <front>
            <title>An Incident Object Description Exchange Format (IODEF) Extension for Structured Cybersecurity Information</title>
            <author initials="T." surname="Takahashi" fullname="T. Takahashi">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Landfield" fullname="K. Landfield">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Kadobayashi" fullname="Y. Kadobayashi">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="April"/>
            <abstract>
              <t>This document extends the Incident Object Description Exchange Format (IODEF) defined in RFC 5070 to exchange enriched cybersecurity information among security experts at organizations and facilitate their operations.  It provides a well-defined pattern to consistently embed structured information, such as identifier- and XML-based information.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7203"/>
          <seriesInfo name="DOI" value="10.17487/RFC7203"/>
        </reference>
        <reference anchor="RFC7970" target="https://www.rfc-editor.org/info/rfc7970" quoteTitle="true" derivedAnchor="RFC7970">
          <front>
            <title>The Incident Object Description Exchange Format Version 2</title>
            <author initials="R." surname="Danyliw" fullname="R. Danyliw">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="November"/>
            <abstract>
              <t>The Incident Object Description Exchange Format (IODEF) defines a data representation for security incident reports and indicators commonly exchanged by operational security teams for mitigation and watch and warning.  This document describes an updated information model for the IODEF and provides an associated data model specified with the XML schema.  This new information and data model obsoletes RFCs 5070 and 6685.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7970"/>
          <seriesInfo name="DOI" value="10.17487/RFC7970"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259" quoteTitle="true" derivedAnchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author initials="T." surname="Bray" fullname="T. Bray" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="December"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format.  It was derived from the ECMAScript Programming Language Standard.  JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC8610" target="https://www.rfc-editor.org/info/rfc8610" quoteTitle="true" derivedAnchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author initials="H." surname="Birkholz" fullname="H. Birkholz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Vigano" fullname="C. Vigano">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2019" month="June"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
      </references>
      <references pn="section-9.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.handrews-json-schema-validation" quoteTitle="true" target="https://tools.ietf.org/html/draft-handrews-json-schema-validation-02" derivedAnchor="JSON-SCHEMA">
          <front>
            <title>JSON Schema Validation: A Vocabulary for Structural Validation of JSON</title>
            <author initials="A" surname="Wright" fullname="Austin Wright">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H" surname="Andrews" fullname="Henry Andrews">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B" surname="Hutton" fullname="Ben Hutton">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="September" day="17" year="2019"/>
            <abstract>
              <t>JSON Schema (application/schema+json) has several purposes, one of which is JSON instance validation.  This document specifies a vocabulary for JSON Schema to describe the meaning of JSON documents, provide hints for user interfaces working with JSON data, and to make assertions about what a valid document must look like.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-handrews-json-schema-validation-02"/>
          <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-handrews-json-schema-validation-02.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="supportedCborDataType" numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-data-types-used-in-this-doc">Data Types Used in This Document</name>
      <t pn="section-appendix.a-1">The CDDL prelude used in this document is mapped to JSON as shown in the table below.</t>
      <table anchor="cborDataType" align="left" pn="table-5">
        <name slugifiedName="name-cddl-prelude-mapping-in-jso">CDDL Prelude Mapping in JSON</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">CDDL Prelude</th>
            <th align="left" colspan="1" rowspan="1">Use of JSON</th>
            <th align="left" colspan="1" rowspan="1">Instance</th>
            <th align="left" colspan="1" rowspan="1">Validation</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">bytes</td>
            <td align="left" colspan="1" rowspan="1">n/a</td>
            <td align="left" colspan="1" rowspan="1">string</td>
            <td align="left" colspan="1" rowspan="1">tool available</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">text</td>
            <td align="left" colspan="1" rowspan="1">string</td>
            <td align="left" colspan="1" rowspan="1">string</td>
            <td align="left" colspan="1" rowspan="1">unnecessary</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">tdate</td>
            <td align="left" colspan="1" rowspan="1">n/a</td>
            <td align="left" colspan="1" rowspan="1">string</td>
            <td align="left" colspan="1" rowspan="1">date-time per <xref target="I-D.handrews-json-schema-validation" sectionFormat="of" section="7.3.1" format="default" derivedLink="https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-7.3.1" derivedContent="JSON-SCHEMA"/></td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">integer</td>
            <td align="left" colspan="1" rowspan="1">n/a</td>
            <td align="left" colspan="1" rowspan="1">number</td>
            <td align="left" colspan="1" rowspan="1">integer</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">eb64legacy</td>
            <td align="left" colspan="1" rowspan="1">n/a</td>
            <td align="left" colspan="1" rowspan="1">string</td>
            <td align="left" colspan="1" rowspan="1">tool available</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">uri</td>
            <td align="left" colspan="1" rowspan="1">n/a</td>
            <td align="left" colspan="1" rowspan="1">string</td>
            <td align="left" colspan="1" rowspan="1">uri per <xref target="I-D.handrews-json-schema-validation" sectionFormat="of" section="7.3.6" format="default" derivedLink="https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-7.3.6" derivedContent="JSON-SCHEMA"/></td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">float32</td>
            <td align="left" colspan="1" rowspan="1">float32</td>
            <td align="left" colspan="1" rowspan="1">number</td>
            <td align="left" colspan="1" rowspan="1">unnecessary</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="jsonSchemaSection" numbered="true" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-the-iodef-data-model-json-s">The IODEF Data Model (JSON Schema)</name>
      <t keepWithNext="true" pn="section-appendix.b-1">This section provides a <xref target="I-D.handrews-json-schema-validation" format="default" sectionFormat="of" derivedContent="JSON-SCHEMA">JSON schema</xref> that defines the IODEF data model defined in this document. Note that this section is informative.</t>
      <figure anchor="jsonSchema" align="left" suppress-title="false" pn="figure-6">
        <name slugifiedName="name-json-schema">JSON Schema</name>
        <sourcecode type="json" markers="false" pn="section-appendix.b-2.1">
{ "$schema": "https://json-schema.org/draft-04/schema#",
  "definitions": {
    "action": {"enum": ["nothing", "contact-source-site",
       "contact-target-site", "contact-sender", "investigate",
       "block-host", "block-network", "block-port",
       "rate-limit-host", "rate-limit-network",
       "rate-limit-port", "redirect-traffic", "honeypot",
       "upgrade-software", "rebuild-asset", "harden-asset",
       "remediate-other", "status-triage", "status-new-info",
       "watch-and-report", "training", "defined-coa", "other",
       "ext-value"]},
    "duration":{"enum":["second", "minute", "hour", "day",
      "month", "quarter", "year", "ext-value"]},
    "SpecID":{
      "enum":["urn:ietf:params:xml:ns:mile:mmdef:1.2",
       "private"]},
    "lang": {
      "type":"string", "pattern":
        "^$|[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"},
    "purpose": {"enum": ["traceback", "mitigation",
      "reporting", "watch", "other", "ext-value"]},
    "restriction":{"enum": ["public", "partner",
      "need-to-know", "private", "default", "white", "green",
      "amber", "red", "ext-value"]},
    "status": {"enum": ["new", "in-progress", "forwarded",
      "resolved", "future", "ext-value"]},
    "DATETIME": {"type": "string", "format": "date-time"},
    "BYTE": {"type": "string"},
    "PortlistType": {
      "type": "string", "pattern":
        "[0-9]+(\\-[0-9]+)?(,[0-9]+(\\-[0-9]+)?)*"},
    "TimeZonetype": {
      "type":"string", "pattern":
        "Z|[\\+\\-](0[0-9]|1[0-4]):[0-5][0-9]"},
    "URLtype": {
      "type": "string",
      "pattern":
        "^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))
          ?(#(.*))?"},
    "IDtype": {"type": "string", "pattern":
      "[a-zA-Z_][a-zA-Z0-9_.-]*"},
    "IDREFType": {"$ref": "#/definitions/IDtype"},
    "MLStringType": {
      "oneOf": [{"type": "string"},
                {"type": "object",
                  "properties": {
                    "value": {"type": "string"},
                    "lang": {"$ref": "#/definitions/lang"},
                    "translation-id": {"type": "string"}},
                   "required": ["value"],
                   "additionalProperties":false}]},
    "PositiveFloatType": {"type": "number", "minimum": 0},
    "PAddressType": {"$ref": "#/definitions/MLStringType"},
    "ExtensionType": {
      "type": "object",
      "properties": {
        "value": {"type": "string"},
        "name": {"type": "string"},
        "dtype":{"enum":["boolean", "byte", "bytes",
          "character", "json", "date-time", "ntpstamp",
          "integer", "portlist", "real", "string", "file",
          "path", "frame", "packet", "ipv4-packet",
          "ipv6-packet", "url", "csv", "winreg",
          "xml", "ext-value"], "default": "string"},
        "ext-dtype": {"type": "string"},
        "meaning": {"type": "string"},
        "formatid": {"type": "string"},
        "restriction": {
          "$ref": "#/definitions/restriction", "default":
            "private"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"}},
      "required": ["value", "dtype"],
      "additionalProperties":false},
    "ExtensionTypeList": {
      "type": "array",
      "items": {"$ref": "#/definitions/ExtensionType"},
      "minItems": 1},
    "SoftwareType": {
      "type": "object",
      "properties": {
        "SoftwareReference":{
          "$ref":"#/definitions/SoftwareReference"},
        "URL": {
          "type": "array",
          "items": {"$ref": "#/definitions/URLtype",
          "minItems": 1}},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1 }},
      "required": [],
      "additionalProperties": false},
    "SoftwareReference": {
      "type": "object",
      "properties": {
        "value": {"type": "string"},
        "spec-name": {"enum": ["custom", "cpe", "swid",
          "ext-value"]},
        "ext-spec-name": {"type": "string"},
        "dtype": {"enum": ["bytes", "integer", "real", "string",
          "xml", "ext-value"], "default": "string"},
        "ext-dtype": {"type": "string"}},
      "required": ["spec-name"],
      "additionalProperties": false},
    "STRUCTUREDINFO": {
      "type": "object",
      "properties": {
        "SpecID": {"$ref":"#/definitions/SpecID"},
        "ext-SpecID": {"type": "string"},
        "ContentID": {"type": "string"},
        "RawData": {
           "type": "array",
           "items": {"$ref":"#/definitions/BYTE"},
           "minItems": 1
        },
        "Reference": {
          "type": "array",
          "items": {"$ref": "#/definitions/Reference"},
          "minItems": 1
        },
        "Platform": {
          "type": "array",
          "items": {"$ref": "#/definitions/Platform"},
          "minItems": 1
        },
        "Scoring": {
          "type": "array",
          "items": {"$ref": "#/definitions/Scoring"},
          "minItems": 1}},
      "allOf": [
         {"required": ["SpecID"]},
         {"anyOf": [
           {"oneOf": [
             {"required":["Reference"]},
             {"required":["RawData"]}]},
           { "not" : {"required":["Reference", "RawData"]}}]}],
      "additionalProperties": false},
    "Platform": {
      "type": "object",
      "properties": {
        "SpecID": {"$ref":"#/definitions/SpecID"},
        "ext-SpecID": {"type": "string"},
        "ContentID": {"type": "string"},
        "RawData": {
           "type": "array",
           "items": {"$ref":"#/definitions/BYTE"},
           "minItems": 1
        },
        "Reference": {
          "type": "array",
          "items": {"$ref": "#/definitions/Reference"},
          "minItems": 1}},
      "required": ["SpecID"],
      "additionalProperties": false},
    "Scoring": {
      "type": "object",
      "properties": {
        "SpecID": {"$ref":"#/definitions/SpecID"},
        "ext-SpecID": {"type": "string"},
        "ContentID": {"type": "string"},
        "RawData": {
           "type": "array",
           "items": {"$ref":"#/definitions/BYTE"},
           "minItems": 1
        },
        "Reference": {
          "type": "array",
          "items": {"$ref": "#/definitions/Reference"},
          "minItems": 1}},
      "required": ["SpecID"],
      "additionalProperties": false},
    "Incident": {
      "title": "Incident",
      "description": "JSON schema for Incident class",
      "type": "object",
      "properties": {
        "purpose": {"$ref": "#/definitions/purpose"},
        "ext-purpose": {"type": "string"},
        "status": {"$ref": "#/definitions/status"},
        "ext-status": {"type": "string"},
        "lang": {"$ref": "#/definitions/lang"},
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "IncidentID": {"$ref": "#/definitions/IncidentID"},
        "AlternativeID": {
          "$ref":"#/definitions/AlternativeID"},
        "RelatedActivity": {
          "type": "array",
          "items": {"$ref": "#/definitions/RelatedActivity"},
          "minItems": 1},
        "DetectTime": {"$ref": "#/definitions/DATETIME"},
        "StartTime": {"$ref": "#/definitions/DATETIME"},
        "EndTime": {"$ref": "#/definitions/DATETIME"},
        "RecoveryTime": {"$ref": "#/definitions/DATETIME"},
        "ReportTime": {"$ref": "#/definitions/DATETIME"},
        "GenerationTime": {"$ref": "#/definitions/DATETIME"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "Discovery": {
          "type": "array",
          "items": {"$ref": "#/definitions/Discovery"},
          "minItems": 1},
        "Assessment": {
          "type": "array",
          "items": {"$ref": "#/definitions/Assessment"},
          "minItems": 1},
        "Method": {
          "type": "array",
          "items": {"$ref": "#/definitions/Method"},
          "minItems": 1},
        "Contact": {
          "type": "array",
          "items": {"$ref": "#/definitions/Contact"},
          "minItems": 1},
        "EventData": {
          "type": "array",
          "items": {"$ref": "#/definitions/EventData"},
          "minItems": 1},
        "Indicator": {
          "type": "array",
          "items": {"$ref": "#/definitions/Indicator"},
          "minItems": 1},
        "History": {"$ref": "#/definitions/History"},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": ["IncidentID", "GenerationTime", "Contact",
        "purpose"],
      "additionalProperties": false},
    "IncidentID": {
      "title": "IncidentID",
      "description": "JSON schema for IncidentID class",
      "type": "object",
      "properties": {
        "id": {"type": "string"},
        "name": {"type": "string"},
        "instance": {"type": "string"},
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"}},
      "required": ["id", "name"],
      "additionalProperties": false},
    "AlternativeID": {
      "title": "AlternativeID",
      "description": "JSON schema for AlternativeID class",
      "type": "object",
      "properties": {
        "IncidentID": {
          "type": "array",
          "items":{"$ref": "#/definitions/IncidentID"},
          "minItems": 1},
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"}},
      "required": ["IncidentID"],
      "additionalProperties": false},
    "RelatedActivity": {
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "IncidentID": {
          "type": "array",
          "items": {"$ref": "#/definitions/IncidentID"},
          "minItems": 1},
        "URL": {
          "type": "array",
          "items": {"$ref": "#/definitions/URLtype"},
          "minItems": 1},
        "ThreatActor": {
          "type": "array",
          "items": {"$ref": "#/definitions/ThreatActor"},
          "minItems": 1},
        "Campaign": {
          "type": "array",
          "items": {"$ref": "#/definitions/Campaign"},
          "minItems": 1},
        "IndicatorID": {
          "type": "array",
          "items": {"$ref": "#/definitions/IndicatorID"},
          "minItems": 1},
        "Confidence": {"$ref": "#/definitions/Confidence"},
        "Description": {
          "type": "array",
          "items": {"type": "string"},
          "minItems": 1},
        "AdditionalData": {
          "$ref": "#/definitions/ExtensionTypeList"}},
      "additionalProperties": false},
    "ThreatActor": {
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "ThreatActorID": {
          "type": "array",
          "items": {"type": "string"},
          "minItems": 1},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "URL": {
          "type":"array",
          "items":{"$ref":"#/definitions/URLtype"},
          "minItems": 1},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "additionalProperties": false},
    "Campaign": {
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "CampaignID": {
          "type": "array",
          "items": {"type": "string"},
          "minItems": 1},
        "URL": {
          "type":"array",
          "items":{"$ref":"#/definitions/URLtype"},
          "minItems": 1},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}}},
    "Contact": {
      "type": "object",
      "properties": {
        "role": {
          "enum":["creator", "reporter", "admin", "tech",
                  "provider", "user", "billing", "legal",
                  "irt", "abuse", "cc", "cc-irt", "leo",
                  "vendor", "vendor-support", "victim",
                  "victim-notified", "ext-value"]},
        "ext-role": {"type": "string"},
        "type": {
          "enum": ["person", "organization", "ext-value"]},
        "ext-type": {"type": "string"},
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "ContactName": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "ContactTitle": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "RegistryHandle": {
          "type":"array",
          "items":{"$ref":"#/definitions/RegistryHandle"},
          "minItems": 1},
        "PostalAddress": {
          "type":"array",
          "items":{"$ref":"#/definitions/PostalAddress"},
          "minItems": 1},
        "Email": {
          "type": "array",
          "items": {"$ref": "#/definitions/Email"},
          "minItems": 1},
        "Telephone": {
          "type": "array",
          "items": {"$ref": "#/definitions/Telephone"},
          "minItems": 1},
        "Timezone": {"$ref": "#/definitions/TimeZonetype"},
        "Contact": {
          "type": "array",
          "items": {"$ref": "#/definitions/Contact"},
          "minItems": 1},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": ["role", "type"],
      "additionalProperties": false},
    "RegistryHandle": {
      "type": "object",
      "properties": {
        "handle": {"type": "string"},
        "registry": {
          "enum": ["internic", "apnic", "arin", "lacnic",
            "ripe", "afrinic", "local", "ext-value"]},
        "ext-registry": {"type": "string"}},
      "required": ["handle", "registry"],
      "additionalProperties": false},
    "PostalAddress": {
      "type": "object",
      "properties": {
        "type": {
          "enum": ["street", "mailing", "ext-value"]},
        "ext-type": {"type": "string"},
        "PAddress": {"$ref": "#/definitions/PAddressType"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1}},
      "required": ["PAddress"],
      "additionalProperties": false},
    "Email": {
      "type": "object",
      "properties": {
        "type": {
          "enum":["direct", "hotline", "ext-value"]},
        "ext-type": {"type": "string"},
        "EmailTo": {"type": "string"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1}},
      "required": ["EmailTo"],
      "additionalProperties": false},
    "Telephone": {
      "type": "object",
      "properties": {
        "type": {
          "enum":["wired", "mobile", "fax", "hotline",
            "ext-value"]},
        "ext-type": {"type": "string"},
        "TelephoneNumber": {"type": "string"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1}},
      "required": ["TelephoneNumber"],
      "additionalProperties": false},
    "Discovery": {
      "type": "object",
      "properties": {
        "source": {
          "enum":["nidps", "hips", "siem", "av",
            "third-party-monitoring", "incident", "os-log",
            "application-log", "device-log", "network-flow",
            "passive-dns", "investigation", "audit",
            "internal-notification", "external-notification",
            "leo", "partner", "actor", "unknown", "ext-value"]},
        "ext-source": {"type": "string"},
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "Contact": {
          "type": "array",
          "items": {"$ref": "#/definitions/Contact"},
          "minItems": 1},
        "DetectionPattern": {
          "type":"array",
          "items":{"$ref":"#/definitions/DetectionPattern"},
          "minItems": 1}},
      "required": [],
      "additionalProperties": false},
    "DetectionPattern": {
      "type": "object",
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "Application": {"$ref": "#/definitions/SoftwareType"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "DetectionConfiguration": {
          "type": "array",
          "items": {"type": "string"},
          "minItems": 1}},
      "allOf": [
        {"required": ["Application"]},
        {"oneOf": [
          {"required":["Description"]},
          {"required":["DetectionConfiguration"]}]}],
      "additionalProperties": false},
    "Method": {
      "type": "object",
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "Reference": {
          "type": "array",
          "items": {"$ref": "#/definitions/Reference"},
          "minItems": 1},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "AttackPattern": {
          "type":"array",
          "items":{"$ref":"#/definitions/STRUCTUREDINFO"},
          "minItems": 1},
        "Vulnerability": {
          "type":"array",
          "items":{"$ref":"#/definitions/STRUCTUREDINFO"},
          "minItems": 1},
        "Weakness": {
          "type":"array",
          "items":{"$ref":"#/definitions/STRUCTUREDINFO"},
          "minItems": 1},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": [],
      "additionalProperties": false},
    "Reference": {
      "type": "object",
      "properties": {
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "ReferenceName": {
          "$ref":"#/definitions/ReferenceName"},
        "URL":{
          "type":"array",
          "items":{"$ref":"#/definitions/URLtype"},
          "minItems": 1},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1}},
      "required": [],
      "additionalProperties": false},
    "ReferenceName" : {
      "type": "object",
      "properties": {
        "specIndex": {"type": "number"},
        "ID": {"$ref":"#/definitions/IDtype"}},
      "required": ["specIndex", "ID"],
      "additionalProperties": false},
    "Assessment": {
      "type": "object",
      "properties": {
        "occurrence": {"enum":["actual", "potential"]},
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "IncidentCategory": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "Impact": {
         "type": "array",
         "items": {
           "properties": {
             "SystemImpact":{
               "$ref":"#/definitions/SystemImpact"},
             "BusinessImpact":{
               "$ref":"#/definitions/BusinessImpact"},
             "TimeImpact":{"$ref":"#/definitions/TimeImpact"},
             "MonetaryImpact":{
               "$ref":"#/definitions/MonetaryImpact"},
             "IntendedImpact":{
               "$ref":"#/definitions/BusinessImpact"}},
           "additionalProperties":false},
         "minItems" : 1
        },
        "Counter": {
          "type": "array",
          "items": {"$ref": "#/definitions/Counter"},
          "minItems": 1},
        "MitigatingFactor": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "Cause": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "Confidence": {"$ref": "#/definitions/Confidence"},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": ["Impact"],
      "additionalProperties": false},
    "SystemImpact": {
      "type": "object",
      "properties": {
        "severity": {"enum":["low", "medium", "high"]},
        "completion": {"enum":["failed", "succeeded"]},
        "type": {
          "enum":["takeover-account", "takeover-service",
            "takeover-system", "cps-manipulation", "cps-damage",
            "availability-data", "availability-account",
            "availability-service", "availability-system",
            "damaged-system", "damaged-data",
            "breach-proprietary", "breach-privacy",
            "breach-credential", "breach-configuration",
            "integrity-data", "integrity-configuration",
            "integrity-hardware", "traffic-redirection",
            "monitoring-traffic", "monitoring-host",
            "policy", "unknown", "ext-value"]},
        "ext-type": {"type": "string"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1}},
      "required": ["type"],
      "additionalProperties": false},
    "BusinessImpact": {
      "type": "object",
      "properties": {
        "severity": {"enum":["none", "low", "medium", "high",
          "unknown", "ext-value"], "default": "unknown"},
        "ext-severity": {"type":"string"},
        "type": {"enum":["breach-proprietary",
          "breach-privacy", "breach-credential",
          "loss-of-integrity", "loss-of-service",
          "theft-financial", "theft-service",
          "degraded-reputation", "asset-damage",
          "asset-manipulation", "legal", "extortion",
          "unknown", "ext-value"]},
        "ext-type": {"type": "string"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1}},
      "required": ["type"],
      "additionalProperties": false},
    "TimeImpact": {
      "type": "object",
      "properties": {
        "value": {"$ref": "#/definitions/PositiveFloatType"},
        "severity": {"enum": ["low", "medium", "high"]},
        "metric": {"enum": ["labor", "elapsed", "downtime",
          "ext-value"]},
        "ext-metric": {"type": "string"},
        "duration": {
          "$ref":"#/definitions/duration", "default": "hour"},
        "ext-duration": {"type": "string"}},
      "required": ["value", "metric"],
      "additionalProperties": false},
    "MonetaryImpact": {
      "type": "object",
      "properties": {
        "value": {"$ref": "#/definitions/PositiveFloatType"},
        "severity": {"enum":["low", "medium", "high"]},
        "currency": {"type": "string"}},
      "required": ["value"],
      "additionalProperties": false},
    "Confidence": {
      "type": "object",
      "properties": {
        "value": {"type": "number"},
        "rating": {"enum": ["low", "medium", "high", "numeric",
                   "unknown", "ext-value"]},
        "ext-rating": {"type":"string"}},
      "required": ["value", "rating"],
      "additionalProperties": false},
    "History": {
      "type": "object",
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "HistoryItem": {
          "type": "array",
          "items": {"$ref": "#/definitions/HistoryItem"},
          "minItems": 1}},
      "required": ["HistoryItem"],
      "additionalProperties": false},
    "HistoryItem": {
      "type": "object",
      "properties": {
        "action": {
          "$ref": "#/definitions/action", "default": "other"},
        "ext-action": {"type": "string"},
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "DateTime": {"$ref": "#/definitions/DATETIME"},
        "IncidentID": {"$ref": "#/definitions/IncidentID"},
        "Contact": {"$ref": "#/definitions/Contact"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "DefinedCOA": {
          "type": "array",
          "items": {"type": "string"},
          "minItems": 1},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": ["DateTime", "action"],
      "additionalProperties": false},
    "EventData": {
      "type": "object",
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "Description": {"type": "array",
          "items": { "$ref":"#/definitions/MLStringType"}},
        "DetectTime": {"$ref": "#/definitions/DATETIME"},
        "StartTime": {"$ref": "#/definitions/DATETIME"},
        "EndTime": {"$ref": "#/definitions/DATETIME"},
        "RecoveryTime": {"$ref": "#/definitions/DATETIME"},
        "ReportTime": {"$ref": "#/definitions/DATETIME"},
        "Contact": {
          "type": "array",
          "items": {"$ref": "#/definitions/Contact"},
          "minItems": 1},
        "Discovery": {
          "type": "array",
          "items": {"$ref": "#/definitions/Discovery"},
          "minItems": 1},
        "Assessment": {"$ref": "#/definitions/Assessment"},
        "Method": {
          "type": "array",
          "items": {"$ref": "#/definitions/Method"},
          "minItems": 1},
        "System": {
          "type": "array",
          "items": {"$ref": "#/definitions/System"},
          "minItems": 1},
        "Expectation": {
          "type": "array",
          "items": {"$ref": "#/definitions/Expectation"},
          "minItems": 1},
        "RecordData": {
          "type": "array",
          "items": {"$ref": "#/definitions/RecordData"},
          "minItems": 1},
        "EventData": {
          "type": "array",
          "items": {"$ref": "#/definitions/EventData"},
          "minItems": 1},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": [],
      "additionalProperties": false},
    "Expectation": {
      "type": "object",
      "properties": {
        "action": {
          "$ref":"#/definitions/action", "default": "other"},
        "ext-action": {"type": "string"},
        "severity": {"enum": ["low", "medium", "high"]},
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "default"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "DefinedCOA": {
          "type": "array",
          "items": {"type": "string"},
          "minItems": 1},
        "StartTime": {"$ref": "#/definitions/DATETIME"},
        "EndTime": {"$ref": "#/definitions/DATETIME"},
        "Contact": {"$ref": "#/definitions/Contact"}},
      "required": [],
      "additionalProperties": false},
    "System": {
      "type": "object",
      "properties": {
        "category": {
          "enum": ["source", "target", "intermediate", "sensor",
                   "infrastructure", "ext-value"]},
        "ext-category": {"type": "string"},
        "interface": {"type": "string"},
        "spoofed": {
          "enum": ["unknown", "yes", "no"], "default":"unknown"},
        "virtual": {
          "enum": ["yes", "no", "unknown"], "default":"unknown"},
        "ownership": {
          "enum":["organization", "personal", "partner",
                  "customer", "no-relationship", "unknown",
                  "ext-value"]},
        "ext-ownership": {"type": "string"},
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "Node": {"$ref": "#/definitions/Node"},
        "NodeRole": {
          "type": "array",
          "items": {"$ref": "#/definitions/NodeRole"},
          "minItems": 1},
        "Service": {
          "type": "array",
          "items": {"$ref": "#/definitions/Service"},
          "minItems": 1},
        "OperatingSystem": {
          "type": "array",
          "items": {"$ref": "#/definitions/SoftwareType"},
          "minItems": 1},
        "Counter": {
          "type": "array",
          "items": {"$ref": "#/definitions/Counter"},
          "minItems": 1},
        "AssetID": {
          "type": "array",
          "items": {"type": "string"},
          "minItems": 1},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": ["Node"],
      "additionalProperties": false},
    "Node": {
      "type": "object",
      "properties": {
        "DomainData": {
          "type": "array",
          "items": {"$ref": "#/definitions/DomainData"},
          "minItems": 1},
        "Address": {
          "type": "array",
          "items": {"$ref": "#/definitions/Address"},
          "minItems": 1},
        "PostalAddress": {
          "$ref": "#/definitions/PostalAddress"},
        "Location": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "Counter": {
          "type":"array",
          "items":{"$ref":"#/definitions/Counter"},
          "minItems": 1}},
      "anyOf": [
         {"required": ["DomainData"]},
         {"required": ["Address"]}
      ],
      "additionalProperties": false},
    "Address": {
      "type": "object",
      "properties": {
        "value": {"type": "string"},
        "category": {
          "enum":["asn", "atm", "e-mail", "ipv4-addr", "ipv4-net",
            "ipv4-net-masked", "ipv4-net-mask", "ipv6-addr",
            "ipv6-net", "ipv6-net-masked", "mac", "site-uri",
            "ext-value"], "default": "ipv6-addr"},
        "ext-category": {"type": "string"},
        "vlan-name": {"type": "string"},
        "vlan-num": {"type": "number"},
        "observable-id": {"$ref": "#/definitions/IDtype"}},
      "required": ["value", "category"],
      "additionalProperties": false},
    "NodeRole": {
      "type": "object",
      "properties": {
        "category": {
          "enum":["client", "client-enterprise",
            "client-partner", "client-remote", "client-kiosk",
            "client-mobile", "server-internal", "server-public",
            "www", "mail", "webmail", "messaging", "streaming",
            "voice", "file", "ftp", "p2p", "name", "directory",
            "credential", "print", "application", "database",
            "backup", "dhcp", "assessment", "source-control",
            "config-management", "monitoring", "infra",
            "infra-firewall", "infra-router", "infra-switch",
            "camera", "proxy", "remote-access", "log",
            "virtualization", "pos", "scada",
            "scada-supervisory", "sinkhole", "honeypot",
            "anomyzation", "c2-server", "malware-distribution",
            "drop-server", "hop-point", "reflector",
            "phishing-site", "spear-phishing-site",
            "recruiting-site", "fraudulent-site",
            "ext-value"]},
        "ext-category": {"type": "string"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1}},
      "required": ["category"],
      "additionalProperties": false},
    "Counter": {
      "type": "object",
      "properties": {
        "value": {"type": "number"},
        "type": {
          "enum": ["count", "peak", "average", "ext-value"]},
        "ext-type": {"type": "string"},
        "unit":{"enum":["byte", "mbit", "packet", "flow",
          "session", "alert", "message", "event", "host",
          "site", "organization", "ext-value"]},
        "ext-unit": {"type": "string"},
        "meaning": {"type": "string"},
        "duration": {
          "$ref":"#/definitions/duration", "default": "hour"},
        "ext-duration": {"type": "string"}},
      "required": ["value", "type", "unit"],
      "additionalProperties": false},
    "DomainData": {
      "type": "object",
      "properties": {
        "system-status": {
          "enum": ["spoofed", "fraudulent", "innocent-hacked",
            "innocent-hijacked", "unknown", "ext-value"]},
        "ext-system-status": {"type": "string"},
        "domain-status": {
          "enum": [ "reservedDelegation", "assignedAndActive",
                    "assignedAndInactive", "assignedAndOnHold",
                    "revoked", "transferPending",
                    "registryLock", "registrarLock",
                    "other", "unknown", "ext-value"]},
        "ext-domain-status": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "Name": {"type": "string"},
        "DateDomainWasChecked": {
          "$ref": "#/definitions/DATETIME"},
        "RegistrationDate": {
          "$ref": "#/definitions/DATETIME"},
        "ExpirationDate": {"$ref": "#/definitions/DATETIME"},
        "RelatedDNS": {
          "type": "array",
          "items": {"$ref": "#/definitions/ExtensionType"},
          "minItems": 1},
        "NameServers": {
          "type": "array",
          "items": {"$ref": "#/definitions/NameServers"},
          "minItems": 1},
        "DomainContacts": {
          "$ref": "#/definitions/DomainContacts"}},
      "required": ["Name", "system-status", "domain-status"],
      "additionalProperties": false},
    "NameServers": {
      "type": "object",
      "properties": {
        "Server": {"type": "string"},
        "Address": {
          "type":"array",
          "items":{"$ref":"#/definitions/Address"},
          "minItems": 1}},
      "required": ["Server", "Address"],
      "additionalProperties": false},
    "DomainContacts": {
      "type": "object",
      "properties": {
        "SameDomainContact": {"type": "string"},
        "Contact": {
          "type":"array",
          "items":{"$ref":"#/definitions/Contact"},
          "minItems": 1}},
      "oneOf": [
         {"required": ["SameDomainContact"]},
         {"required": ["Contact"]}],
      "additionalProperties": false},
    "Service": {
      "type": "object",
      "properties": {
        "ip-protocol": {"type": "number"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "ServiceName": {"$ref": "#/definitions/ServiceName"},
        "Port": {"type": "number"},
        "Portlist": {"$ref": "#/definitions/PortlistType"},
        "ProtoCode": {"type": "number"},
        "ProtoType": {"type": "number"},
        "ProtoField": {"type": "number"},
        "ApplicationHeaderField":{
          "$ref":"#/definitions/ExtensionTypeList"},
        "EmailData": {"$ref": "#/definitions/EmailData"},
        "Application": {
          "$ref": "#/definitions/SoftwareType"}},
      "required": [],
      "additionalProperties": false},
    "ServiceName": {
      "type": "object",
      "properties": {
        "IANAService": {"type": "string"},
        "URL": {
          "type": "array", "items": {
            "$ref": "#/definitions/URLtype"}},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1}},
      "required": [],
      "additionalProperties": false},
    "EmailData": {
      "type": "object",
      "properties": {
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "EmailTo": {
          "type": "array",
          "items": {"type": "string"},
          "minItems": 1},
        "EmailFrom": {"type": "string"},
        "EmailSubject": {"type": "string"},
        "EmailX-Mailer": {"type": "string"},
        "EmailHeaderField": {
          "type": "array",
          "items": {"$ref": "#/definitions/ExtensionType"},
          "minItems": 1},
        "EmailHeaders": {"type": "string"},
        "EmailBody": {"type": "string"},
        "EmailMessage": {"type": "string"},
        "HashData": {
          "type": "array",
          "items": {"$ref": "#/definitions/HashData"},
          "minItems": 1},
        "Signature": {
          "type": "array",
          "items": {"$ref": "#/definitions/BYTE"},
          "minItems": 1}},
      "required": [],
      "additionalProperties": false},
    "RecordData": {
      "type": "object",
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "DateTime": {"$ref": "#/definitions/DATETIME"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "Application": {"$ref": "#/definitions/SoftwareType"},
        "RecordPattern": {
          "type": "array",
          "items": {"$ref": "#/definitions/RecordPattern"},
          "minItems": 1},
        "RecordItem": {
          "type": "array",
          "items": {"$ref": "#/definitions/ExtensionType"},
          "minItems": 1},
        "URL": {
          "type": "array",
          "items": {"$ref": "#/definitions/URLtype"},
          "minItems": 1},
        "FileData": {
          "type": "array",
          "items": {"$ref": "#/definitions/FileData"},
          "minItems": 1},
        "WindowsRegistryKeysModified": {
          "type": "array",
          "items": {
            "$ref":"#/definitions/WindowsRegistryKeysModified"},
          "minItems": 1},
        "CertificateData": {
          "type":"array",
          "items":{"$ref":"#/definitions/CertificateData"},
          "minItems": 1},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": [],
      "additionalProperties": false},
    "RecordPattern": {
      "type": "object",
      "properties": {
        "value": {"type": "string"},
        "type": {
          "enum": ["regex", "binary", "xpath", "ext-value"],
          "default": "regex"},
        "ext-type": {"type": "string"},
        "offset": {"type": "number"},
        "offsetunit": {"enum":["line", "byte", "ext-value"] ,
                       "default": "line"},
        "ext-offsetunit": {"type": "string"},
        "instance": {"type": "number"}},
      "required": ["value", "type"],
      "additionalProperties": false},
    "WindowsRegistryKeysModified": {
      "type": "object",
      "properties": {
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "Key": {
          "type": "array",
          "items": {"$ref": "#/definitions/Key"},
          "minItems": 1}},
      "required": ["Key"],
      "additionalProperties": false},
    "Key": {
      "type": "object",
      "properties": {
        "registryaction": {"enum": ["add-key", "add-value",
                          "delete-key", "delete-value",
                          "modify-key", "modify-value",
                          "ext-value"]},
        "ext-registryaction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "KeyName": {"type":"string"},
        "KeyValue": {"type": "string"}},
      "required": ["KeyName"],
      "additionalProperties": false},
    "CertificateData": {
      "type": "object",
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "Certificate": {
          "type": "array",
          "items": {"$ref": "#/definitions/Certificate"},
          "minItems": 1}},
      "required": ["Certificate"],
      "additionalProperties": false},
    "Certificate": {
      "type": "object",
      "properties": {
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "X509Data": {"$ref": "#/definitions/BYTE"},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1}},
      "required": ["X509Data"],
      "additionalProperties": false},
    "FileData": {
      "type": "object",
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction"},
        "ext-restriction": {"type": "string"},
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "File": {
          "type": "array",
          "items": {"$ref": "#/definitions/File"},
          "minItems": 1}},
      "required": ["File"],
      "additionalProperties": false},
    "File": {
      "type": "object",
      "properties": {
        "observable-id": {"$ref": "#/definitions/IDtype"},
        "FileName": {"type": "string"},
        "FileSize": {"type": "number"},
        "FileType": {"type": "string"},
        "URL": {
          "type": "array",
          "items": {"$ref": "#/definitions/URLtype"},
          "minItems": 1},
        "HashData": {"$ref": "#/definitions/HashData"},
        "Signature": {
          "type": "array",
          "items": {"$ref": "#/definitions/BYTE"},
          "minItems": 1},
        "AssociatedSoftware": {
          "$ref": "#/definitions/SoftwareType"},
        "FileProperties": {
          "type":"array",
          "items":{"$ref":"#/definitions/ExtensionType"},
          "minItems": 1}},
      "required": [],
      "additionalProperties": false},
    "HashData": {
      "type": "object",
      "properties": {
        "scope": {"enum": ["file-contents", "file-pe-section",
          "file-pe-iat", "file-pe-resource", "file-pdf-object",
          "email-hash", "email-headers-hash", "email-body-hash",
          "ext-value"]},
        "HashTargetID": {"type": "string"},
        "Hash": {
          "type": "array",
          "items": {"$ref": "#/definitions/Hash"},
          "minItems": 1},
        "FuzzyHash": {
          "type": "array",
          "items": {"$ref": "#/definitions/FuzzyHash"},
          "minItems": 1}},
      "required": ["scope"],
      "additionalProperties": false},
    "Hash": {
      "type": "object",
      "properties": {
        "DigestMethod": {"$ref": "#/definitions/BYTE"},
        "DigestValue": {"$ref": "#/definitions/BYTE"},
        "CanonicalizationMethod": {
          "$ref": "#/definitions/BYTE"},
        "Application": {
          "$ref": "#/definitions/SoftwareType"}},
      "required": ["DigestMethod", "DigestValue"],
      "additionalProperties": false},
    "FuzzyHash": {
      "type": "object",
      "properties": {
        "FuzzyHashValue": {
          "type": "array",
          "items": {"$ref": "#/definitions/ExtensionType"},
          "minItems": 1},
        "Application": {"$ref": "#/definitions/SoftwareType"},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": ["FuzzyHashValue"],
      "additionalProperties": false},
    "Indicator": {
      "type": "object",
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "IndicatorID": {"$ref": "#/definitions/IndicatorID"},
        "AlternativeIndicatorID": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlternativeIndicatorID"},
          "minItems": 1},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "StartTime": {"$ref": "#/definitions/DATETIME"},
        "EndTime": {"$ref": "#/definitions/DATETIME"},
        "Confidence": {"$ref": "#/definitions/Confidence"},
        "Contact": {
          "type": "array",
          "items": {"$ref": "#/definitions/Contact"},
          "minItems": 1},
        "Observable": {"$ref": "#/definitions/Observable"},
        "uid-ref": {"$ref": "#/definitions/IDREFType"},
        "IndicatorExpression":{
         "$ref":"#/definitions/IndicatorExpression"},
        "IndicatorReference":{
         "$ref": "#/definitions/IndicatorReference"},
        "NodeRole": {
          "type": "array",
          "items": {"$ref": "#/definitions/NodeRole"},
          "minItems": 1},
        "AttackPhase": {
          "type": "array",
          "items": {"$ref": "#/definitions/AttackPhase"},
          "minItems": 1},
        "Reference": {
          "type": "array",
          "items": {"$ref": "#/definitions/Reference"},
          "minItems": 1},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "allOf": [
        {"required": ["IndicatorID"]},
        {"oneOf": [
          {"required":["Observable"]},
          {"required":["uid-ref"]},
          {"required":["IndicatorExpression"]},
          {"required":["IndicatorReference"]}]}],
      "additionalProperties": false},
    "IndicatorID": {
      "type": "object",
      "properties": {
        "id": {"type": "string"},
        "name": {"type": "string"},
        "version": {"type": "string"}},
      "required": ["id", "name", "version"],
      "additionalProperties": false},
    "AlternativeIndicatorID": {
      "type": "object",
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
          "default": "private"},
        "ext-restriction": {"type": "string"},
        "IndicatorID": {
          "type": "array",
          "items": {"$ref": "#/definitions/IndicatorID"},
          "minItems": 1}},
      "required": ["IndicatorID"],
      "additionalProperties": false},
    "Observable": {
      "type": "object",
      "properties": {
        "restriction": {"$ref": "#/definitions/restriction",
                        "default": "private"},
        "ext-restriction": {"type": "string"},
        "System": {"$ref": "#/definitions/System"},
        "Address": {"$ref": "#/definitions/Address"},
        "DomainData": {"$ref": "#/definitions/DomainData"},
        "EmailData": {"$ref": "#/definitions/EmailData"},
        "Service": {"$ref": "#/definitions/Service"},
        "WindowsRegistryKeysModified": {
          "$ref": "#/definitions/WindowsRegistryKeysModified"},
        "FileData": {"$ref": "#/definitions/FileData"},
        "CertificateData": {
          "$ref": "#/definitions/CertificateData"},
        "RegistryHandle": {
          "$ref": "#/definitions/RegistryHandle"},
        "RecordData":  {"$ref": "#/definitions/RecordData"},
        "EventData": {"$ref": "#/definitions/EventData"},
        "Incident": {"$ref": "#/definitions/Incident"},
        "Expectation": {"$ref": "#/definitions/Expectation"},
        "Reference": {"$ref": "#/definitions/Reference"},
        "Assessment": {"$ref": "#/definitions/Assessment"},
        "DetectionPattern": {
          "$ref": "#/definitions/DetectionPattern"},
        "HistoryItem": {"$ref": "#/definitions/HistoryItem"},
        "BulkObservable": {
          "$ref": "#/definitions/BulkObservable"},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
        "oneOf": [
          {"required":["System"]},
          {"required":["Address"]},
          {"required":["DomainData"]},
          {"required":["EmailData"]},
          {"required":["Service"]},
          {"required":["WindowsRegistryKeysModified"]},
          {"required":["FileData"]},
          {"required":["CertificateData"]},
          {"required":["RegistryHandle"]},
          {"required":["RecordData"]},
          {"required":["EventData"]},
          {"required":["Incident"]},
          {"required":["Expectation"]},
          {"required":["Reference"]},
          {"required":["Assessment"]},
          {"required":["DetectionPattern"]},
          {"required":["HistoryItem"]},
          {"required":["BulkObservable"]},
          {"required":["AdditionalData"]}],
      "additionalProperties": false},
    "BulkObservable": {
      "type": "object",
      "properties": {
        "type": {"enum": ["asn", "atm", "e-mail", "ipv4-addr",
          "ipv4-net", "ipv4-net-mask", "ipv6-addr", "ipv6-net",
          "ipv6-net-mask", "mac", "site-uri", "domain-name",
          "domain-to-ipv4", "domain-to-ipv6",
          "domain-to-ipv4-timestamp",
          "domain-to-ipv6-timestamp", "ipv4-port", "ipv6-port",
          "windows-reg-key", "file-hash", "email-x-mailer",
          "email-subject", "http-user-agent",
          "http-request-url", "mutex", "file-path", "user-name",
          "ext-value"]},
        "ext-type": {"type": "string"},
        "BulkObservableFormat":{
          "$ref": "#/definitions/BulkObservableFormat"},
        "BulkObservableList": {"type": "string"},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": ["BulkObservableList"],
      "additionalProperties": false},
    "BulkObservableFormat": {
      "type": "object",
      "properties": {
        "Hash": {"$ref": "#/definitions/Hash"},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "oneOf": [
         {"required": ["Hash"]},
         {"required": ["AdditionalData"]}
      ],
      "additionalProperties": false},
    "IndicatorExpression": {
      "type": "object",
      "properties": {
        "operator": {
          "enum": ["not", "and", "or", "xor"], "default": "and"},
        "ext-operator": {"type": "string"},
        "IndicatorExpression": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/IndicatorExpression"},
          "minItems": 1},
        "Observable": {
          "type": "array",
          "items": {"$ref": "#/definitions/Observable"},
          "minItems": 1},
        "uid-ref": {
          "type": "array",
          "items": {"$ref": "#/definitions/IDREFType"},
          "minItems": 1},
        "IndicatorReference": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/IndicatorReference"},
          "minItems": 1},
        "Confidence": {"$ref":"#/definitions/Confidence"},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": [],
      "additionalProperties": false},
    "IndicatorReference": {
      "type": "object",
      "properties": {
        "uid-ref": {"$ref":"#/definitions/IDREFType"},
        "euid-ref": {"type": "string"},
        "version": {"type": "string"}},
      "oneOf": [
         {"required": ["uid-ref"]},
         {"required": ["euid-ref"]}
      ],
      "additionalProperties": false},
    "AttackPhase": {
      "type": "object",
      "properties": {
        "AttackPhaseID": {
          "type": "array",
          "items": {"type": "string"},
          "minItems": 1},
        "URL": {
          "type": "array",
          "items": {"$ref": "#/definitions/URLtype"},
          "minItems": 1},
        "Description": {
          "type": "array",
          "items": {"$ref": "#/definitions/MLStringType"},
          "minItems": 1},
        "AdditionalData": {
          "$ref":"#/definitions/ExtensionTypeList"}},
      "required": [],
      "additionalProperties": false}},
  "title": "IODEF-Document",
  "description": "JSON schema for IODEF-Document class",
  "type": "object",
  "properties": {
    "version": {"type": "string"},
    "lang": {"$ref": "#/definitions/lang"},
    "format-id": {"type": "string"},
    "private-enum-name": {"type": "string"},
    "private-enum-id": {"type": "string"},
    "Incident": {
      "type": "array",
      "items": {"$ref": "#/definitions/Incident"},
      "minItems": 1},
    "AdditionalData": {
      "$ref":"#/definitions/ExtensionTypeList"}},
  "required": ["version", "Incident"],
  "additionalProperties": false}
</sourcecode>
      </figure>
    </section>
    <section anchor="Acknowledgments" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.c">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t pn="section-appendix.c-1">We would like to thank <contact fullname="Henk Birkholz"/>, <contact fullname="Carsten Bormann"/>, <contact fullname="Benjamin Kaduk"/>,
      <contact fullname="Alexey Melnikov"/>, <contact fullname="Yasuaki       Morita"/>, and <contact fullname="Takahiko Nagata"/> for their
      insightful comments on this document and CDDL.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.d">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Takeshi Takahashi" initials="T." surname="Takahashi">
        <organization abbrev="NICT" showOnFrontPage="true">National Institute of Information and Communications Technology</organization>
        <address>
          <postal>
            <extaddr/>
            <street>4-2-1 Nukui-Kitamachi</street>
            <region>Koganei, Tokyo</region>
            <code>184-8795</code>
            <country>Japan</country>
          </postal>
          <phone>+81 42 327 5862</phone>
          <email>takeshi_takahashi@nict.go.jp</email>
        </address>
      </author>
      <author fullname="Roman Danyliw" initials="R." surname="Danyliw">
        <organization abbrev="CERT" showOnFrontPage="true">CERT, Software Engineering Institute, Carnegie Mellon University</organization>
        <address>
          <postal>
            <street>4500 Fifth Avenue</street>
            <city>Pittsburgh</city>
            <region>PA</region>
            <country>United States of America</country>
          </postal>
          <email>rdd@cert.org</email>
        </address>
      </author>
      <author fullname="Mio Suzuki" initials="M." surname="Suzuki">
        <organization abbrev="NICT" showOnFrontPage="true">National Institute of Information and Communications Technology</organization>
        <address>
          <postal>
            <extaddr/>
            <street>4-2-1 Nukui-Kitamachi</street>
            <region>Koganei, Tokyo</region>
            <code>184-8795</code>
            <country>Japan</country>
          </postal>
          <email>mio@nict.go.jp</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
