<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 3.4.8) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-rfc-cddl-models-07" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>CDDL models for some existing RFCs</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-rfc-cddl-models-07"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2026" month="February" day="22"/>
    <keyword>CDDL models</keyword>
    <abstract>
      <?line 54?>

<t>A number of CBOR- and JSON-based protocols have been defined before
CDDL was standardized or widely used.</t>
      <t>This short draft records some CDDL definitions for such protocols,
which could become part of a library of CDDL definitions available for
use in CDDL2 processors.  It focuses on CDDL in (almost) published
IETF RFCs.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bormann-cbor-rfc-cddl-models/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        core Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/common-cddl"/>.</t>
    </note>
  </front>
  <middle>
    <?line 64?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(Please see abstract.)
Add in <xref target="STD94"/> <xref target="STD90"/>
        <xref target="RFC8610"/> <xref target="RFC9682"/> <xref target="RFC9165"/> <xref target="RFC9741"/></t>
    </section>
    <section anchor="cddl-definitions-for-almost-published-rfcs">
      <name>CDDL definitions for (almost) published RFCs</name>
      <t>This section is intended to have one subsection for each CDDL data
model presented for an existing RFC.
As a start, it is fleshed out with three such data models.</t>
      <section anchor="rfc-7071-reputation-interchange">
        <name>RFC 7071 (Reputation Interchange)</name>
        <t><xref section="H" sectionFormat="of" target="RFC8610"/> contains two CDDL definitions for <xref target="RFC7071"/>,
which are not copied here.
Typically, the compact form would be used in applications using the
RFC 7071 format; while the extended form might be useful to
cherry-pick features of RFC 7071 into another protocol.</t>
      </section>
      <section anchor="rfc-8366-voucher-artifact-for-bootstrapping-protocols">
        <name>RFC 8366 (Voucher Artifact for Bootstrapping Protocols)</name>
        <t><xref target="RFC8366"/> defines a data model for a "Voucher Artifact", which can be
represented in CDDL as:</t>
        <figure anchor="rfc8366">
          <name>CDDL for RFC 8366</name>
          <sourcecode type="cddl" name="rfc8366.cddl"><![CDATA[
voucher-artifact = {
  "ietf-voucher:voucher": {
    created-on: yang$date-and-time
    ? (
        expires-on: yang$date-and-time
        ? last-renewal-date: yang$date-and-time
        //
        nonce: json-binary<bytes .size (8..32)>
      )
    assertion: assertion
    serial-number: text
    ? idevid-issuer: json-binary<bytes>
    pinned-domain-cert: json-binary<bytes>
    ? domain-cert-revocation-checks: bool
  }
}

assertion = "verified" / "logged" / "proximity"

yang$date-and-time = text .regexp cat3<"[0-9]{4}-[0-9]{2}-[0-9]{2}T",
                            "[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]+)?",
                            "(Z|[+-][0-9]{2}:[0-9]{2})">

cat3<A,B,C> = (A .cat B) .cat C

json-binary<T> = text .b64c T
]]></sourcecode>
        </figure>
        <t>The two examples in the RFC can be validated with this little patchup
script:</t>
        <sourcecode type="shell"><![CDATA[
sed -e s/ue=/uQ=/ -e s/'"true"'/true/ | cddl rfc8366.cddl vp -
]]></sourcecode>
      </section>
      <section anchor="rfc-9457-problem-details-for-http-apis">
        <name>RFC 9457 (Problem Details for HTTP APIs)</name>
        <t><xref target="RFC9457"/> defines a simple data model
that is reproduced in CDDL here:</t>
        <figure anchor="rfc9457">
          <name>CDDL for RFC 9457</name>
          <sourcecode type="cddl" name="rfc9457.cddl"><![CDATA[
problem-object = {
  ? type: preferably-absolute-uri
  ? title: text
  ? status: 100..599
  ? detail: text
  ? instance: preferably-absolute-uri
  * text .feature "problem-object-extension" => any
}

; RECOMMENDED: absolute URI or at least absolute path:
preferably-absolute-uri = ~uri
]]></sourcecode>
        </figure>
        <t>Note that <xref section="B" sectionFormat="of" target="RFC9290"/> defines a related CBOR-specific data
