<?xml version='1.0' encoding='utf-8'?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc iprnotified="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" consensus="true" docName="draft-ietf-regext-rdap-versioning-01" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" sortRefs="true" symRefs="true" version="3">
  <front>
    <title abbrev="Versioning in RDAP">Versioning in the Registration Data Access Protocol
    (RDAP)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-regext-rdap-versioning-01"/>
    <author fullname="James Gould" initials="J.G" surname="Gould">
      <organization>VeriSign, Inc.</organization>
      <address>
        <postal>
          <street>12061 Bluemont Way</street>
          <city>Reston</city>
          <region>VA</region>
          <code>20190</code>
          <country>US</country>
        </postal>
        <email>jgould@verisign.com</email>
        <uri>http://www.verisigninc.com</uri>
      </address>
    </author>
    <author fullname="Daniel Keathley" initials="D.K" surname="Keathley">
      <organization>VeriSign, Inc.</organization>
      <address>
        <postal>
          <street>12061 Bluemont Way</street>
          <city>Reston</city>
          <region>VA</region>
          <code>20190</code>
          <country>US</country>
        </postal>
        <email>dkeathley@verisign.com</email>
        <uri>http://www.verisigninc.com</uri>
      </address>
    </author>
    <author fullname="Mario Loffredo" initials="M." surname="Loffredo">
      <organization>IIT-CNR/Registro.it</organization>
      <address>
        <postal>
          <street>Via Moruzzi,1</street>
          <city>Pisa</city>
          <country>IT</country>
          <code>56124</code>
        </postal>
        <email>mario.loffredo@iit.cnr.it</email>
        <uri>http://www.iit.cnr.it</uri>
      </address>
    </author>

    <keyword>Version</keyword>
    <keyword>Versioning</keyword>
    <keyword>Extension</keyword>
    <abstract>
      <t>This document describes an RDAP extension for an extensible set of versioning types with 
      the features of identifying the RDAP extension versions supported by the server, the RDAP extension versions included in an RDAP
response, and enabling a client to specify the desired RDAP extension versions to include in the RDAP query and RDAP response.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>RDAP supports identifying the RDAP extensions included in an RDAP response
  using the RDAP Conformance data structure, defined in <xref target="RFC9083" section="4.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9083#section-4.1" derivedContent="RFC9083"/>.
  The RDAP Conformance values are identifiers with no standard mechanism to support structured, machine-parseable version signaling by the server.  
  This document describes an RDAP extension for an extensible set of versioning types, with the pre-defined versioning types of <xref target="opaque-versioning" format="default">Opaque Versioning</xref> and <xref target="semantic-versioning" format="default">Semantic Versioning</xref>, that have the following features:</t>
    <ul>
      <li>Enabling a client to specify the desired RDAP extension versions to include in the RDAP query and RDAP response, using the <xref target="extension-versioning-request" format="default">Extension Versioning Request</xref>.  The client can specify the desired RDAP extension versions to include in the RDAP query and RDAP response with
        the "versioning" query parameter or the <xref target="I-D.ietf-regext-rdap-x-media-type" format="default">RDAP-X media type "extensions" parameter</xref>.</li>
      <li>Identifying the RDAP extension versions supported by the server.  The RDAP extension versions supported by the server is returned in an extension to the RDAP help response, defined
        in <xref target="RFC9083" section="7" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9083#section-7" derivedContent="RFC9083"/>, using
        the <xref target="versioning-help-member" format="default">"versioning-help" member</xref>.  The <xref target="versioning-help-member" format="default">"versioning-help" member</xref> includes the list of supported extensions and additional extension information, such the available set of extension versions and the extension version document.</li>
      <li>Identifying the RDAP extension versions included in an RDAP response.   The RDAP extension versions included in an RDAP response are identified using the <xref target="versioning-member" format="default">"versioning" member</xref>.
        The <xref target="versioning-member" format="default">"versioning" member</xref> includes a list of extension versions included in the RDAP response that extends the extension identifiers in the RDAP Conformance to include versioning information.</li>
    </ul>
  <t>There are two predefined versioning types that include:</t>
    <ul>
      <li>Opaque Versioning, as defined in Section 8 of <xref target="I-D.ietf-regext-rdap-extensions" format="default"/>, to support RDAP extensions that are identified using the Extension Identifier included in the RDAP Conformance.</li> 
      <li>Semantic Versioning to support RDAP extensions that include a major and minor version with the Extension Identifier.</li>
    </ul>
  <t>The versioning types are registered in the JSON Values Registry, where new versioning types can be defined and registered in the future.  The specification of 
  a versioning type defines how the base set of features of the versioning extension are used for the versioning type.</t>
    </section>
    <section anchor="conventions" numbered="true" toc="default">
      <name>Conventions Used in This Document</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
      NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
      "MAY", and "OPTIONAL" in this document are to be interpreted as
      described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/>
      when, and only when, they
      appear in all capitals, as shown here.</t>
    </section>
    <section anchor="versioning-rdap-features" numbered="true" toc="default">
      <name>Versioning RDAP Features</name>
      <t>The extension includes a base set of features that can be used for any defined versioning type.  The features enable the client to discover what extension versions is supported by the server, 
      enable the client to specify what extension versions are desired in an RDAP query and RDAP response, and provide the extension versions included in the RDAP response by the server.  Examples are provided using the two predefined 
      versioning types in <xref target="versioning-types" format="default"/>.  The format of the <xref target="extension-version-identifier" format="default">Extension Version Indentifier</xref> is general enough to support 
      a broad range of future versioning types.  
      </t>
      <section anchor="extension-version-identifier" numbered="true" toc="default">
        <name>Extension Version Identifier</name>
        <t>The Extension Version Identifier adds support for versioning to the Extension Identifer in <xref target="RFC7480" format="default"/> that is returned in the RDAP Conformance data structure of <xref target="RFC9083" format="default"/>.
        Each versioning type will define the scheme and the meaning of the "versioning" <xref target="RFC5234" format="default">Augmented Backus-Naur Form (ABNF) grammar</xref> rule.  
        The Extension Version Identifier is used to uniquely identify a version of an RDAP extension in the <xref target="extension-versioning-request" format="default">Extension Versioning Request</xref>, the members of the <xref target="versioning-help-member" format="default">&quot;versioning-help&quot; Member</xref>, and 
        the members of the <xref target="versioning-member" format="default">&quot;versioning&quot; Member</xref>.</t>
        <figure anchor="extension-version-identifier-abnf" align="left" suppress-title="false">
        <name>Extension Version Identifier ABNF</name>
        <sourcecode type="abnf">
