<?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.6.12 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-problem-details-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="CoRE Problem Details">Concise Problem Details For CoAP APIs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-problem-details-07"/>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>arm</organization>
      <address>
        <email>thomas.fossati@arm.com</email>
      </address>
    </author>
    <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="2022" month="June" day="28"/>
    <area>ART</area>
    <workgroup>CoRE Working Group</workgroup>
    <keyword>CoAP</keyword>
    <keyword>API</keyword>
    <keyword>Problem Details</keyword>
    <keyword>CBOR Tag</keyword>
    <keyword>Language Tag</keyword>
    <keyword>Bidi</keyword>
    <abstract>
      <t>This document defines a concise "problem detail" as a way to carry
machine-readable details of errors in a 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>
    <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-ietf-core-problem-details/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Constrained RESTful Environments Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/core-problem-details"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>REST response status information such as CoAP response
codes (<xref section="5.9" sectionFormat="of" target="RFC7252"/>) is sometimes not sufficient to convey enough information about
an error to be helpful.  This specification defines a simple and extensible
framework to define CBOR <xref target="STD94"/> data items to suit this purpose.
It is designed to be reused by REST APIs, which can identify distinct
"shapes" of these data items specific to their needs.
Thus, API clients can be informed of both the high-level error class
(using the response code) and the finer-grained details of the problem
(using the vocabulary defined here).
This pattern of communication is illustrated in <xref target="fig-problem-details"/>.</t>
      <figure anchor="fig-problem-details">
        <name>Problem Details: Example with CoAP</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="288" viewBox="0 0 288 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 48,80 L 48,240" fill="none" stroke="black"/>
              <path d="M 80,32 L 80,80" fill="none" stroke="black"/>
              <path d="M 168,32 L 168,80" fill="none" stroke="black"/>
              <path d="M 200,80 L 200,240" fill="none" stroke="black"/>
              <path d="M 240,32 L 240,80" fill="none" stroke="black"/>
              <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
              <path d="M 168,32 L 240,32" fill="none" stroke="black"/>
              <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
              <path d="M 168,80 L 240,80" fill="none" stroke="black"/>
              <path d="M 56,128 L 192,128" fill="none" stroke="black"/>
              <path d="M 56,160 L 192,160" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="200,128 188,122.4 188,133.6 " fill="black" transform="rotate(0,192,128)"/>
              <polygon class="arrowhead" points="64,160 52,154.4 52,165.6 " fill="black" transform="rotate(180,56,160)"/>
              <circle cx="48" cy="128" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="200" cy="160" r="6" class="opendot" fill="white" stroke="black"/>
              <g class="text">
                <text x="44" y="52">CoAP</text>
                <text x="204" y="52">CoAP</text>
                <text x="44" y="68">Client</text>
                <text x="204" y="68">Server</text>
                <text x="88" y="116">Request</text>
                <text x="248" y="148">(failure)</text>
                <text x="96" y="180">Error</text>
                <text x="156" y="180">Response</text>
                <text x="116" y="196">with</text>
                <text x="144" y="196">a</text>
                <text x="172" y="196">CBOR</text>
                <text x="76" y="212">data</text>
                <text x="116" y="212">item</text>
                <text x="164" y="212">giving</text>
                <text x="96" y="228">Problem</text>
                <text x="160" y="228">Details</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
.--------.          .--------.
|  CoAP  |          |  CoAP  |
| Client |          | Server |
'----+---'          '---+----'
     |                  |
     | Request          |
     o----------------->|
     |                  | (failure)
     |<-----------------o
     |   Error Response |
     |      with a CBOR |
     | data item giving |
     |  Problem Details |
     |                  |
]]></artwork>
        </artset>
      </figure>
      <t>The framework presented is largely inspired by the Problem Details for HTTP APIs defined in <xref target="RFC7807"/>.
<xref target="comp7807"/> discusses applications where interworking with <xref target="RFC7807"/> is required.</t>
      <section anchor="terminology-and-requirements-language">
        <name>Terminology and Requirements Language</name>
        <t>The terminology from <xref target="RFC7252"/>, <xref target="STD94"/>, and <xref target="RFC8610"/> applies; in particular CBOR
diagnostic notation is defined in <xref section="8" sectionFormat="of" target="STD94"/> and <xref section="G" sectionFormat="of" target="RFC8610"/>.
Readers are also expected to be familiar with the terminology from <xref target="RFC7807"/>.</t>
        <t>In this document, the structure of data is specified in CDDL <xref target="RFC8610"/> <xref target="RFC9165"/>.</t>
        <t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="basic">
      <name>Basic Problem Details</name>
      <t>A Concise Problem Details data item is a CBOR data item with the following
structure (rules named starting with <tt>tag38</tt> are defined in <xref target="tag38"/>):</t>
      <figure anchor="cddl">
        <name>Structure of Concise Problem Details Data Item</name>
        <sourcecode type="cddl"><![CDATA[
problem-details = non-empty<{
  ? &(title: -1) => oltext
  ? &(detail: -2) => oltext
  ? &(instance: -3) => ~uri
  ? &(response-code: -4) => uint .size 1
  ? &(base-uri: -5) => ~uri
  ? &(base-lang: -6) => tag38-ltag
  ? &(base-rtl: -7) => tag38-direction
  standard-problem-detail-entries
  custom-problem-detail-entries
}>

standard-problem-detail-entries = (
  * nint => any
)

custom-problem-detail-entries = (
  * (uint/~uri) => { + any => any }
)

non-empty<M> = (M) .and ({ + any => any })

oltext = text / tag38

]]></sourcecode>
      </figure>
      <t>(Examples of elaborated Concise Problem Details data items can
be found later in the document, e.g., <xref target="fig-example-custom-with-uri"/>.)</t>
      <t>A number of problem detail entries, the Standard Problem Detail