model that may be useful for tunneling <xref target="RFC7807"/> or <xref target="RFC9457"/> problem details in
<xref target="RFC9290"/> Concise Problem Details.</t>
      </section>
      <section anchor="rfc-9595-yang-sid">
        <name>RFC 9595 (YANG-SID)</name>
        <t><xref target="RFC9595"/> defines a data model for a
"SID file" in YANG, to be transported as a YANG-JSON instance.</t>
        <t>An equivalent CDDL data model is given here:</t>
        <figure anchor="rfc9595">
          <name>CDDL for RFC 9595</name>
          <sourcecode type="cddl" name="rfc9595.cddl"><![CDATA[
sid-file = {
  "ietf-sid-file:sid-file": {
    module-name: yang$yang-identifier
    ? module-revision: revision-identifier
    ? sid-file-version: sid-file-version-identifier
    ? sid-file-status: "unpublished" / "published"
    ? description: text
    ? dependency-revision: [* dependency-revision]
    ? assignment-range: [* assignment-range]
    ? item: [*item]
  }
}

rep<RE>=cat3<"(", RE, ")*">
opt<RE>=cat3<"(", RE, ")?">
cat3<A,B,C> = (A .cat B) .cat C

id-re = "[a-zA-Z_][a-zA-Z0-9\\-_.]*"
yang$yang-identifier = text .regexp id-re
revision-identifier = text .regexp "[0-9]{4}-[0-9]{2}-[0-9]{2}"
sid-file-version-identifier = uint .size 4
sid = text .decimal (0..0x7fffffffffffffff); uint63 as text string
plus-id<Prefix> = Prefix .cat id-re
schema-node-re = cat3<plus-id<"/">, plus-id<":">, ; qualified
                      rep<plus-id<"/"> .cat       ; optionally
                          opt<plus-id<":">> > >     ; qualified
schema-node-path = text .regexp schema-node-re

dependency-revision = {
  module-name: yang$yang-identifier
  module-revision: revision-identifier
}

assignment-range = {
  entry-point: sid
  size: sid
}

item = {
  ? status: "stable" / "unstable" / "obsolete"
  (
    namespace: "module" / "identity" / "feature"
    identifier: yang$yang-identifier
  //
    namespace: "data"
    identifier: schema-node-path
  )
  sid: sid
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="your-favorite-rfc-here">
        <name>Your favorite RFC here...</name>
      </section>
    </section>
    <section anchor="iana-defs">
      <name>CDDL definitions derived from IANA registries</name>
      <t>Often, CDDL models need to use numbers that have been registered as
values in IANA registries.</t>
      <t>This section is intended to have one subsection for each CDDL data
model presented that is derived from an existing IANA registry.
As a start, it is fleshed out with two such data models.</t>
      <t>The intention is that these reference modules are updated automatically
(after each change of the registry or periodically, frequent enough.)
Hence, this document can only present a snapshot for IANA-derived data
models.</t>
      <t>The model(s) presented here clearly are in proof-of-concept stage;
suggestions for improvement are very welcome.</t>
      <section anchor="cose-algorithms-registry">
        <name>COSE Algorithms Registry</name>
        <t>The IANA registry for COSE Algorithms is part of the IANA CBOR Object
Signing and Encryption (COSE) registry group <xref target="IANA.cose"/>.</t>
        <t>The following automatically derived model defines some 80 CDDL rules
that have the name for a COSE algorithm as its rule name and the
actual algorithm number as its right hand side.
The additional first rule is a type choice between all these
constants; this could be used in places that just have to validate the
presence of a COSE algorithm number that was registered at the time
the model was derived.</t>
        <t>This section does not explore potential filtering of the registry
entries, e.g., by recommended status (such as leaving out deprecated
entries) or by capabilities.</t>
        <t>The names given in the COSE algorithms registry are somewhat irregular
and do not consider their potential use in modeling or programming
languages; the automatic derivation used here turns sequences of one
or more spaces and other characters that cannot be in CDDL names
(<tt>[/+]</tt> here) into underscores.</t>
        <figure anchor="cose-algorithms">
          <name>Derived CDDL for COSE Algorithms Registry</name>
          <sourcecode type="cddl" name="cose-algorithms.cddl"><![CDATA[
============= NOTE: '\' line wrapping per RFC 8792 ==============

algorithms = RS1 / A128CTR / A192CTR / A256CTR / A128CBC / \
  A192CBC / A256CBC / ESB512 / ESB384 / ESB320 / ESB256 / KT256 \
  / KT128 / TurboSHAKE256 / TurboSHAKE128 / WalnutDSA / RS512 / \
  RS384 / RS256 / Ed448 / ESP512 / ESP384 / ML-DSA-87 / ML-DSA-\
  65 / ML-DSA-44 / ES256K / HSS-LMS / SHAKE256 / SHA-512 / SHA-\
  384 / RSAES-OAEP_w_SHA-512 / RSAES-OAEP_w_SHA-256 / RSAES-\
  OAEP_w_RFC_8017_default_parameters / PS512 / PS384 / PS256 / \
  ES512 / ES384 / ECDH-SS_A256KW / ECDH-SS_A192KW / ECDH-\
  SS_A128KW / ECDH-ES_A256KW / ECDH-ES_A192KW / ECDH-ES_A128KW \
  / ECDH-SS_HKDF-512 / ECDH-SS_HKDF-256 / ECDH-ES_HKDF-512 / \
  ECDH-ES_HKDF-256 / Ed25519 / SHAKE128 / SHA-512_256 / SHA-256 \
  / SHA-256_64 / SHA-1 / direct_HKDF-AES-256 / direct_HKDF-AES-\
  128 / direct_HKDF-SHA-512 / direct_HKDF-SHA-256 / ESP256 / \
  EdDSA / ES256 / direct / A256KW / A192KW / A128KW / A128GCM / \
  A192GCM / A256GCM / HMAC_256_64 / HMAC_256_256 / HMAC_384_384 \
  / HMAC_512_512 / AES-CCM-16-64-128 / AES-CCM-16-64-256 / AES-\
  CCM-64-64-128 / AES-CCM-64-64-256 / AES-MAC_128_64 / AES-\
  MAC_256_64 / ChaCha20_Poly1305 / AES-MAC_128_128 / AES-\
  MAC_256_128 / AES-CCM-16-128-128 / AES-CCM-16-128-256 / AES-\
  CCM-64-128-128 / AES-CCM-64-128-256 / IV-GENERATION
RS1 = -65535
A128CTR = -65534
A192CTR = -65533
A256CTR = -65532
A128CBC = -65531
A192CBC = -65530
A256CBC = -65529
ESB512 = -268
ESB384 = -267
ESB320 = -266
ESB256 = -265
KT256 = -264
KT128 = -263
TurboSHAKE256 = -262
TurboSHAKE128 = -261
WalnutDSA = -260
RS512 = -259
RS384 = -258
RS256 = -257
Ed448 = -53
ESP512 = -52
ESP384 = -51
ML-DSA-87 = -50
ML-DSA-65 = -49
ML-DSA-44 = -48
ES256K = -47
HSS-LMS = -46
SHAKE256 = -45
SHA-512 = -44
SHA-384 = -43
RSAES-OAEP_w_SHA-512 = -42
RSAES-OAEP_w_SHA-256 = -41
RSAES-OAEP_w_RFC_8017_default_parameters = -40
PS512 = -39
PS384 = -38
PS256 = -37
ES512 = -36
ES384 = -35
ECDH-SS_A256KW = -34
ECDH-SS_A192KW = -33
ECDH-SS_A128KW = -32
ECDH-ES_A256KW = -31
ECDH-ES_A192KW = -30
ECDH-ES_A128KW = -29
ECDH-SS_HKDF-512 = -28
ECDH-SS_HKDF-256 = -27
ECDH-ES_HKDF-512 = -26
ECDH-ES_HKDF-256 = -25
Ed25519 = -19
SHAKE128 = -18
SHA-512_256 = -17
SHA-256 = -16
SHA-256_64 = -15
SHA-1 = -14
direct_HKDF-AES-256 = -13
direct_HKDF-AES-128 = -12
direct_HKDF-SHA-512 = -11
direct_HKDF-SHA-256 = -10
ESP256 = -9
EdDSA = -8
ES256 = -7
direct = -6
A256KW = -5
A192KW = -4
A128KW = -3
A128GCM = 1
A192GCM = 2
A256GCM = 3
HMAC_256_64 = 4
HMAC_256_256 = 5
HMAC_384_384 = 6
HMAC_512_512 = 7
AES-CCM-16-64-128 = 10
AES-CCM-16-64-256 = 11
AES-CCM-64-64-128 = 12
AES-CCM-64-64-256 = 13
AES-MAC_128_64 = 14
AES-MAC_256_64 = 15
ChaCha20_Poly1305 = 24
AES-MAC_128_128 = 25
AES-MAC_256_128 = 26
AES-CCM-16-128-128 = 30
AES-CCM-16-128-256 = 31
AES-CCM-64-128-128 = 32
AES-CCM-64-128-256 = 33
IV-GENERATION = 34
]]></sourcecode>
        </figure>
      </section>
      <section anchor="dns-record-types">
        <name>DNS Record Types</name>
        <t>The IANA registry for DNS Record Types is part of the IANA Domain Name
System (DNS) Parameters registry group <xref target="IANA.dns-parameters"/>.</t>
        <t>Using the library <xref target="IANA-REGISTRY"/> and a short script (<xref target="dns-rrtype-extract"/>),
a CDDL file for the Resource Record (RR) TYPEs registered in that
registry group can be generated (<xref target="dns-rrtypes"/> in <xref target="app-gen"/>):</t>
        <figure anchor="dns-rrtype-extract">
          <name>Script for deriving CDDL for the Resource Record (RR) TYPEs Registry in DNS Parameters</name>
          <sourcecode type="ruby" name="dns-extract-rrtypes.ruby"><![CDATA[
require 'iana-registry'

DNS_RR = {}

REXML::XPath.each(IANA::Registry.load("dns-parameters").root,
    "//xmlns:registry[@id='dns-parameters-4']/xmlns:record",
    IANA::Registry::NS) do |x|
  typ = x.elements['type'].text
  value = x.elements['value'].text.to_i
  semantics = x.elements['description'].text
  if semantics && typ =~ /\A[-_A-Z0-9]+\z/
    DNS_RR[typ.gsub("-", "_")] = value
  end
end

puts DNS_RR.map { |t, v| "RR_#{t} = #{v}\n" }
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no requests of IANA.</t>
      <t>However, the use of IANA registries for deriving CDDL (e.g., as in
<xref target="iana-defs"/>) is an active subject of discussion.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <t>The security considerations of <xref target="RFC8610"/>, <xref target="RFC9682"/>, <xref target="RFC9165"/>, <xref target="RFC9741"/>, <xref target="STD94"/> and <xref target="STD90"/> apply.
This collection of CDDL models is not believed to create new security
considerations.
Errors in the models could -- if we knew of them, we'd fix those
errors instead of explaining their security consequences in this
section.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <referencegroup anchor="STD90" target="https://www.rfc-editor.org/info/std90">
          <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259">
            <front>
              <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
              <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
              <date month="December" year="2017"/>
              <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>
        </referencegroup>
        <referencegroup anchor="STD94" target="https://www.rfc-editor.org/info/std94">
          <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
            <front>
              <title>Concise Binary Object Representation (CBOR)</title>
              <author fullname="C. Bormann" initials="C." surname="Bormann"/>
              <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
              <date month="December" year="2020"/>
              <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>
                <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="94"/>
            <seriesInfo name="RFC" value="8949"/>
            <seriesInfo name="DOI" value="10.17487/RFC8949"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <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>
        <reference anchor="RFC9682">
          <front>
            <title>Updates to the Concise Data Definition Language (CDDL) Grammar</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="November" year="2024"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), as defined in RFCs 8610 and 9165, provides an easy and unambiguous way to express structures for protocol messages and data formats that are represented in Concise Binary Object Representation (CBOR) or JSON.</t>
              <t>This document updates RFC 8610 by addressing related errata reports and making other small fixes for the ABNF grammar defined for CDDL.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9682"/>
          <seriesInfo name="DOI" value="10.17487/RFC9682"/>
        </reference>
        <reference anchor="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:.plus,.cat, and.det for the construction of constants;.abnf/.abnfb for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and.feature for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <reference anchor="RFC9741">
          <front>
            <title>Concise Data Definition Language (CDDL): Additional Control Operators for the Conversion and Processing of Text</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point. RFCs have added to this extension point in both an application-specific and a more general way.</t>
              <t>The present document defines a number of additional generally applicable control operators for text conversion (bytes, integers, printf-style formatting, and JSON) and for an operation on text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9741"/>
          <seriesInfo name="DOI" value="10.17487/RFC9741"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7807">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <date month="March" year="2016"/>
            <abstract>
              <t>This document defines a "problem detail" as a way to carry machine- readable details of errors in a HTTP response to avoid the need to define new error response formats for HTTP APIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7807"/>
          <seriesInfo name="DOI" value="10.17487/RFC7807"/>
        </reference>
        <reference anchor="RFC8366">
          <front>
            <title>A Voucher Artifact for Bootstrapping Protocols</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher".</t>
              <t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure. Other YANG-derived formats are possible. The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t>
              <t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8366"/>
          <seriesInfo name="DOI" value="10.17487/RFC8366"/>
        </reference>
        <reference anchor="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </reference>
        <reference anchor="RFC9290">
          <front>
            <title>Concise Problem Details for Constrained Application Protocol (CoAP) APIs</title>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>This document defines a concise "problem detail" as a way to carry machine-readable details of errors in a Representational State Transfer (REST) response to avoid the need to define new error response formats for REST APIs for constrained environments. The format is inspired by, but intended to be more concise than, the problem details for HTTP APIs defined in RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9290"/>
          <seriesInfo name="DOI" value="10.17487/RFC9290"/>
        </reference>
        <reference anchor="RFC7071">
          <front>
            <title>A Media Type for Reputation Interchange</title>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <author fullname="M. Kucherawy" initials="M." surname="Kucherawy"/>
            <date month="November" year="2013"/>
            <abstract>
              <t>This document defines the format of reputation response data ("reputons"), the media type for packaging it, and definition of a registry for the names of reputation applications and response sets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7071"/>
          <seriesInfo name="DOI" value="10.17487/RFC7071"/>
        </reference>
        <reference anchor="RFC9595">
          <front>
            <title>YANG Schema Item iDentifier (YANG SID)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="A. Pelov" initials="A." role="editor" surname="Pelov"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>YANG Schema Item iDentifiers (YANG SIDs) are globally unique 63-bit unsigned integers used to identify YANG items. SIDs provide a more compact method for identifying those YANG items that can be used efficiently, notably in constrained environments (RFC 7228). This document defines the semantics, registration processes, and assignment processes for YANG SIDs for IETF-managed YANG modules. To enable the implementation of these processes, this document also defines a file format used to persist and publish assigned YANG SIDs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9595"/>
          <seriesInfo name="DOI" value="10.17487/RFC9595"/>
        </reference>
        <reference anchor="IANA.cose" target="https://www.iana.org/assignments/cose">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.dns-parameters" target="https://www.iana.org/assignments/dns-parameters">
          <front>
            <title>Domain Name System (DNS) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA-REGISTRY" target="https://rubygems.org/gems/iana-registry">
          <front>
            <title>iana-registry | Rubygems.org</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
      </references>
    </references>
    <?line 417?>

<section anchor="app-gen">
      <name>Example CDDL generated from registries</name>
      <t>This appendix collects examples that are too long for the main body of
the text.</t>
      <figure anchor="dns-rrtypes">
        <name>Derived CDDL for the Resource Record (RR) TYPEs Registry in DNS Parameters</name>
        <sourcecode type="cddl" name="dns-rrtypes.cddl"><![CDATA[
RR_A = 1
RR_NS = 2
RR_MD = 3
RR_MF = 4
RR_CNAME = 5
RR_SOA = 6
RR_MB = 7
RR_MG = 8
RR_MR = 9
RR_NULL = 10
RR_WKS = 11
RR_PTR = 12
RR_HINFO = 13
RR_MINFO = 14
RR_MX = 15
RR_TXT = 16
RR_RP = 17
RR_AFSDB = 18
RR_X25 = 19
RR_ISDN = 20
RR_RT = 21
RR_NSAP = 22
RR_NSAP_PTR = 23
RR_SIG = 24
RR_KEY = 25
RR_PX = 26
RR_GPOS = 27
RR_AAAA = 28
RR_LOC = 29
RR_NXT = 30
RR_EID = 31
RR_NIMLOC = 32
RR_SRV = 33
RR_ATMA = 34
RR_NAPTR = 35
RR_KX = 36
RR_CERT = 37
RR_A6 = 38
RR_DNAME = 39
RR_SINK = 40
RR_OPT = 41
RR_APL = 42
RR_DS = 43
RR_SSHFP = 44
RR_IPSECKEY = 45
RR_RRSIG = 46
RR_NSEC = 47
RR_DNSKEY = 48
RR_DHCID = 49
RR_NSEC3 = 50
RR_NSEC3PARAM = 51
RR_TLSA = 52
RR_SMIMEA = 53
RR_HIP = 55
RR_NINFO = 56
RR_RKEY = 57
RR_TALINK = 58
RR_CDS = 59
RR_CDNSKEY = 60
RR_OPENPGPKEY = 61
RR_CSYNC = 62
RR_ZONEMD = 63
RR_SVCB = 64
RR_HTTPS = 65
RR_DSYNC = 66
RR_HHIT = 67
RR_BRID = 68
RR_EUI48 = 108
RR_EUI64 = 109
RR_NXNAME = 128
RR_TKEY = 249
RR_TSIG = 250
RR_IXFR = 251
RR_AXFR = 252
RR_MAILB = 253
RR_MAILA = 254
RR_URI = 256
RR_CAA = 257
RR_AVC = 258
RR_DOA = 259
RR_AMTRELAY = 260
RR_RESINFO = 261
RR_WALLET = 262
RR_CLA = 263
RR_IPN = 264
RR_TA = 32768
RR_DLV = 32769
]]></sourcecode>
      </figure>
    </section>
    <section numbered="false" anchor="list-of-figures">
      <name>List of Figures</name>
      <dl spacing="compact" indent="11">
        <dt><xref target="rfc8366"/>:</dt>
        <dd>
          <t><xref format="title" target="rfc8366"/></t>
        </dd>
        <dt><xref target="rfc9457"/>:</dt>
        <dd>
          <t><xref format="title" target="rfc9457"/></t>
        </dd>
        <dt><xref target="rfc9595"/>:</dt>
        <dd>
          <t><xref format="title" target="rfc9595"/></t>
        </dd>
        <dt><xref target="cose-algorithms"/>:</dt>
        <dd>
          <t><xref format="title" target="cose-algorithms"/></t>
        </dd>
        <dt><xref target="dns-rrtype-extract"/>:</dt>
        <dd>
          <t><xref format="title" target="dns-rrtype-extract"/></t>
        </dd>
        <dt><xref target="dns-rrtypes"/>:</dt>
        <dd>
          <t><xref format="title" target="dns-rrtypes"/></t>
        </dd>
      </dl>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>TBD</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
QV7jk1PxvwIrC6tGNQAA

-->

</rfc>