extension-version-identifier = identifier versioning
identifier = ALPHA *( ALPHA / DIGIT / "_") ; Extension Identifer
versioning = ["-" 1*VCHAR]
        </sourcecode>
        </figure>
        <t>Example Extension Version Identifiers:</t>
         <dl newline="true" indent="4">
           <dt>"versioning"</dt>
           <dd>Opaque versioning of the "versioning" extension.</dd>
           <dt>"versioning-0.2"</dt>
           <dd>Semantic versioning of the "versioning" extension.</dd>
           <dt>"semantic_ext1-1.0"</dt>
           <dd>Semantic versioning of the "semantic_ext1" extension.</dd>
           <dt>"opaque_ext1"</dt>
           <dd>Opaque versioning of the "opaque_ext1" extension.</dd>
           <dt>"dated_ext1-20231129"</dt>
           <dd>Use of potential dated versioning with the format YYYYMMDD.</dd>
         </dl>
      </section>
      <section anchor="extension-versioning-request" numbered="true" toc="default">
        <name>Extension Versioning Request</name>
        <t>The client MAY provide an Extension Versioning Request to indicate the desired extension versions to include in the RDAP query and RDAP response.  There are two Extension Versioning Request methods with the <xref target="versioning-query-parameter">Versioning Query Parameter</xref> 
        and the <xref target="versioning-extensions-media-type-parameter" format="default">Versioning Extensions Media Type Parameter</xref>.  The server MUST support both methods of Extension Versioning Request methods and the client MUST use at most a single Extension Versioning Request method in the RDAP query.</t>   
        <t>The Extension Versioning Request provides a hint from the client what extension versions to include in the RDAP query by the client and RDAP response by the server.  
        It is up to server policy what extension versions to support in the RDAP query and the extension versions to include in the RDAP response, based 
          on the supported set of extensions, the default extension versions, and the hint provided by the client using the Extension Versioning Request.</t>
      <section anchor="versioning-query-parameter" numbered="true" toc="default">
        <name>Versioning Query Parameter</name>
          <t>The "versioning" query parameter MAY be used with RDAP queries to specify the RDAP extension versions to include in the RDAP query and the RDAP response.  
          The "versioning" query parameter is a list of one or more Extension Version Identifiers, as defined in <xref target="extension-version-identifier" format="default"/>, seperated by commas.
          The ABNF format for the "versioning" query parameter, using the "extension-version-identifier" rule from
          <xref target="extension-version-identifier-abnf" format="default"/>, is:</t>
        <figure anchor="versioning-query-parameter-abnf" align="left" suppress-title="false">
          <name>Versioning Query Parameter ABNF</name>
    <sourcecode type="abnf">