entries, are predefined (more predefined details can be registered,
see <xref target="new-spdk"/>).</t>
      <t>Note that, unlike <xref target="RFC7807"/>, Concise Problem Details data items have
no explicit "problem type".
Instead, the category (or, one could say, Gestalt) of the problem can
be understood from the shape of the problem details offered. We talk of
a "problem shape" for short.</t>
      <dl newline="true">
        <dt>The title (key -1):</dt>
        <dd>
          <t>A short, human-readable summary of the problem shape.
Beyond the shape of the problem, it is not intended to summarize all
the specific information given with the problem details.
For instance, the summary might include that an account does not
have enough money for a transaction to succeed, but not the detail
information such as the account number, how much money that account
has, and how much would be needed.</t>
        </dd>
        <dt>The detail (key -2):</dt>
        <dd>
          <t>A human-readable explanation specific to this occurrence of the problem.</t>
        </dd>
        <dt>The instance (key -3):</dt>
        <dd>
          <t>A URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.</t>
        </dd>
        <dt>The response-code (key -4):</dt>
        <dd>
          <t>The CoAP response code (Sections <xref target="RFC7252" section="5.9" sectionFormat="bare"/> and <xref target="RFC7252" section="12.1.2" sectionFormat="bare"/> of <xref target="RFC7252"/>) generated by the origin
server for this occurrence of the problem.</t>
        </dd>
        <dt>The base-uri (key -5):</dt>
        <dd>
          <t>The base URI (<xref section="5.1" sectionFormat="of" target="STD66"/>) that should be used to resolve
relative URI references embedded in this Concise Problem Details
data item.</t>
        </dd>
        <dt>The base-lang (key -6):</dt>
        <dd>
          <t>The language-tag (tag38-ltag) that applies to the presentation of
unadorned text strings (not using tag 38) in this Concise Problem
Details data item, see <xref target="tag38"/>.</t>
        </dd>
        <dt>The base-rtl (key -7):</dt>
        <dd>
          <t>The writing-direction (tag38-direction) that applies to the
presentation of unadorned text strings (not using tag 38) in this
Concise Problem Details data item, see <xref target="tag38"/>.</t>
        </dd>
      </dl>
      <t>Both "title" and "detail" can use either an unadorned CBOR text string
(<tt>text</tt>) or a language-tagged text string (<tt>tag38</tt>); see <xref target="tag38"/> for
the definition of the latter.
Language tag and writing direction information for unadorned text
strings are intended to be obtained from context; if that context
needs to be saved or forwarded with a Concise Problem Details data
item, "base-lang" and "base-rtl" can be used for that.
If no such (explicitly saved or implicit) context information is
available, unadorned text is interpreted with language-tag "en" and
writing-direction "false" (ltr).</t>
      <t>The "title" string is advisory and included to give
consumers a shorthand for the category (problem shape) of the error encountered.</t>
      <t>The "detail" member, if present, ought to focus on helping the client
correct the problem, rather than giving extensive server-side
debugging information.
Consumers <bcp14>SHOULD NOT</bcp14> parse the "detail" member for information;
extensions (see <xref target="sec-new-attributes"/>) are more suitable and less
error-prone ways to obtain such information.
Note that the "instance" URI reference may be relative; this means
that it must be resolved relative to the representation's base URI, as
per <xref section="5" sectionFormat="of" target="STD66"/>.</t>
      <t>The "response-code" member, if present, is only advisory; it conveys
the CoAP response code used for the convenience of the consumer.
Generators <bcp14>MUST</bcp14> use the same response code here as in the actual CoAP
response; the latter is needed to assure that generic CoAP software that
does not understand the problem-details format still behaves
correctly.
Consumers can use the response-code member to determine what the
original response code used by the generator was, in cases where it
has been changed (e.g., by an intermediary or cache), and when message
bodies persist without CoAP information (e.g., in an events log or analytics
database).
Generic CoAP software will still use the CoAP response code.
To support the use case of message body persistence without support by
the problem-details generator, the entity that persists the Concise
Problem Details data item can copy over the CoAP response code
that it received on the CoAP level.
Note that the "response-code" value is a numeric representation of the
actual code (see <xref section="3" sectionFormat="of" target="RFC7252"/>), so it does not take the usual
presentation form that resembles an
HTTP status code -- <tt>4.04 Not found</tt> is represented by the number 132.</t>
      <t>The "base-uri" member is usually not present in the initial
request-response communication as it can be inferred as per <xref section="5.1.3" sectionFormat="of" target="STD66"/>.
An entity that stores a Concise Problem Details data item or otherwise
makes it available for consumers without this context might add in a
base-uri member to allow those consumers to perform resolution of any
relative URI references embedded in the data item.</t>
    </section>
    <section anchor="sec-new-attributes">
      <name>Extending Concise Problem Details</name>
      <t>This specification defines a generic problem details container with only a
minimal set of attributes to make it usable.</t>
      <t>It is expected that applications will extend the base format by defining new
attributes.</t>
      <t>These new attributes fall into two categories: generic and application
specific.</t>
      <t>Generic attributes will be allocated in the <tt>standard-problem-detail-entries</tt>
slot according to the registration procedure defined in <xref target="new-spdk"/>.</t>
      <t>Application-specific attributes will be allocated in the
<tt>custom-problem-detail-entries</tt> slot according to the procedure described in
<xref target="new-cpdk"/>.</t>
      <t anchor="ignore-unknown">Consumers of a Concise Problem Details data item <bcp14>MUST</bcp14> ignore any
Standard or Custom Problem Detail entries, or keys inside the Custom
Problem Detail entries, that they do not recognize ("ignore-unknown
rule"); this allows problem details to evolve.
When storing the data item for future use or forwarding it to other
consumers, it is strongly <bcp14>RECOMMENDED</bcp14> to retain the unrecognized
entries; exceptions might be when storage/forwarding occurs in a
different format/protocol that cannot accommodate them, or when the
storage/forwarding function needs to filter out privacy-sensitive
information and for that needs to assume unrecognized entries might be
privacy-sensitive.</t>
      <section anchor="new-spdk">
        <name>Standard Problem Detail Entries</name>
        <t>Beyond the Standard Problem Detail keys defined in <xref target="cddl"/>, additional
Standard Problem Detail keys can be registered for use in the
<tt>standard-problem-detail-entries</tt> slot (see <xref target="iana-spdk"/>).</t>
        <t>Standard Problem Detail keys are negative integers, so they can never
conflict with Custom Problem Detail keys defined for a specific
application domain
(which are unsigned integers or URIs.)</t>
        <t>In summary, the keys for Standard Problem Detail entries are in a
global namespace that is not specific to a particular application domain.</t>
        <section anchor="uco">
          <name>Standard Problem Detail Entry: Unprocessed CoAP Option</name>
          <t><xref target="basic"/> provides a number of generally applicable Standard Problem
Detail Entries.  The present section both registers another useful
Standard Problem Detail entry and serves as an example of a Standard
Problem Detail Entry registration, in the registration template format
that would be ready for registration.</t>
          <blockquote>
            <dl>
              <dt>Key Value:</dt>
              <dd>
                <t>TBD (assigned at registration)</t>
              </dd>
              <dt>Name:</dt>
              <dd>
                <t>unprocessed-coap-option</t>
              </dd>
              <dt>CDDL type:</dt>
              <dd>
                <t><tt>one-or-more&lt;uint&gt;</tt>, where
</t>
                <artwork><![CDATA[
one-or-more<T> = T / [ 2* T ]
]]></artwork>
              </dd>
              <dt>Brief description:</dt>
              <dd>
                <t>Option number(s) of CoAP option(s) that were not understood</t>
              </dd>
              <dt>Specification reference:</dt>
              <dd>
                <t><xref target="uco"/> of RFC XXXX</t>
              </dd>
            </dl>
          </blockquote>
          <t><cref anchor="to-be-removed">RFC Editor: please replace RFC XXXX with the RFC
number of this RFC and remove this note.</cref></t>
          <t>The specification of the Standard Problem Detail entry referenced by
the above registration template follows:</t>
          <t>The Standard Problem Detail entry <tt>unprocessed-coap-option</tt> provides
the option number(s) of CoAP option(s) present in the request that
could not be processed by the server.</t>
          <t>This may be a critical option that the server is unaware of, or an
option the server is aware of but could not process (and chose not
to, or was not allowed to, ignore it).</t>
          <t>The Concise Problem Details data item including this Standard
Problem Detail Entry can be used in fulfillment of the "<bcp14>SHOULD</bcp14>"
requirement in <xref section="5.4.1" sectionFormat="of" target="RFC7252"/>.</t>
          <t>Several option numbers may be given in a list (in no particular order),
without any guarantee that the list is a complete representation of
all the problems in the request (as the server might
have stopped processing already at one of the problematic options).
If an option with the given number was repeated, there is no
indication which of the values caused the error.</t>
          <t>Clients need to expect seeing options in the list they did not send
in the request; this can happen if the request traversed a proxy
that added the option but did not act on the problem details
response being returned by the origin server.</t>
          <t>Note that for a few special values of unprocessed CoAP
options (such as Accept or Proxy-Uri), there are special response
codes (4.06 Not Acceptable, 5.05 Proxying Not Supported,
respectively) to be sent instead of 4.02 Bad Option.</t>
        </section>
      </section>
      <section anchor="new-cpdk">
        <name>Custom Problem Detail Entries</name>
        <t>Applications may extend the Problem Details data item with
additional entries to convey additional, application-specific information.</t>
        <t>Such new entries are allocated in the <tt>custom-problem-detail-entries</tt> slot, and
carry a nested map specific to that application.  The map key can either be
an (absolute!) URI (under control of the entity defining this extension),
or an unsigned integer.
Only the latter needs to be registered (<xref target="iana-cpdk"/>).</t>
        <t>Within the nested map, any number of attributes can be given for a
single extension.
The semantics of each custom attribute <bcp14>MUST</bcp14> be described in the
documentation for the extension; for extensions that are registered
(i.e., are identified by an unsigned int) that documentation goes
along with the registration.</t>
        <t>The unsigned integer form allows a more compact representation.
In
exchange, authors are expected to comply with the required
registration and documentation process.
In comparison, the URI form is less space-efficient but requires no
registration.  It is therefore useful for experimenting during the development
cycle and for applications deployed in environments where producers and
consumers of Concise Problem Details are more tightly integrated.
(The URI form thus covers the potential need we might otherwise have for a "private use" range for the unsigned integers.)</t>
        <t anchor="no-dereference">Note that the URI given for the extension is for identification
purposes only and, even if dereferenceable in principle, it <bcp14>MUST NOT</bcp14> be
dereferenced in the normal course of handling problem details (i.e., outside
diagnostic/debugging procedures involving humans).</t>
        <t><xref target="fig-example-custom-with-uri"/> shows an example (in CBOR diagnostic notation)
of a custom extension using a (made-up) URI as <tt>custom-problem-detail-entries</tt> key.</t>
        <figure anchor="fig-example-custom-with-uri">
          <name>Example Extension with URI key</name>
          <artwork type="cbor-diag" align="center"><![CDATA[
{
  / title /         -1: "title of the error",
  / detail /        -2: "detailed information about the error",
  / instance /      -3: "coaps://pd.example/FA317434",
  / response-code / -4: 128, / 4.00 /

  "tag:3gpp.org,2022-03:TS29112": {
    / cause /  0: "machine-readable error cause",
    / invalidParams / 1: [
      [
        / param / "first parameter name",
        / reason / "must be a positive integer"
      ],
      [
        / param / "second parameter name"
      ]
    ],
    / supportedFeatures / 2: "d34db33f"
  }
}
]]></artwork>
        </figure>
        <t>Obviously, an SDO like 3GPP can also easily register such a custom
problem detail entry to receive a more efficient unsigned integer key;
<xref target="fig-example-custom-with-uint"/> shows how
the same example would look like using a (made-up) registered unsigned int as
<tt>custom-problem-detail-entries</tt> key:</t>
        <figure anchor="fig-example-custom-with-uint">
          <name>Example Extension with unsigned int (registered) key</name>
          <artwork type="cbor-diag" align="center"><![CDATA[
{
  / title /         -1: "title of the error",
  / detail /        -2: "detailed information about the error",
  / instance /      -3: "coaps://pd.example/FA317434",
  / response-code / -4: 128, / 4.00 /

  /4711 is made-up example key that is not actually registered:/
  4711: {
    / cause /  0: "machine-readable error cause",
    / invalidParams / 1: [
      [
        / param / "first parameter name",
        / reason / "must be a positive integer"
      ],
      [
        / param / "second parameter name"
      ]
    ],
    / supportedFeatures / 2: "d34db33f"
  }
}
]]></artwork>
        </figure>
        <t>In summary, the keys for the maps used inside Custom Problem Detail
entries are defined specifically to the identifier of that Custom Problem Detail
entry, the documentation of which defines these internal entries,
typically chosen to address a given application domain.</t>
        <t>When there is a need to evolve a Custom Problem Detail entry definition, the
"ignore-unknown rule" discussed in the introduction to
<xref target="sec-new-attributes"/> provides an easy way to include additional information.
The assumption is that this is done in a backward and forward
compatible way.
Sometimes, Custom Problem Detail entries may need to evolve in a way where
forward compatibility by applying the "ignore-unknown rule" would not
be appropriate: e.g., when adding a "must-understand" member,
which can only
be ignored at the peril of misunderstanding the Concise Problem
Details data item ("false interoperability").
In this case, a new Custom Problem Detail key can simply be
registered for this case, keeping the old key backward and
forward compatible.</t>
      </section>
    </section>
    <section anchor="privcons">
      <name>Privacy Considerations</name>
      <t>Problem details may unintentionally disclose information.
This can lead to both privacy and security problems.
See <xref target="seccons"/> for more details that apply to both domains; particular
attention needs to be given to unintentionally disclosing Personally
Identifiable Information (PII).</t>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>Concise Problem Details can contain URIs that are not intended to be
dereferenced (<xref target="no-dereference"/>).  One reason is that dereferencing
these can lead to information disclosure (tracking).
Information disclosure can also be caused by URIs in problem details
that <em>are</em> intended for dereferencing, e.g., the "instance" URI.
Implementations need to consider which component of a client should
perform the dereferencing, and which servers are trusted with serving
them.
In any case, the security considerations of <xref section="7" sectionFormat="of" target="STD66"/> apply.</t>
      <t>The security and privacy considerations outlined in <xref section="5" sectionFormat="of" target="RFC7807"/> apply in full.
While these are phrased in terms of security considerations for new
RFC 7807 problem types, they equally apply to the problem detail
entry definitions used here <xref target="sec-new-attributes"/>; in summary: both
when defining new detail entries, and when actually generating a
Concise Problem Details data item, care needs to be taken that they do
not leak sensitive information.
Entities storing or forwarding Concise Problem Details data items need
to consider whether this leads to information being transferred out of
the context within which access to sensitive information was acceptable.
See also <xref target="ignore-unknown"/> (the last paragraph of the introduction to
that section).
Privacy-sensitive information in the problem details <bcp14>SHOULD
NOT</bcp14> be obscured in ways that might lead to misclassification as
non-sensitive (e.g., by base64-encoding).</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="to-be-removed_1">RFC Editor: please replace RFC XXXX with the RFC
number of this RFC and remove this note.</cref></t>
      <section anchor="iana-spdk">
        <name>Standard Problem Detail Key registry</name>
        <!-- {{content-formats (CoAP Content-Formats)<IANA.core-parameters}} -->

<t>This specification defines a new sub-registry for Standard Problem
Detail Keys in the CoRE Parameters registry <xref target="IANA.core-parameters"/>,
with the policy "specification required" (<xref section="4.6" sectionFormat="of" target="RFC8126"/>).</t>
        <t>Each entry in the registry must include:</t>
        <dl newline="true">
          <dt>Key value:</dt>
          <dd>
            <t>a negative integer to be used as the value of the key</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>a name that could be used in implementations for the key</t>
          </dd>
          <dt>CDDL type:</dt>
          <dd>
            <t>type of the data associated with the key in CDDL notation</t>
          </dd>
          <dt>Brief description:</dt>
          <dd>
            <t>a brief description</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>(see <xref section="2.3" sectionFormat="of" target="RFC8126"/>)</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>a reference document</t>
          </dd>
        </dl>
        <t>The expert is requested to assign the shortest key values (1+0 and
1+1 encoding) to registrations that are likely to enjoy wide use and
can benefit from short encodings.</t>
        <t>To be immediately useful in CDDL and programming language contexts, a
name consists of a lower-case ASCII letter (a-z) and zero or more
additional ASCII characters that are either lower-case letters,
digits, or a hyphen-minus, i.e., it matches <tt>[a-z][-a-z0-9]*</tt>.
As with the key values, names need to be unique.</t>
        <t>The specification in the reference document needs to provide a
description of the Standard Problem Detail entry, replicating the CDDL
description in "CDDL type", and describing the semantics of the
presence of this entry and the semantics of the value given with it.</t>
        <t>Initial entries in this sub-registry are as follows:</t>
        <table anchor="spdk">
          <name>Initial Entries in the Standard Problem Detail Key registry</name>
          <thead>
            <tr>
              <th align="left">Key value</th>
              <th align="left">Name</th>
              <th align="left">CDDL Type</th>
              <th align="left">Brief description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-1</td>
              <td align="left">title</td>
              <td align="left">
                <tt>text / tag38</tt></td>
              <td align="left">short, human-readable summary of the problem shape</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">-2</td>
              <td align="left">detail</td>
              <td align="left">
                <tt>text / tag38</tt></td>
              <td align="left">human-readable explanation specific to this occurrence of the problem</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">-3</td>
              <td align="left">instance</td>
              <td align="left">
                <tt>~uri</tt></td>
              <td align="left">URI reference identifying specific occurrence of the problem</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">-4</td>
              <td align="left">response-code</td>
              <td align="left">
                <tt>uint .size 1</tt></td>
              <td align="left">CoAP response code</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">-5</td>
              <td align="left">base-uri</td>
              <td align="left">
                <tt>~uri</tt></td>
              <td align="left">Base URI</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">-6</td>
              <td align="left">base-lang</td>
              <td align="left">
                <tt>tag38-ltag</tt></td>
              <td align="left">Base language tag (see <xref target="tag38"/>)</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">-7</td>
              <td align="left">base-rtl</td>
              <td align="left">
                <tt>tag38-direction</tt></td>
              <td align="left">Base writing direction (see <xref target="tag38"/>)</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">TBD</td>
              <td align="left">unprocessed-coap-option</td>
              <td align="left">
                <tt>one-or-more&lt;uint&gt;</tt></td>
              <td align="left">Option number(s) of CoAP option(s) that were not understood</td>
              <td align="left">RFC XXXX, <xref target="uco"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-cpdk">
        <name>Custom Problem Detail Key registry</name>
        <t>This specification defines a new sub-registry for Custom Problem
Detail Keys in the CoRE Parameters registry <xref target="IANA.core-parameters"/>,
with the policy "expert review" (<xref section="4.5" sectionFormat="of" target="RFC8126"/>).</t>
        <t>The expert is instructed to attempt making the registration experience
as close to first-come-first-served as reasonably achievable, but
checking that the reference document does provide a description as set
out below.
(This requirement is a relaxed version of "specification required" as
defined in <xref section="4.6" sectionFormat="of" target="RFC8126"/>.)</t>
        <t>Each entry in the registry must include:</t>
        <dl newline="true">
          <dt>Key value:</dt>
          <dd>
            <t>an unsigned integer to be used as the value of the key</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>a name that could be used in implementations for the key</t>
          </dd>
          <dt>Brief description:</dt>
          <dd>
            <t>a brief description</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>(see <xref section="2.3" sectionFormat="of" target="RFC8126"/>)</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>a reference document that provides a description of the map,
including a CDDL description, that describes all inside keys and
values</t>
          </dd>
        </dl>
        <t>The expert is requested to assign the shortest key values (1+0 and
1+1 encoding) to registrations that are likely to enjoy wide use and
can benefit from short encodings.</t>
        <t>To be immediately useful in CDDL and programming language contexts, a
name consists of a lower-case ASCII letter (a-z) and zero or more
additional ASCII characters that are either lower-case letters,
digits, or a hyphen-minus, i.e., it matches <tt>[a-z][-a-z0-9]*</tt>.
As with the key values, names need to be unique.</t>
        <t>Initial entries in this sub-registry are as follows:</t>
        <table anchor="cpdk">
          <name>Initial Entries in the Custom Problem Detail Key registry</name>
          <thead>
            <tr>
              <th align="left">Key value</th>
              <th align="left">Name</th>
              <th align="left">Brief description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">7807</td>
              <td align="left">tunnel-7807</td>
              <td align="left">Carry RFC 7807 problem details in a Concise Problem Details data item</td>
              <td align="left">RFC XXXX, <xref target="comp7807"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="media-type">
        <name>Media Type</name>
        <t>IANA is requested to add the following Media-Type to the "Media Types"
registry <xref target="IANA.media-types"/>.</t>
        <table align="left" anchor="new-media-type">
          <name>New Media Type application/concise-problem-details+cbor</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">concise-problem-details+cbor</td>
              <td align="left">application/concise-problem-details+cbor</td>
              <td align="left">RFC XXXX, <xref target="media-type"/></td>
            </tr>
          </tbody>
        </table>
        <dl spacing="compact">
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>concise-problem-details+cbor</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary (CBOR data item)</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t><xref target="seccons"/> of RFC XXXX</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t><xref target="media-type"/> of RFC XXXX</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Clients and servers in the Internet of Things</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>The syntax and semantics of fragment identifiers is as specified for
"application/cbor".  (At publication of RFC XXXX, there is no
fragment identification syntax defined for "application/cbor".)</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>CoRE WG mailing list (core@ietf.org),
or IETF Applications and Real-Time Area (art@ietf.org)</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Author/Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Provisional registration:</dt>
          <dd>
            <t>no</t>
          </dd>
        </dl>
      </section>
      <section anchor="content-format">
        <name>Content-Format</name>
        <t>IANA is requested to register a Content-Format number in the
<xref section="&quot;CoAP Content-Formats&quot;" relative="#content-formats" sectionFormat="bare" target="IANA.core-parameters"/>
sub-registry, within the "Constrained RESTful Environments (CoRE)
Parameters" Registry <xref target="IANA.core-parameters"/>, as follows:</t>
        <table align="left">
          <name>New Content-Format</name>
          <thead>
            <tr>
              <th align="left">Content-Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/concise-problem-details+cbor</td>
              <td align="left">-</td>
              <td align="left">TBD1</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>TBD1 is to be assigned from the space 256..999.</t>
        <t>In the registry as defined by <xref section="12.3" sectionFormat="of" target="RFC7252"/> at the time of
writing, the column "Content-Type" is called "Media type" and the
column "Content Coding" is called "Encoding". <cref anchor="remove">This paragraph to be removed by RFC editor.</cref></t>
      </section>
      <section anchor="iana-tag38">
        <name>CBOR Tag 38</name>
        <t>In the registry "<xref section="CBOR Tags" relative="#cbor-tags" sectionFormat="bare" target="IANA.cbor-tags"/>" <xref target="IANA.cbor-tags"/>,
IANA has registered CBOR Tag 38.
IANA is requested to replace the reference for this registration with
<xref target="tag38"/>, RFC XXXX.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="STD94" target="https://www.rfc-editor.org/info/rfc8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <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>
        <reference anchor="STD66" target="https://www.rfc-editor.org/info/rfc3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee">
              <organization/>
            </author>
            <author fullname="R. Fielding" initials="R." surname="Fielding">
              <organization/>
            </author>
            <author fullname="L. Masinter" initials="L." surname="Masinter">
              <organization/>
            </author>
            <date month="January" year="2005"/>
            <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="RFC7252" target="https://www.rfc-editor.org/info/rfc7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7807" target="https://www.rfc-editor.org/info/rfc7807">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <author fullname="E. Wilde" initials="E." surname="Wilde">
              <organization/>
            </author>
            <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="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization abbrev="IANA">Internet Assigned Numbers Authority</organization>
            </author>
            <date day="19" month="September" year="2013"/>
          </front>
        </reference>
        <reference anchor="RFC5646" target="https://www.rfc-editor.org/info/rfc5646">
          <front>
            <title>Tags for Identifying Languages</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips">
              <organization/>
            </author>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis">
              <organization/>
            </author>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object.  It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange.  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="47"/>
          <seriesInfo name="RFC" value="5646"/>
          <seriesInfo name="DOI" value="10.17487/RFC5646"/>
        </reference>
        <reference anchor="RFC4647" target="https://www.rfc-editor.org/info/rfc4647">
          <front>
            <title>Matching of Language Tags</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips">
              <organization/>
            </author>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis">
              <organization/>
            </author>
            <date month="September" year="2006"/>
            <abstract>
              <t>This document describes a syntax, called a "language-range", for specifying items in a user's list of language preferences.  It also describes different mechanisms for comparing and matching these to language tags.  Two kinds of matching mechanisms, filtering and lookup, are defined.  Filtering produces a (potentially empty) set of language tags, whereas lookup produces a single language tag. Possible applications include language negotiation or content selection.  This document, in combination with RFC 4646, replaces RFC 3066, which replaced RFC 1766.  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="47"/>
          <seriesInfo name="RFC" value="4647"/>
          <seriesInfo name="DOI" value="10.17487/RFC4647"/>
        </reference>
        <reference anchor="RFC8610" target="https://www.rfc-editor.org/info/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">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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="RFC9165" target="https://www.rfc-editor.org/info/rfc9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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: , , and  for the construction of constants; / for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and 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="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <author fullname="T. Narten" initials="T." surname="Narten">
              <organization/>
            </author>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <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="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization abbrev="IANA">Internet Assigned Numbers Authority</organization>
            </author>
            <date day="8" month="June" year="2012"/>
          </front>
        </reference>
        <reference anchor="IANA.media-types" target="https://www.iana.org/assignments/provisional-standard-media-types">
          <front>
            <title>Provisional Standard Media Type Registry</title>
            <author>
              <organization abbrev="IANA">Internet Assigned Numbers Authority</organization>
            </author>
            <date day="20" month="July" year="2012"/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC4648" target="https://www.rfc-editor.org/info/rfc4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson">
              <organization/>
            </author>
            <date month="October" year="2006"/>
            <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="I-D.ietf-httpapi-rfc7807bis" target="https://www.ietf.org/archive/id/draft-ietf-httpapi-rfc7807bis-03.txt">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="Mark Nottingham">
	 </author>
            <author fullname="Erik Wilde">
	 </author>
            <author fullname="Sanjay Dalal">
	 </author>
            <date day="25" month="May" year="2022"/>
            <abstract>
              <t>   This document defines a "problem detail" to carry machine-readable
   details of errors in HTTP response content and/or fields to avoid the
   need to define new error response formats for HTTP APIs.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/ietf-wg-httpapi/rfc7807bis.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-rfc7807bis-03"/>
        </reference>
        <reference anchor="RDF" target="http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/">
          <front>
            <title>RDF 1.1 Concepts and Abstract Syntax</title>
            <author initials="R." surname="Cyganiak" fullname="Richard Cyganiak">
              <organization/>
            </author>
            <author initials="D." surname="Wood" fullname="David Wood">
              <organization/>
            </author>
            <author initials="M." surname="Lanthaler" fullname="Markus Lanthaler">
              <organization/>
            </author>
            <date year="2014" month="February" day="25"/>
          </front>
          <refcontent>W3C Recommendation</refcontent>
        </reference>
        <reference anchor="RFC6082" target="https://www.rfc-editor.org/info/rfc6082">
          <front>
            <title>Deprecating Unicode Language Tag Characters: RFC 2482 is Historic</title>
            <author fullname="K. Whistler" initials="K." surname="Whistler">
              <organization/>
            </author>
            <author fullname="G. Adams" initials="G." surname="Adams">
              <organization/>
            </author>
            <author fullname="M. Duerst" initials="M." surname="Duerst">
              <organization/>
            </author>
            <author fullname="R. Presuhn" initials="R." role="editor" surname="Presuhn">
              <organization/>
            </author>
            <author fullname="J. Klensin" initials="J." surname="Klensin">
              <organization/>
            </author>
            <date month="November" year="2010"/>
            <abstract>
              <t>RFC 2482, "Language Tagging in Unicode Plain Text", describes a mechanism for using special Unicode language tag characters to identify languages when needed without more general markup such as that provided by XML.  The Unicode Consortium has deprecated that facility and strongly recommends against its use.  RFC 2482 has been moved to Historic status to reduce the possibility that Internet implementers would consider that system an appropriate mechanism for identifying languages.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6082"/>
          <seriesInfo name="DOI" value="10.17487/RFC6082"/>
        </reference>
        <reference anchor="Unicode-14.0.0" target="https://www.unicode.org/versions/Unicode14.0.0/">
          <front>
            <title>The Unicode Standard, Version 14.0.0</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2021" month="September"/>
          </front>
          <seriesInfo name="ISBN" value="978-1-936213-29-0"/>
          <annotation>Note that while this document references a version that was recent at the time of writing, the statements made based on this version are expected to remain valid for future versions.</annotation>
          <refcontent>Mountain View: The Unicode Consortium</refcontent>
        </reference>
        <reference anchor="Unicode-14.0.0-bidi" target="https://www.unicode.org/reports/tr9/#Markup_And_Formatting">
          <front>
            <title>Unicode® Standard Annex #9 --- Unicode Bidirectional Algorithm</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2021" month="August" day="27"/>
          </front>
          <annotation>Note that while this document references a version that was recent at the time of writing, the statements made based on this version are expected to remain valid for future versions.</annotation>
        </reference>
      </references>
    </references>
    <section anchor="tag38">
      <name>Language-Tagged Strings</name>
      <t>This appendix serves as the archival documentation for CBOR Tag 38, a
tag for serializing language-tagged text strings in CBOR.
The text of this appendix is adapted from the specification text
supplied for its initial registration.
It has been extended to allow supplementing the language tag by a
direction indication.</t>
      <section anchor="introduction-1">
        <name>Introduction</name>
        <t>In some cases it is useful to specify the natural language of a text
string.  This specification defines a tag that does just that.  One
technology that supports language-tagged strings is the Resource
Description Framework (RDF) <xref target="RDF"/>.</t>
      </section>
      <section anchor="detailed-semantics">
        <name>Detailed Semantics</name>
        <t>A language-tagged string in CBOR has the tag 38 and consists of an array
with a length of 2 or 3.</t>
        <t>The first element is a well-formed language tag under Best Current
Practice 47 (<xref target="RFC5646"/> and <xref target="RFC4647"/>), represented as a UTF-8 text
string (major type 3).</t>
        <t>The second element is an arbitrary UTF-8 text string (major type
3). Both the language tag and the arbitrary string can optionally be
annotated with CBOR tags; this is not shown in the CDDL below.</t>
        <t>The optional third element, if present, represents a ternary value that
indicates a direction, as follows:</t>
        <ul spacing="normal">
          <li>
            <tt>false</tt>: left-to-right direction ("ltr").
The text is expected to be displayed with left-to-right base
direction if standalone, and isolated with left-to-right direction
(as if enclosed in LRI ... PDI or equivalent, see <xref target="Unicode-14.0.0-bidi"/>) in the
context of a longer string or text.</li>
          <li>
            <tt>true</tt>: right-to-left direction ("rtl").
The text is expected to be displayed with right-to-left base
direction if standalone, and isolated with right-to-left direction
(as if enclosed in RLI ... PDI or equivalent, see <xref target="Unicode-14.0.0-bidi"/>) in the context
of a longer string or text.</li>
          <li>
            <tt>null</tt> indicates that no indication is made about the direction
("auto"), enabling an internationalization library to make an auto-detection
decision such as treating the string as if enclosed in FSI ... PDI
or equivalent, see <xref target="Unicode-14.0.0-bidi"/>.</li>
        </ul>
        <t>If the third element is absent, directionality context may be applying
(e.g., base directionality information for an entire CBOR message or
part thereof).  If there is no directionality context applying, the
default interpretation is the same as for <tt>null</tt> ("auto").</t>
        <t>In CDDL:</t>
        <sourcecode type="cddl"><![CDATA[
tag38 = #6.38([tag38-ltag, text, ?tag38-direction])
tag38-ltag = text .regexp "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"
tag38-direction = &(ltr: false, rtl: true, auto: null)
]]></sourcecode>
        <!-- RUBY_THREAD_VM_STACK_SIZE=5000000 cddl ... -->

<t>NOTE: Language tags of any combination of case are allowed. But
<xref section="2.1.1" sectionFormat="of" target="RFC5646"/>, part of Best Current Practice 47,
recommends a case combination for language tags that encoders that
support tag 38 may wish to follow when generating language tags.</t>
        <t>Data items with tag 38 that do not meet the criteria above are not valid
(see <xref section="5.3.2" sectionFormat="of" target="STD94"/>).</t>
        <t>NOTE: The Unicode Standard <xref target="Unicode-14.0.0"/> includes a set of characters
designed for tagging text (including language tagging), in the range
U+E0000 to U+E007F. Although many applications, including RDF,
do not disallow these characters in text strings, the Unicode Consortium
has deprecated these characters and recommends annotating language via a
higher-level protocol instead. See the section "Deprecated Tag
Characters" in Section 23.9 of <xref target="Unicode-14.0.0"/>, as well as <xref target="RFC6082"/>.</t>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>Examples in this section are given in CBOR diagnostic notation first and then
as a pretty-printed hexadecimal representation of the encoded item.</t>
        <t>The following example shows how the English-language string "Hello" is
represented.</t>
        <sourcecode type="cbor-diag"><![CDATA[
38(["en", "Hello"])
]]></sourcecode>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 26               # tag(38)
   82               # array(2)
      62            # text(2)
         656E       # "en"
      65            # text(5)
         48656C6C6F # "Hello"
]]></sourcecode>
        <t>The following example shows how the French-language string "Bonjour" is