versioning = "versioning=" extension-version-identifier 
  *("," extension-version-identifier)
    </sourcecode>
        </figure>
        <t>Example RDAP queries using the "versioning" query parameter:</t>
        <dl newline="true" indent="4">
          <dt>https://example.com/rdap/help?versioning=versioning-0.2</dt>
          <dd>Help query using extension "versioning-0.2".  The response can be found in <xref target="help-response-default"/>.</dd>
          <dt>https://example.com/rdap/domain/versioning.example?versioning=semantic_ext1-0.1</dt>
          <dd>Domain query using extension "semantic_ext1-0.1".   The response can be found in <xref target="domain-response-semantic_ext1-0.1"/>.</dd>
          <dt>https://example.com/rdap/domain/versioning.example?versioning=semantic_ext1-0.1,opaque_ext2</dt>
          <dd>Domain query using extensions "semantic_ext1-0.1" and "opaque_ext2".   The response can be found in <xref target="domain-response-semantic_ext1-0.1-and-opaque_ext2"/>.</dd>
        </dl>
      </section>
      <section anchor="versioning-extensions-media-type-parameter" numbered="true" toc="default">
        <name>Versioning Extensions Media Type Parameter</name>
        <t>The <xref target="I-D.ietf-regext-rdap-x-media-type" format="default">Extensions Media Type Parameter</xref> MAY be used with RDAP queries to specify the RDAP extension versions to include in the RDAP query and the RDAP response.  
          The RDAP extensions included in the "extensions" parameter are Extension Version Identifiers, as defined in <xref target="extension-version-identifier" format="default"/>.     
          The "extensions" Versioning Extensions Type Parameter is a list of one or more Extension Version Identifiers, as defined in <xref target="extension-version-identifier" format="default"/>, seperated by whitespace (%x20).  
          The use of the "-" character in the <xref target="extension-version-identifier-abnf" format="default">Extension Version Identifier ABNF</xref> ensures that an Extension Version Identifier with a non-empty "versioning" ABNF rule will not conflict with 
          an Extension Identifier.  The ABNF format for the "extensions" parameter, using the "extension-version-identifier" rule from
          <xref target="extension-version-identifier-abnf" format="default"/>, is:</t>     
        <figure anchor="versioning-extensions-media-type-parameter-abnf" align="left" suppress-title="false">
          <name>Versioning Extensions Media Type Parameter ABNF</name>
    <sourcecode type="abnf">
    extensions = "extensions=" 
      DQUOTE 
      extension-version-identifier 
      *(SP extension-version-identifier) 
      DQUOTE
    </sourcecode>
        </figure>
        <t>Example Versioning Extensions Media Type Parameter values:</t>
        <dl newline="true" indent="4">
          <dt>extensions="versioning-0.2"</dt>
          <dd>Versioning Extensions Media Type Parameter for the "versioning" extension with the semantic versioning of "versioning-0.2".  
          The response for the /help query "https://example.com/rdap/help" with the Versioning Extensions Media Type Parameter value can be found in <xref target="help-response-default"/>.</dd>
          <dt>extensions="semantic_ext1-0.1"</dt>
          <dd>Versioning Extensions Media Type Parameter for the "semantic_ext1" extension with the semantic versioning of "semantic_ext1-0.1".  The domain query "https://example.com/rdap/domain/versioning.example" response with the Versioning Extensions Media Type Parameter value can be found in <xref target="domain-response-semantic_ext1-0.1"/>.</dd>
          <dt>extensions="semantic_ext1-0.1 opaque_ext2"</dt>
          <dd>Versioning Extensions Media Type Parameter for the "semantic_ext1" and "opaque_ext2" extensions with the semantic versioning of "semantic_ext1-0.1" and opaque versioning of "opaque_ext2", respectively.  The domain query "https://example.com/rdap/domain/versioning.example" response with the Versioning Extensions Media Type Parameter value can be found in <xref target="domain-response-semantic_ext1-0.1"/>.</dd>
       </dl>

      </section>
        <section anchor="versioning-rdap-response" numbered="true" toc="default">
          <name>Versioning RDAP Response</name>
          <section anchor="rdap-conformance" numbered="true" toc="default">
            <name>RDAP Conformance</name>
            <t>RDAP responses that contain values described in this document MUST
              indicate conformance with this specification by including an
              &quot;rdapConformance&quot; (<xref target="RFC9083" format="default"/>) value of &quot;versioning&quot;.
              The &quot;versioning&quot; extension identifier is described in <xref target="rdap-extensions-registry" format="default"/>.</t>
              <t>Example &quot;rdapConformance&quot; member with the versioning extension:</t>
    <figure anchor="rdapConformance-with-versioning" align="left" suppress-title="false">
      <name>&quot;rdapConformance&quot; with Versioning Extension</name>
      <sourcecode type="json" markers="false">
    "rdapConformance": [
      "rdap_level_0",
      "versioning"
    ]
      </sourcecode>
    </figure>
     </section>
         </section>
        <section anchor="versioning-help-member" numbered="true" toc="default">
          <name>&quot;versioning-help&quot; Member</name>
          <t>The &quot;versioning-help&quot; member MUST be added to the response of a /help query, defined in <xref target="RFC9082" format="default"/>, to indicate the extension versions that are supported by the server.  
          This extends the information provided by the guidance in Section 7 of <xref target="I-D.ietf-regext-rdap-extensions" format="default"/>, with inclusion of the all supported 
          extension identifiers in the RDAP Conformance to the response of a /help query.  
            The &quot;versioning-help&quot; member contains an array of extension objects with the following child members:</t>
          <dl newline="false" indent="4">
            <dt>"extension":</dt>
            <dd>REQUIRED Extension Identifer, defined in <xref target="RFC7480" format="default"/>, and returned in the "rdapConformance" data structure of <xref target="RFC9083" format="default"/>.  An example is the "versioning" extension identifier.</dd>
            <dt>"type":</dt>
            <dd>REQUIRED versioning type used by the extension.  The versioning types are registered using the "versioning" type in the JSON Values Registry.  
            There are two predefined versioning types, including "opaque" (see <xref target="opaque-versioning" format="default">Opaque Versioning</xref>) and 
            "semantic" (see <xref target="semantic-versioning" format="default">Semantic Versioning</xref>)</dd>
            <dt>"versions":</dt>
            <dd>
                <t>An array of extension version objects with the following child members:</t>
                <dl newline="false" indent="4">
                  <dt>"version:"</dt>
                  <dd>The Extension Version Identifier, defined in <xref target="extension-version-identifier" format="default"/>.
                  An example is the "versioning-0.2" extension version identifier.</dd>
                  <dt>"default:"</dt>
                  <dd>OPTIONAL boolean value indicating which of the extension version objects is the default returned by the server
                    when the client doesn't specify the version using the "versioning" query parameter, defined in <xref target="extension-versioning-request" format="default"/>.
                    When there is a single extension version object, then the "default" member value is true by default.  When there is more than one extension version object,
                    the server MUST include only one extension version object with the "default" member set to true, and the remaining extension version objects "default" member value
                    is false by default.</dd>
                  <dt>"start:"</dt>
                  <dd>OPTIONAL date and time that the extension version will be supported.  When the member is not included, the extension version object is supported.
                    Once the date and time has passed, the "start" member MUST be removed.  The syntax for the date and time is defined in <xref target="RFC3339" format="default"/>.</dd>
                  <dt>"end:"</dt>
                  <dd>OPTIONAL date and time that the extension version will stop being supported.  When the member is not included, the extension version object has no planned support expiry.
                    Once the date and time has passed, the extension version object MUST be removed and the extension object MUST be removed if the last extension version object is removed.
                    The syntax for the date and time is defined in <xref target="RFC3339" format="default"/>.</dd>
                  <dt>"links:"</dt>
                  <dd>
                      <t>OPTIONAL "links" array to extension version documentation.  The relationship of these links is defined by the IANA registry described in <xref target="RFC8288" format="default"/>.
                      The JSON name/values of "rel", "href", "hreflang", "title", "media", and "type" correspond to values found in <xref target="RFC8288" section="3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8288#section-3" derivedContent="RFC8288"/>.
                      The "value", "rel", and "href" JSON values MUST be specified.  All other JSON values are OPTIONAL.</t>
                      <t>Example "links" member for the "ext2-0.1" extension version identifier:</t>
                      <figure anchor="links-example" align="left" suppress-title="false">
                        <name>Example of "links" Member</name>
                        <sourcecode type="json" markers="false">
  "links": [
    {
      "value": "https://ext2.example/ext2-01.txt",
      "rel": "describedby",
      "href": "https://ext2.example/ext2-01.txt",
      "type": "text/plain"
    }
  ]
                        </sourcecode>
                      </figure>
                  </dd>
                </dl>
            </dd>
          </dl>

  <t>Example response to /help query with "versioning-help" and "versioning" members and no client specified versioning
    in the /help query "https://example.com/rdap/help":</t>
  <figure anchor="help-response-default" align="left" suppress-title="false">
    <name>Response to /help Query with No Client Specified Versioning</name>
    <sourcecode type="json" markers="false">
{
  "rdapConformance": [
    "rdap_level_0",
    "versioning",
    "opaque_ext1",
    "opaque_ext2",
    "semantic_ext1",
    "semantic_ext2",
    "semantic_ext3"
  ],
  "versioning-help": [
    {
      "extension": "versioning",
      "type": "semantic",
      "versions": [
        {
          "version": "versioning-0.1"
        },
        {
          "version": "versioning-0.2",
          "default": true
        }
      ]
    },
    {
      "extension": "opaque_ext1",
      "type": "opaque",
      "versions": [
        {
          "version": "opaque_ext1"
          "default": true
        }
      ],
      "end": "2023-12-31T23:59:59Z"
    },
    {
      "extension": "opaque_ext2",
      "type": "opaque",
      "versions": [
        {
          "version": "opaque_ext2"
          "default": true
        }
      ],
      "links": [
        {
          "value": "https://ext2.example/paque_ext2.txt",
          "rel": "describedby",
          "href": "https://ext2.example/paque_ext2.txt",
          "type": "text/plain"
        }
      ]
    },
    {
      "extension": "semantic_ext1",
      "type": "semantic",
      "versions": [
        {
          "version": "semantic_ext1-0.1",
          "end": "2023-12-31T23:59:59Z"
        },
        {
          "version": "semantic_ext1-1.0",
          "default": true
        },
        {
          "version": "semantic_ext1-1.1",
          "start": "2023-12-31T23:59:59Z"
        }
      ]
    },
    {
      "extension": "semantic_ext2",
      "type": "semantic",
      "versions": [
        {
          "version": "semantic_ext2-0.1",
          "end": "2023-12-31T23:59:59Z",
          "links": [
            {
              "value": "https://ext2.example/semantic_ext2-01.txt",
              "rel": "describedby",
              "href": "https://ext2.example/semantic_ext2-01.txt",
              "type": "text/plain"
            }
          ]
        }
      ]
    },
    {
      "extension": "semantic_ext3",
      "type": "semantic",
      "versions": [
        {
          "version": "semantic_ext3-1.0",
          "start": "2023-12-31T23:59:59Z"
        }
      ]
    }
  ],
  "versioning": [
    {
      "extension": "versioning",
      "type": "semantic",
      "version": "versioning-0.2"
    }
  ]
}
    </sourcecode>
  </figure>


  <t>Example response to /help query with the "versioning-help" and "versioning" members and client specified "versioning-0.1" extension version
    in the /help query "https://example.com/rdap/help?versioning=versioning-0.1".  The "versioning-0.1" extension version does
    not include support for the "type" member.</t>
  <figure anchor="help-response-versioning-0.1" align="left" suppress-title="false">
    <name>Response to /help Query with "versioning-0.1" Extension Version</name>
    <sourcecode type="json" markers="false">
{
  "rdapConformance": [
    "rdap_level_0",
    "versioning",
    "opaque_ext1",
    "opaque_ext2",
    "semantic_ext1",
    "semantic_ext2",
    "semantic_ext3"
  ],
  "versioning-help": [
    {
      "extension": "versioning",
      "versions": [
        {
          "version": "versioning-0.1"
        },
        {
          "version": "versioning-0.2",
          "default": true
        }
      ]
    },
    {
      "extension": "opaque_ext1",
      "versions": [
        {
          "version": "opaque_ext1-1.0",
          "default": true
        }
      ]
    },
    {
      "extension": "opaque_ext2",
      "versions": [
        {
          "version": "opaque_ext2-1.0",
          "default": true
        }
      ]
    },
     {
      "extension": "semantic_ext1",
      "versions": [
        {
          "version": "semantic_ext1-0.1",
          "end": "2023-12-31T23:59:59Z"
        },
        {
          "version": "semantic_ext1-1.0",
          "default": true
        },
        {
          "version": "semantic_ext1-1.1",
          "start": "2023-12-31T23:59:59Z"
        }
      ]
    },
    {
      "extension": "semantic_ext2",
      "versions": [
        {
          "version": "semantic_ext2-0.1",
          "end": "2023-12-31T23:59:59Z",
          "links": [
            {
              "value": "https://ext2.example/semantic_ext2-01.txt",
              "rel": "describedby",
              "href": "https://ext2.example/semantic_ext2-01.txt",
              "type": "text/plain"
            }
          ]
        }
      ]
    },
    {
      "extension": "semantic_ext3",
      "versions": [
        {
          "version": "semantic_ext3-1.0",
          "start": "2023-12-31T23:59:59Z"
        }
      ]
    }
  ],
  "versioning": [
    {
      "extension": "versioning",
      "version": "versioning-0.1"
    }
  ]
}
    </sourcecode>
  </figure>

        </section>
        <section anchor="versioning-member" numbered="true" toc="default">
          <name>&quot;versioning&quot; Member</name>
          <t>The &quot;versioning&quot; member MUST be added to the RDAP response when
          there is one or more RDAP extension fields.  The &quot;versioning&quot; member is included as a member of the object class in a lookup response, such as the object classes defined in <xref target="RFC9083" format="default"/>, and
          as a member of the object instances in a search response, such as the object instances defined in <xref target="RFC9083" format="default"/>, and as a member of the response to a /help query, such as shown in <xref target="help-response-default" format="default">Response to /help Query with No Client Specified Versioning</xref>.  
          The &quot;versioning&quot; member contains an array
          of versioning objects with the following child members:</t>
          <dl newline="false" indent="4">
            <dt>"extension":</dt>
            <dd>REQUIRED Extension Identifer, defined in <xref target="RFC7480" format="default"/>, and returned in the "rdapConformance" data structure of <xref target="RFC9083" format="default"/>.  An example is the "versioning" extension identifier.</dd>
            <dt>"type":</dt>
            <dd>REQUIRED versioning type used by the extension.  The versioning types are registered using the "versioning" type in the JSON Values Registry.  
            There are two predefined versioning types, including "opaque" (see <xref target="opaque-versioning" format="default">Opaque Versioning</xref>) and 
            "semantic" (see <xref target="semantic-versioning" format="default">Semantic Versioning</xref>)</dd>
            <dt>"version":</dt>
            <dd>REQUIRED Extension Version Identifier, defined in <xref target="extension-version-identifier" format="default"/>, that is included in the response.  An example is the "versioning-0.2" extension version identifier.</dd>
          </dl>

  <t>Example domain lookup response with "versioning" member and no client specified versioning
    in the lookup query "https://example.com/rdap/domain/versioning.example":</t>
  <figure anchor="domain-response-default" align="left" suppress-title="false">
    <name>RDAP Domain Lookup Response with No Client Specified Versioning</name>
    <sourcecode type="json" markers="false">
{
  "rdapConformance": [
    "rdap_level_0",
    "versioning",
    "semantic_ext1",
    "opaque_ext2"
  ],
  "objectClassName": "domain",
  "handle": "XXXX",
  "ldhName": "versioning.example",
  "links": [
    {
      "value": "https://example.net/domain/versioning.example",
      "rel": "self",
      "href": "https://example.net/domain/versioning.example",
      "type": "application/rdap+json"
    }
  ],
  "status": [
    "ok"
  ],
  "events": [
    {
      "eventAction": "registration",
      "eventDate": "1990-12-31T23:59:59Z"
    },
    {
      "eventAction": "expiration",
      "eventDate": "2023-12-31T23:59:59Z"
    }
  ],
  "semantic_ext1": {
    "value": "example 1",
    "newoptionalstring": "new value"
  },
  "opaque_ext2": {
    "name": "example 2"
  },
  "versioning": [
    {
      "extension": "versioning",
      "type": "semantic",
      "version": "versioning-0.2"
    },
    {
      "extension": "semantic_ext1",
      "type": "semantic",
      "version": "semantic_ext1-1.0"
    },
    {
      "extension": "opaque_ext2",
      "type": "opaque",
      "version": "opaque_ext2"
    }
  ]
}
    </sourcecode>
  </figure>

  <t>Example domain lookup response with "versioning" member and client specified "semantic_ext1-0.1" extension version
    in the lookup query "https://example.com/rdap/domain/versioning.example?versioning=semantic_ext1-0.1":</t>
  <figure anchor="domain-response-semantic_ext1-0.1" align="left" suppress-title="false">
    <name>RDAP Domain Lookup Response with "semantic_ext1-0.1" Extension Version</name>
    <sourcecode type="json" markers="false">
{
  "rdapConformance": [
    "rdap_level_0",
    "versioning",
    "semantic_ext1",
    "opaque_ext2"
  ],
  "objectClassName": "domain",
  "handle": "XXXX",
  "ldhName": "versioning.example",
  "links": [
    {
      "value": "https://example.net/domain/versioning.example",
      "rel": "self",
      "href": "https://example.net/domain/versioning.example",
      "type": "application/rdap+json"
    }
  ],
  "status": [
    "ok"
  ],
  "events": [
    {
      "eventAction": "registration",
      "eventDate": "1990-12-31T23:59:59Z"
    },
    {
      "eventAction": "expiration",
      "eventDate": "2023-12-31T23:59:59Z"
    }
  ],
  "semantic_ext1": {
    "value": "example 1"
  },
  "opaque_ext2": {
    "name": "example 2"
  },
  "versioning": [
    {
      "extension": "versioning",
      "type": "semantic",
      "version": "versioning-0.2"
    },
    {
      "extension": "semantic_ext1",
      "type": "semantic",
      "version": "semantic_ext1-0.1"
    },
    {
      "extension": "opaque_ext2",
      "type": "opaque",
      "version": "opaque_ext2"
    }
  ]
}
    </sourcecode>
  </figure>

  <t>Example domain lookup response with "versioning" member and client specified "semantic_ext1-0.1" and "opaque_ext2" extension versions
    in the lookup query "https://example.com/rdap/domain/versioning.example?versioning=semantic_ext1-0.1,opaque_ext2":</t>
  <figure anchor="domain-response-semantic_ext1-0.1-and-opaque_ext2" align="left" suppress-title="false">
    <name>RDAP Domain Lookup Response with "semantic_ext1-0.1" and "opaque_ext2" Extension Versions</name>
    <sourcecode type="json" markers="false">
{
  "rdapConformance": [
    "rdap_level_0",
    "versioning",
    "semantic_ext1",
    "opaque_ext2"
  ],
  "objectClassName": "domain",
  "handle": "XXXX",
  "ldhName": "versioning.example",
  "links": [
    {
      "value": "https://example.net/domain/versioning.example",
      "rel": "self",
      "href": "https://example.net/domain/versioning.example",
      "type": "application/rdap+json"
    }
  ],
  "status": [
    "ok"
  ],
  "events": [
    {
      "eventAction": "registration",
      "eventDate": "1990-12-31T23:59:59Z"
    },
    {
      "eventAction": "expiration",
      "eventDate": "2023-12-31T23:59:59Z"
    }
  ],
  "semantic_ext1": {
    "value": "example 1"
  },
  "opaque_ext2": {
    "name": "example 2"
  },
  "versioning": [
    {
      "extension": "versioning",
      "type": "semantic",
      "version": "versioning-0.2"
    },
    {
      "extension": "semantic_ext1",
      "type": "semantic",
      "version": "semantic_ext1-0.1"
    },
    {
      "extension": "opaque_ext2",
      "type": "opaque",
      "version": "opaque_ext2"
    }
  ]
}
    </sourcecode>
  </figure>

        </section>
    </section>

    </section>
    <section anchor="versioning-types" numbered="true" toc="default">
      <name>Versioning Types</name>
      <t>Versioning types are extensible by formally defining the extension version identifer, how the versioning type is 
      represented in the <xref target="versioning-help-member">&quot;versioning-help&quot; member</xref>, and how the versioning type 
      is represented in the <xref target="versioning-help-member">&quot;versioning&quot; member</xref>.  The definition of the 
      extension version identifier determines how the versioning type is represented in the <xref target="extension-versioning-request">Extension Versioning Request</xref>.  Each 
      versioning type needs to have a unique "versioning" RDAP JSON Values Registry Type field value. This document pre-defines two versioning types with <xref target="opaque-versioning">Opaque Versioning</xref> and 
      <xref target="semantic-versioning">Semantic Versioning</xref>.  Other versioning types can be defined and registered in the RDAP JSON Values Registry.</t>
      <section anchor="opaque-versioning" numbered="true" toc="default">
        <name>Opaque Versioning</name>
        <t>Opaque Versioning is defined in Section 8 of <xref target="I-D.ietf-regext-rdap-extensions" format="default"/>, to support RDAP extensions that are identified using the Extension Identifier included in the RDAP Conformance 
        and is the base versioning type that can be applied to any RDAP extension.  All RDAP extensions are registered in the RDAP Extensions Registry using the Extension Identifier in <xref target="RFC7480"/>, which is the basis for other versioning types.  
        An RDAP Extension that supports another versioning type, such as the <xref target="semantic-versioning">Semantic Versioning</xref>, 
        MAY be referred to using Opaque Versioning in the <xref target="extension-versioning-request">Extension Versioning Request</xref> and 
        the server returns the extension version with the <xref target="versioning-help-member">&quot;default&quot;</xref> member set to true.</t>
        <section anchor="opaque-versioning-identifier" numbered="true" toc="default">
          <name>Opaque Versioning Identifier</name>
          <t>The Opaque Versioning Identifier directly matches the Extension Identifier registered in the RDAP Extensions Registry.
          The ABNF for the Extension Identifier is defined in "Figure 1: ABNF for JSON Names" of <xref target="RFC7480" format="default"/>.</t>    
          <t>Example Opaque Extension Versioning Identifiers:</t>
          <dl newline="true" indent="4">
            <dt>"versioning"</dt>
            <dd>Opaque versioning of the "versioning" extension.</dd>
            <dt>"opaque_ext1"</dt>
            <dd>Opaque versioning of the "opaque_ext1" extension.</dd>
          </dl>
        </section>
        <section anchor="opaque-versioning-help-member" numbered="true" toc="default">
          <name>Opaque Versioning &quot;versioning-help&quot; Member</name>
          <t>For an RDAP extension that only supports Opaque Extension Versioning, there is only a single extension version.  All of the 
          members of the <xref target="versioning-help-member" format="default">&quot;versioning-help&quot; member</xref> is supported wth Opaque Versioning, but there will 
          be only a single "versions" member object that has the "version" member matching the "extension" member value.  Clients can leverage 
          the Extension Version Identifier value in the <xref target="extension-versioning-request">Extension Versioning Request</xref> for Opaque Versioning.</t>

          <t>Example response to /help query with "versioning-help" and "versioning" members with support for only Opaque Versioning 
          in the /help query "https://example.com/rdap/help":</t>
          <figure anchor="opaque-versioning-help-response" align="left" suppress-title="false">
            <name>Response to /help Query with only Opaque Versioning</name>
              <sourcecode type="json" markers="false">
{
  "rdapConformance": [
    "rdap_level_0",
    "versioning",
    "opaque_ext1",
    "opaque_ext2",
  ],
  "versioning-help": [
    {
      "extension": "versioning",
      "type": "opaque",
      "versions": [
        {
          "version": "versioning"
        },
      ]
    },
    {
      "extension": "opaque_ext1",
      "type": "opaque",
      "versions": [
        {
          "version": "opaque_ext1"
        }
      ],
      "end": "2023-12-31T23:59:59Z"
    },
    {
      "extension": "opaque_ext2",
      "type": "opaque",
      "versions": [
        {
          "version": "opaque_ext2"
        }
      ],
      "start": "2023-12-31T23:59:59Z",
      "links": [
        {
          "value": "https://ext2.example/opaque_ext2.txt",
          "rel": "describedby",
          "href": "https://ext2.example/paque_ext2.txt",
          "type": "text/plain"
        }
      ]
    }
  ],
  "versioning": [
    {
      "extension": "versioning",
      "type": "opaque",
      "version": "versioning"
    }
  ]
}
              </sourcecode>
            </figure>
        </section>
        <section anchor="opaque-versioning-member" numbered="true" toc="default">
          <name>Opaque Versioning &quot;versioning&quot; Member</name>
          <t>All of the members of the <xref target="versioning-member" format="default">&quot;versioning&quot; member</xref> is supported wth Opaque Versioning, 
          where the "extension" and "version" member are both set with the Extension Identifier and the "type" is set to "opaque".  The <xref target="opaque-versioning-help-response">Response to /help Query with only Opaque Versioning</xref> 
          includes an example of of the "versioning" extension represented using Opaque Versioning.</t>  
        </section>
       </section>
      <section anchor="semantic-versioning" numbered="true" toc="default">
        <name>Semantic Versioning</name>
        <t>The Semantic Versioning uses a subset of the Semantic Versioning <xref target="SemVer" format="default"/> rules, where the patch version, pre-release version, and build metadata are not used.
          RDAP versioning is only associated with changes to the protocol interface that is the public API of <xref target="SemVer" format="default"/>, so there is no concept of 
          patching, pre-release, and build metadata information.  Only the <xref target="SemVer" format="default"/>
          major version and minor version are used for Extension Versioning, and is based on the stability of the extension as opposed to backward compatibility.  
          The RDAP extension given a version number MAJOR.MINOR, increment the:</t>
          <ol>
            <li>MAJOR version when the extension interface is considered stable and complete</li>
            <li>MINOR version includes an update to the extension interface that is not considered stable and complete</li>
          </ol>
          <t>
          The following are the Extension Versioning rules based on modifications to the Semantic Versioning <xref target="SemVer" format="default"/> rules:</t>
          <ol>
            <li>A normal version MUST take the form X.Y where X.Y are non-negative integers, and MUST NOT contain leading zeroes.  X is the major version and Y is the minor version.  Each element MUST increase numerically.
              For instance: 1.1 -> 1.2 -> 1.3.</li>
            <li>Major version zero (0.y) is for initial definition.  Anything MAY change at any time.  The extension interface SHOULD NOT be considered stable.  An extension that is an initial Internet Draft prior to
              Working Group Last Call (WGLC) SHOULD use a zero major version.</li>
            <li>Version 1.0 defines the extension interface.  The way in which the version number is incremented after this is dependent on this extension interface and how it changes.  An extension
            that is an initial Internet Draft that has passed Working Group Last Call (WGLC) SHOULD use version 1.0.</li>
            <li>Minor version Y (x.Y | x > 0) MUST be incremented if new interface changes are introduced in the extension interface from the last major version.</li>
            <li>Major version X (X.y | X > 0) MUST be incremented once the new interface is considered stable and complete.  The minor version MUST be reset to 0 when major version is incremented.</li>
            <li>
              <t>Precedence refers to how versions are compared to each other when ordered.</t>
              <ol>
                <li>Precedence MUST be calculated by seperating the version into major and minor identifiers in that order.</li>
                <li>Precedence is determined by the first difference when comparing each of these identifiers from left to right as follows: Major and minor are always compared numerically.  Example: 1.0 &lt; 2.0 &lt; 2.1.</li>
              </ol>
            </li>
          </ol>
       <section anchor="semantic-versioning-identifier" numbered="true" toc="default">
         <name>Semantic Extension Version Identifier</name>
          <t>The Semantic Versioning Identifier defines the versioning ABNF rule in <xref target="extension-version-identifier-abnf">Extension Version Identifier ABNF</xref> to include the major and minor version of the extension that 
          follows the modified  Semantic Versioning <xref target="SemVer" format="default"/> rules.</t>       
          <figure anchor="semantic-versioning-identifier-abnf" align="left" suppress-title="false">
            <name>Semantic Versioning Identifier ABNF</name>
              <sourcecode type="abnf">