represented.</t>
        <sourcecode type="cbor-diag"><![CDATA[
38(["fr", "Bonjour"])
]]></sourcecode>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 26                   # tag(38)
   82                   # array(2)
      62                # text(2)
         6672           # "fr"
      67                # text(7)
         426F6E6A6F7572 # "Bonjour"
]]></sourcecode>
        <t>The following example shows how the Hebrew-language string
<u>שלום</u> is represented.
Note the <tt>rtl</tt> direction expressed by setting the third element in the array to "true".</t>
        <sourcecode type="cbor-diag"><![CDATA[
38(["he", "שלום", true])
]]></sourcecode>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 26                     # tag(38)
   83                     # array(3)
      62                  # text(2)
         6865             # "he"
      68                  # text(8)
         D7A9D79CD795D79D # "שלום"
      F5                  # primitive(21)
]]></sourcecode>
      </section>
    </section>
    <section anchor="comp7807">
      <name>Interworking with RFC 7807</name>
      <t>On certain occasions, it will be necessary to carry ("tunnel")
<xref target="RFC7807"/> problem details in a Concise Problem Details data item.</t>
      <t>This appendix defines a Custom Problem Details entry for that purpose.
This is assigned Custom Problem Detail key 7807 in <xref target="iana-cpdk"/>.
Its structure is:</t>
      <sourcecode type="cddl"><![CDATA[
tunnel-7807 = {
  ? &(type: 0) => ~uri
  ? &(status: 1) => 0..999
  * text => any
}
]]></sourcecode>
      <t>To carry an <xref target="RFC7807"/> problem details JSON object in a Concise Problem