semantic-version-identifier = identifier versioning
identifier = ALPHA *( ALPHA / DIGIT / "_") ; Extension Identifier
versioning = ; "-"  major "." minor
major = numeric-identifer
minor = numeric-identifer
numeric-identifer = "0" / positive-digit *DIGIT
positive-digit = %x31-39 ; 1-9
              </sourcecode>
          </figure>
          <t>Example Semantic Extension Versioning Identifiers:</t>
          <dl newline="true" indent="4">
           <dt>"versioning-0.2"</dt>
           <dd>The "versioning" extension version identifier that is not considered stable.</dd>
           <dt>"semantic_ext1-1.0</dt>
           <dd>First stable version of the "semantic_ext1" extension.</dd>
           <dt>"semantic_ext1-1.1"</dt>
           <dd>Update to "semantic_ext1-1.0" of the "semantic_ext1" extension that is not considered stable.</dd>
           <dt>"semantic_ext1-2.0"</dt>
           <dd>New stable version of the "semantic_ext1" extension.</dd>
          </dl>
       </section>
       <section anchor="semantic-versioning-help-member" numbered="true" toc="default">
         <name>Semantic Versioning "versioning-help" Member</name>
          <t>For an RDAP extension that supports Semantic Extension Versioning, there can be many Extension Versioning Identifiers associated with the Extension Identifier, 
          so the "versions" member of the "versioning-help" member can include a list of more than one extension version object.  All of the 
          members of the <xref target="versioning-help-member" format="default">&quot;versioning-help&quot; member</xref> is supported wth Semantic Versioning.</t>

          <t>Example response to /help query with "versioning-help" and "versioning" members with support for Semantic Versioning 
          in the /help query "https://example.com/rdap/help":</t>
          <figure anchor="semantic-versioning-help-response" align="left" suppress-title="false">
            <name>Response to /help Query with only Semantic Versioning</name>
              <sourcecode type="json" markers="false">
{
  "rdapConformance": [
    "rdap_level_0",
    "versioning",
    "semantic_ext1",
    "semantic_ext2",
    "semantic_ext3"
  ]  ],
  "versioning-help": [
    {
      "extension": "versioning",
      "type": "semantic",
      "versions": [
        {
          "version": "versioning-0.1"
        },
        {
          "version": "versioning-0.2",
          "default": true
        }
      ]
    },
    {
      "extension": "semantic_ext1",
      "type": "semantic",
      "versions": [
        {
          "version": "semantic_ext1-0.1",
          "end": "2023-12-31T23:59:59Z"
        },
        {
          "version": "semantic_ext1-1.0",
          "default": true
        },
        {
          "version": "semantic_ext1-1.1",
          "start": "2023-12-31T23:59:59Z"
        }
      ]
    },
    {
      "extension": "semantic_ext2",
      "type": "semantic",
      "versions": [
        {
          "version": "semantic_ext2-0.1",
          "end": "2023-12-31T23:59:59Z",
          "links": [
            {
              "value": "https://ext2.example/semantic_ext2-01.txt",
              "rel": "describedby",
              "href": "https://ext2.example/semantic_ext2-01.txt",
              "type": "text/plain"
            }
          ]
        }
      ]
    },
    {
      "extension": "semantic_ext3",
      "type": "semantic",
      "versions": [
        {
          "version": "semantic_ext3-1.0",
          "start": "2023-12-31T23:59:59Z"
        }
      ]
    }
  ],
  "versioning": [
    {
      "extension": "versioning",
      "type": "opaque",
      "version": "versioning-0.2"
    }
  ]
}
              </sourcecode>
            </figure>
       </section>
       <section anchor="semantic-versioning-member" numbered="true" toc="default">
         <name>Semantic Versioning "versioning" Member</name>
          <t>All of the members of the <xref target="versioning-member" format="default">&quot;versioning&quot; member</xref> is supported wth Semantic Versioning, 
          where the "extension" member is set with the Extension Identifier, the "version" member of the extension included in the response is set with <xref target="semantic-versioning-identifier">Semantic Extension Version Identifier</xref>, and the "type" is set to "semantic".  
          The <xref target="semantic-versioning-help-response">Response to /help Query with only Semantic Versioning</xref> includes an example of of the "versioning" extension represented using Semantic Versioning with "versioning-0.2".</t>  
       </section>
       </section>
    </section>
    <section anchor="versioning-considerations" numbered="true" toc="default">
      <name>Versioning Considerations</name>
      <t>This section covers considerations for extensions that support the versioning extension and for defining new versioning types.</t>  
      <section anchor="versioning-extension-considerations"  numbered="true" toc="default">
        <name>Versioning Extension Considerations</name>
        <t>All extensions support <xref target="opaque-versioning">Opaque Versioning</xref> by default and MAY support other forms for versioning types, such as the <xref target="semantic-versioning">Semantic Versioning</xref>.  
        The following are considerations for the extensions an servers that support the versioning extension:</t>
        <ol>
          <li>An extension document SHOULD define an "Extension Version Identifier" section that includes the versioning types supported by the extension with the associated extension version identifier.</li>
          <li>A server MUST ignore Extension Version Identifiers that are unknown in the Extension Versioning Request.</li>
          <li>A server SHOULD first process the <xref target="extension-versioning-request">Extension Versioning Request</xref> prior to processing the query parameters of other extensions to implement the client's extension versioning hint.</li>
          <li>A server MAY define the policy of the extension versions that are supported and the timing of the extension versions, such as how many overlapping extension versions to support in parallel.</li> 
  </ol>
      </section>
      <section anchor="versioning-type-considerations"  numbered="true" toc="default">
        <name>Versioning Type Considerations</name>
        <t>The following are considerations for the definition of new versioning types in a Versioning Type Specification.  
        The <xref target="opaque-versioning">Opaque Versioning</xref> and <xref target="semantic-versioning">Semantic Versioning</xref> with the associated <xref target="json-values-registry">RDAP JSON Values Registry</xref> registrations are concrete examples of a Versioning Type Specification.
        The Versioning Type Specification MUST include the following:</t>
        <ol>
          <li>Definition of a unique RDAP JSON Values Registry "versioning" value.</li>
          <li>Definition of the format of the Extension Versioning identifier.</li>
          <li>Definition of the members of the "versioning-help" member that apply.</li>
          <li>Definition of the members of the "versioning" memeber that apply.</li>
        </ol>
     </section>
   </section>    
    <section anchor="versioning-extension-version-identifier" numbered="true" toc="default">
      <name>Extension Version Identifier</name>
      <t>This extension supports the following versioning types:</t>
        <dl newline="false" spacing="compact">
          <dt>Opaque Versioning:</dt>
      	  <dd>The Opaque Extension Versioning Identifier is "versioning".</dd>
          <dt>Semantic Versioning:</dt>
      	  <dd>The Semantic Extension Versioning Identifier is "versioning-0.2".</dd>
        </dl>
    </section>    
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="rdap-extensions-registry" numbered="true" toc="default">
        <name>RDAP Extensions Registry</name>
        <t>IANA is requested to register the following value in the RDAP
           Extensions Registry:</t>
        <dl newline="false" spacing="compact">
          <dt>Extension identifier:</dt>
      	  <dd>versioning</dd>
          <dt>Registry operator:</dt>
      	  <dd>Any</dd>
          <dt>Published specification:</dt>
      	  <dd>This document.</dd>
          <dt>Contact:</dt>
      	  <dd>IETF &lt;iesg@ietf.org&gt;</dd>
          <dt>Intended usage:</dt>
      	  <dd>This extension identifies RDAP extension versioning.</dd>
        </dl>
      </section>
      <section anchor="json-values-registry" numbered="true" toc="default">
        <name>RDAP JSON Values Registry</name>
        <t>Section 10.2 of <xref target="RFC9083" format="default"/> defines the
        RDAP JSON Values Registry with pre-defined Type field values and the use of the
        "Expert Review" policy defined in <xref target="RFC8126" format="default"/>.
        This specification defines a new "versioning" RDAP JSON Values Registry Type field
        value that can be used to register pre-defined versioning types values.  
        The registered "versioning" value is referenced using the "type" field of the <xref target="versioning-member">&quot;versioning&quot; field</xref>
        or <xref target="versioning-help-member">&quot;versioning-help&quot; field object</xref>.
        IANA is instructed to update the RDAP JSON Values
        Registry to accept the additional "versioning" type field values.</t>
        <t>The following values should be registered by the IANA in the RDAP JSON Values Registry described in <xref target="RFC9083"/>:</t>
        <dl newline="false" indent="4">
          <dt>Value:</dt>
          <dd>opaque</dd>
          <dt>Type:</dt>
          <dd>versioning</dd>
          <dt>Description:</dt>
          <dd>Opaque extension versioning type, where the rdapConformance value directly indicates the extension version.</dd>
          <dt>Registrant Name:</dt>
          <dd>IETF</dd>
          <dt>Registrant Contact Information:</dt>
          <dd>iesg@ietf.org</dd>
        </dl>
         <dl newline="false" indent="4">
          <dt>Value:</dt>
          <dd>semantic</dd>
          <dt>Type:</dt>
          <dd>versioning</dd>
          <dt>Description:</dt>
          <dd>Semantic extension versioning type, where the rdapConformance value is appended with a semantic version number.</dd>
          <dt>Registrant Name:</dt>
          <dd>IETF</dd>
          <dt>Registrant Contact Information:</dt>
          <dd>iesg@ietf.org</dd>
        </dl>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The RDAP extensions available to clients can be subject to server disclosure and authorization
      policies.  Inclusion of available RDAP extensions and their available versions in the "versioning-help" member,
      defined in <xref target="versioning-help-member" format="default"/>, of the RDAP help response and inclusion
      of the RDAP extensions in the RDAP response with the "versioning" member,
      defined in <xref target="versioning-member" format="default"/>,
      can be dependent on authentication and authorization of the client by the server.
    </t>
    </section>
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>The authors wish to thank the following persons for their feedback and suggestions:
        <contact fullname="Scott Hollenbeck"/>,
        <contact fullname="Andy Newton"/>,
        and <contact fullname="Jasdip Singh"/>.
      </t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>

      <references>
        <name>Normative References</name>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3339.xml"/>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml"/>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7480.xml"/>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8288.xml"/>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9082.xml"/>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9083.xml"/>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-regext-rdap-x-media-type.xml"/>
          <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-regext-rdap-extensions.xml"/>
      </references>

      <references>
        <name>Informative References</name>

          <reference anchor='SemVer'
                    target='https://github.com/semver/semver/blob/8b2e8eec394948632957639dfa99fc7ec6286911/semver.md'>
            <front>
              <title>Semantic Versioning 2.0.0 (text from June 19, 2020)</title>
              <author/>
            <date/>
            </front>
          </reference>

      </references>

    </references>
    <section numbered="true" toc="default">
      <name>Change History</name>
      <section anchor="change-00-to-01" numbered="true" toc="default">
        <name>Change from 00 to 01</name>
         <ol spacing="compact" type="1">
          <li>Updated the Abstract to reference the use of machine-parseable identifiers.</li>
          <li>Updated the Introduction to reference the informal support for versioning in RFC9083.</li>
          <li>Removed rule "An extension using Extension Versioning MUST declare the extension in a specification." from Section 3.1 "Extension Versioning".</li>
        </ol>
     </section>
      <section anchor="change-01-to-02" numbered="true" toc="default">
        <name>Change from 01 to 02</name>
         <ol spacing="compact" type="1">
          <li>
            <t>Restructure the draft to support the features of providing versioning meta-data in the help response, providing extension versioning information in the query response, 
          and provide the ability for the client to specify the desired set of extension versions in the query with an extensible set of versioning types.  The following changes apply:</t>
            <ol spacing="compact" type="1">
              <li>Added the "Versioning RDAP Features" section to define the base set of features of the extension that applies to an extensible set of versioning types.</li>
              <li>Updated the Extension Version Identifier to be more generic to support an extensible set of extension version identifiers by the set of versioning types.</li>
              <li>Created the "Extension Versioning Request" section to support client extension versioning hints using either the "versioning" query parameter or the versioning extensions media type parameter in <xref target="I-D.ietf-regext-rdap-x-media-type" format="default"/>.</li>
              <li>Updated the ""versioning-help" Member" section to include the versioning type for each extension and to reference the guidance in Section 7 of <xref target="I-D.ietf-regext-rdap-extensions" format="default"/> and extending it by the versioning extension.</li>
              <li>Updated the ""versioning" Member" section to include the versioning type for returned RDAP response extensions.</li>
              <li>Created the "Versioning Types" section to define the two pre-defined versioning types of Opaque Versioning and Semantic Versioning following a common template.</li>
              <li>Created the "Versioning Extension Considerations" section to provide guidance on the use of the versioning extension by RDAP extensions and servers, and to provide guidance on the definition of new versioning types.</li>
              <li>In the "IANA Considerations" section, add a new RDAP JSON Values Type of "versioning" to support defining multiple versioning types that can be used by RDAP extensions.</li>
              <li>In the "IANA Considerations" section, Pre-register the RDAP JSON Values "versioning" types defined in the draft, including "opaque" and "semantic".</li>
            </ol>
          </li>
        </ol>
     </section>
     <section anchor="change-02-to-REGEXT-00" numbered="true" toc="default">
        <name>Change from 02 to REGEXT 00</name>
         <ol spacing="compact" type="1">
          <li>Changed to regext working group draft by changing draft-gould-regext-rdap-versioning to draft-ietf-regext-rdap-versioning.</li>
       </ol>
     </section>
     <section anchor="change-REGEXT-00-to-REGEXT-01" numbered="true" toc="default">
        <name>Change from REGEXT 00 to REGEXT 01</name>
         <ol spacing="compact" type="1">
          <li>Replaced I-D.newton-regext-rdap-x-media-type with I-D.ietf-regext-rdap-x-media-type and I-D.newton-regext-rdap-extensions with I-D.ietf-regext-rdap-extensions.</li>
          <li>Changed 'defined©' to 'defined' in the Introduction.</li>
       </ol>
     </section>
   </section>
  </back>
</rfc>