Details data item, first convert the JSON object to CBOR as per <xref section="6.2" sectionFormat="of" target="STD94"/>.  Create an empty Concise Problem Details data item.</t>
      <t>Move the values for "title", "detail", and "instance", if present,
from the <xref target="RFC7807"/> problem details to the equivalent Standard Problem
Detail entries.
Create a Custom Problem Details entry with key 7807.
Move the values for "type" and "status", if present, to the equivalent
keys 0 and 1 of the Custom Problem Details entry.
Move all remaining key/value pairs (additional members as per <xref section="3.2" sectionFormat="of" target="RFC7807"/>) in the converted <xref target="RFC7807"/> problem
details object to the Custom Problem Details map unchanged.</t>
      <t>The inverse direction, carrying Concise Problem Details in a Problem
Details JSON object requires the additional support provided by
<xref target="I-D.ietf-httpapi-rfc7807bis"/>, which is planned to create the HTTP Problem Types
Registry.  An HTTP Problem Type can then be registered that extracts
top-level items from the Concise Problem Details data item in a similar way
to the conversion described above, and which carries the rest of the
Concise Problem Details data item in an additional member via base64url
encoding without padding (<xref section="5" sectionFormat="of" target="RFC4648"/>).  Details can be defined
in a separate document when the work on <xref target="I-D.ietf-httpapi-rfc7807bis"/> is completed.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t><contact fullname="Mark Nottingham"/> and <contact fullname="Erik Wilde"/>, authors of RFC 7807.  <contact fullname="Klaus Hartke"/> and <contact fullname="Jaime Jiménez"/>, co-authors of an earlier generation of this
specification.  <contact fullname="Christian Amsüss"/>, <contact fullname="Marco Tiloca"/>, <contact fullname="Ari Keränen"/>
and <contact fullname="Michael Richardson"/> for review and comments on this document.
<contact fullname="Francesca Palombini"/> for her review (and support) as responsible AD,
and <contact fullname="Joel Jaeggli"/> for his OPSDIR review, both of which brought
significant additional considerations to this document.</t>
      <t>For <xref target="tag38"/>, <contact fullname="John Cowan"/> and <contact fullname="Doug Ewell"/> are also to be acknowledged.
The content of an earlier version of this appendix was also discussed
in the "apps-discuss at ietf.org" and "ltru at ietf.org" mailing
lists.
More recently, the authors initiated a discussion about the handling
of writing direction information in conjunction with language tags.
That led to discussions within the W3C Internationalization Core
Working Group.
The authors would like to acknowledge that cross-organization
cooperation and particular contributions from <contact fullname="John Klensin"/> and
<contact fullname="Addison Phillips"/>, and specific text proposals by <contact fullname="Martin Dürst"/>.</t>
      <!--  LocalWords:  dereferencing dereferenced dereferenceable
 -->

</section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="P." surname="Occil" fullname="Peter Occil">
        <organization/>
        <address>
          <email>poccil14 at gmail dot com</email>
          <uri>http://peteroupc.github.io/CBOR/</uri>
        </address>
      </contact>
      <t>Peter defined CBOR tag 38, basis of <xref target="tag38"/>.</t>
      <contact initials="C." surname="Amsüss" fullname="Christian Amsüss">
        <organization/>
        <address>
          <email>christian@amsuess.com</email>
        </address>
      </contact>
      <t>Christian contributed what became <xref target="uco"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
