<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-galvin-regext-epp-variants-02" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="EPP Variants">Domain variant support for EPP</title>
    <seriesInfo name="Internet-Draft" value="draft-galvin-regext-epp-variants-02"/>
    <author initials="J." surname="Galvin" fullname="James Galvin">
      <organization>Identity Digital</organization>
      <address>
        <postal>
          <city>Bellevue, Washington</city>
          <country>US</country>
        </postal>
        <email>jgalvin@identity.digital</email>
      </address>
    </author>
    <author initials="M." surname="Bauland" fullname="Michael Bauland">
      <organization>Knipp Medien und Kommunikation GmbH</organization>
      <address>
        <postal>
          <city>Dortmund</city>
          <country>Germany</country>
        </postal>
        <email>michael.bauland@knipp.de</email>
      </address>
    </author>
    <date year="2025" month="July" day="07"/>
    <area>Applications and Real-Time</area>
    <workgroup>regext</workgroup>
    <keyword>EPP</keyword>
    <abstract>
      <?line 40?>

<t>This document defines an EPP extension allowing clients to learn about
and manipulate variant groups of domains, ie. groups of domains whose
names are equivalent in a registry-defined way and are tied to a
single registrant.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Registration Protocols Extensions Working Group mailing list (regext@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/regext/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/arnt/regext-epp-variants"/>.</t>
    </note>
  </front>
  <middle>
    <?line 47?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>EPP is defined in <xref target="RFC5730"/>. EPP commands were developed to operate on
a single object at a time. This document defines an EPP extension allowing
clients to learn about and manipulate variant groups of objects that have
a characteristic that makes them equivalent.</t>
      <t>Similar to EPP, the principal motivation for this extension was to provide a
standard Internet domain name registration extension for use between domain
name registrars and domain name registries.  This protocol provides a
means of interaction between a registrar's applications and registry
applications.  It is expected that this protocol will have additional
uses beyond domain name registration.</t>
      <t>As an example, the problem being considered is that spelling is not necessarily
uniform. For example, an è and an e may be regarded as equivalent in some languages,
and as different in others.</t>
      <t>Some registries plan to support this explicitly, with groups of
variant domains that can only be registered by the same registrant. Having the same
registrant is most commonly considered essential for equivalence, since if the domains
are intended to be equivalent then the responsibility of maintaining that equivalence
must be present. This is a specific example of the more general "Same Entity Principle",
which in this specification is defined to mean that a variant group <bcp14>MUST</bcp14> be created, managed,
and deleted by the same entity. From a registry perspective the same entity would be
registrar; from the registrar's perspective the same entity would be the registrant.</t>
      <t>This document does not define a variant or a group of variants, i.e., this document does
define what makes the domains in the variant group equivalent.
A registry policy <bcp14>MUST</bcp14> exist that specifies both that a registry supports
variant groups and that defines what domains are eligible to be a member
of a variant group. This policy <bcp14>MUST</bcp14> be agreed between a registry and a
registrar. The policy and the establishment of the agreement is outside
the scope of this specification.</t>
      <t>A common policy expression among domain registries and registrars is to define
variants in terms of the script or language in use for an Internalized Domain
Name (IDN). IDN variants can arise when different characters or sequences of
characters in an IDN are considered equivalent in a particular language or script.
Standard Label Generation Rules (LGRs) are used to specify the IDN table that
establishes the variant relationships. This common policy is presumed and used
as an example in this specification.</t>
      <t>With this extension, registering a domain creates a variant group and the first
domain registered in the group becomes the group's Primary Domain. The creation of the Primary
Domain <bcp14>MAY</bcp14> establish rules or guidelines regarding the domains that are eligible
to be a member of the group, e.g., an LGR, an IDN table, and a Primary Domain
taken together will define a variant group.</t>
      <t>Subsequent domains in the same group can only be registered by the same registrar, which
asserts that it is acting on behalf of the same registrant. Each domain in
a variant group may be the target of any EPP command, with the following
restrictions.</t>
      <ul spacing="normal">
        <li>
          <t>A &lt;transfer&gt; of any domain in any variant group always acts on the entire group.
This is required to ensure that the variant group is always registered by the same registrant
and managed via the same registrar. Registry policy <bcp14>MAY</bcp14> be impose additional restrictions.</t>
        </li>
        <li>
          <t>The &lt;delete&gt; of a Primary Domain in any variant group always acts on the entire group. This is
required to support the option where the Primary Domain establishes the rules or
guidelines for the creation of other domains in the group.</t>
        </li>
      </ul>
      <t>This extension is backwards compatible with registrars that do not support variant
groups. Specifically, this extension supports registries that do support variant
groups interacting with registrars that do not support variant groups. Registrars that do
not support variants that attempt to act on a member of a variant group inappropriately
will receive a compatible error response with which they can continue to function.
The compatible error response may not provide sufficient detail to fully understand
the rejection but will be sufficient to ensure continuation of normal operations.</t>
      <t>The remainder of this document describes the specific details.</t>
      <t><strong>TODO</strong>: login exchange of variant-aware</t>
      <t><strong>TODO</strong>: discussion of reference to EPP Extensibility and Extension Analysis
https://docs.google.com/document/d/1WR00oB43XZCDqD0zvRvRajuWAq_9wQ3c0RrFKlGC3So/edit?tab=t.0</t>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <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>
      <?line -18?>

</section>
    <section anchor="terms">
      <name>Terms</name>
      <t>Allocated variant: A domain that has been created in the registry, and
which is tied to an existing primary domain.</t>
      <t>Allocatable variant: A domain that has not been allocated but is allocatable
(according to the LGR), and which is conceptually tied to an existing
primary domain.</t>
      <t>Activated variant: An allocated domain that is in the DNS.</t>
      <t>Blocked domain: A domain that cannot be allocated due to its disposition
value in relation to the primary domain name.</t>
      <t>Disposition Value: While a variant relationship is symmetric it has exactly
one of two disposition values which are not necessarily symmetric. A variant
can be "allocatable" (i.e., available for the same entity) or "blocked"
(i.e., not available for anybody).</t>
      <t>Exempted domain: A preexisting domain that exists as a stand-alone domain,
but would be part of a variant group if it were allocated now. Exempted domains
may exist with any registrant at any registrar. The exemption stops
as soon as at most 1 allocated domain remains within a variant group.</t>
      <t>IDN Table: The combined information about what characters (code points)
are available for domain registration as well as the variant relationships
between those code points. IDN tables can be defined via RFC3743 or RFC4290
or LGRs (RFC7940). The latter one <bcp14>SHOULD</bcp14> be used as it also allows the
formal definition of context rules, which is lacking in the former ones.</t>
      <t>Label Generation Rules (LGR): The preferred way of defining IDN tables.
Among others, they define the variant relationships as well as their
disposition values (blocked or allocatable). The formal definition of LGRs
can be fond in RFC7940.</t>
      <t>Primary domain: The chronologically first domain in a variant group.
While the variant relationship is symmetric, its disposition value is not.
It can either be blocked or allocatable. The primary domain name therefore
partitions the variant group into allocatable variants and blocked variants.
In case of variant TLDs, there can be a primary domain per TLD.</t>
      <t>Same Entity Principle: A requirement that all domains within a variant group
either belong to the same entity (i.e., the same registrant via the same
registrar) or are withheld for that entity. No other entity is allowed to
activate any domain within the same variant group.</t>
      <t>Variant domain: A domain in a variant group which is not a primary domain.</t>
      <t>Variant group: An implicit set of domains defined by the Label
Generation Rule (LGR) of the registry. The variant relationship is
symmetric and transitive. Hence, an arbitrary element of a variant set
defines the whole set. This set is not expressed explicitly in EPP,
because it can be impractically large. At the time of writing, a domain
is registered whose variant set would contain 10¹⁵ variants.</t>
      <t><strong>TODO</strong>: Do we need to differentiate between allocated and activated?</t>
      <t><strong>TODO</strong>: Does it make any difference, whether a variant has DNS name servers or not?</t>
    </section>
    <section anchor="epp-commands">
      <name>EPP Commands</name>
      <section anchor="epp-ltcheckgt-command">
        <name>EPP &lt;check&gt; command</name>
        <t><strong>TODO</strong>: probably better not to have a command extension. For Registrars, it
would be difficult to determine the suitable primary domain. Therefore,
it is better to not ask them to send it, but rather return the appropriate
primary domain name in the response.</t>
        <t>This extension defines a new command called the Variant Check Command
that defines an additional Primary Domain name element for the EPP
&lt;check&gt; command.</t>
        <t>The command <bcp14>MAY</bcp14> contain an &lt;extension&gt; element, which <bcp14>MUST</bcp14> contain a
&lt;var:check&gt; element. The &lt;var:check&gt; element <bcp14>MUST</bcp14> contain one
&lt;var:primary&gt; element containing the intended primary domain.</t>
        <artwork><![CDATA[
C: <?xml version="1.0" encoding="utf-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C:   <command>
C:     <check>
C:       <domain:check
C:         xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C:         <domain:name>examplev1.com</domain:name>
C:         <domain:name>examplev1.net</domain:name>
C:         <domain:name>examplev1.xyz</domain:name>
C:       </domain:check>
C:     </check>
C:     <extension>
C:       <var:check xmlns:var="urn:ietf:params:xml:ns:epp:variants-1.0">
C:         <var:primary>example.com<var:primary>
C:       </var:check>
C:     </extension>
C:     <clTRID>ABC-12345</clTRID>
C:   </command>
C: </epp>
]]></artwork>
        <t>When the server receives a &lt;check&gt; command from a
variant-agnostic client and any domain within the checked domain's
variant group is allocated (or at least one exempted
domain within the variant group exists) the server <bcp14>MUST NOT</bcp14> include
an &lt;extension&gt; element. Instead, its response <bcp14>MUST</bcp14>
be available = "false". The optional reason <bcp14>MAY</bcp14> be
"Unavailable (except as variant)" to tell the registrar it
might be available as a variant.</t>
        <t>When the server receives a &lt;check&gt; command from a variant-aware
client and the checked domain is part of a variant group with at least one
allocated variant (or exempted domain),
its response <bcp14>MUST</bcp14> contain an &lt;extension&gt; element, which <bcp14>MUST</bcp14>
contain a child &lt;var:chkData&gt; element. The &lt;fee:chkData&gt;
element <bcp14>MUST</bcp14> contain a &lt;var:cd&gt; element for each object referenced in
the client &lt;check&gt; command.</t>
        <t>Each &lt;var:cd&gt; (check data) element <bcp14>MUST</bcp14> contain the following child
elements:</t>
        <ul spacing="normal">
          <li>
            <t>A &lt;var:objID&gt; element, which <bcp14>MUST</bcp14> match an element referenced in
the client &lt;check&gt; command.</t>
          </li>
          <li>
            <t>An <bcp14>OPTIONAL</bcp14> &lt;var:primary&gt; element.</t>
          </li>
          <li>
            <t>A &lt;var:status&gt; element, which explains in more detail the availability
status of the queried domain.</t>
          </li>
        </ul>
        <t>Example &lt;check&gt; response:</t>
        <artwork><![CDATA[
S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S:   <response>
S:     <result code="1000">
S:       <msg>Command completed successfully</msg>
S:     </result>
S:     <resData>
S:       <domain:chkData
S:         xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S:         <domain:cd>
S:           <domain:name avail="1">examplev1.com</domain:name>
S:         </domain:cd>
S:         <domain:cd>
S:           <domain:name avail="0">examplev1.net</domain:name>
S:         </domain:cd>
S:         <domain:cd>
S:           <domain:name avail="0">examplev1.tel</domain:name>
S:         </domain:cd>
S:         <domain:cd>
S:           <domain:name avail="0">examplev1.swiss</domain:name>
S:         </domain:cd>
S:       </domain:chkData>
S:     </resData>
S:     <extension>
S:       <var:chkData
S:           xmlns:var="urn:ietf:params:xml:ns:epp:variants-1.0">
S:         <var:cd avail="1">
S:           <var:objID>example.com</var:objID>
S:           <var:primary>example.com</var:primary>
S:           <var:status>AllocatableVariant</var:status>
S:         </var:cd>
S:         <var:cd avail="0">
S:           <var:objID>example.net</var:objID>
S:           <var:status>NotSameEntity</var:status>
S:         </var:cd>
S:         <var:cd avail="0">
S:           <var:objID>example.tel</var:objID>
S:           <var:status>Blocked</var:status>
S:         </var:cd>
S:         <var:cd avail="0">
S:           <var:objID>example.swiss</var:objID>
S:           <var:status>PendingTransfer</var:status>
S:         </var:cd>
S:       </var:chkData>
S:     </extension>
S:     <trID>
S:       <clTRID>ABC-12345</clTRID>
S:       <svTRID>54322-XYZ</svTRID>
S:     </trID>
S:   </response>
S: </epp>
]]></artwork>
        <t>The EPP &lt;check&gt; command may return five new results:</t>
        <ul spacing="normal">
          <li>
            <t>The domain cannot be provisioned because it is a variant of a
Primary Domain, and the Primary Domain belongs to a different client
=&gt; NotSameEntity</t>
          </li>
          <li>
            <t>The domain cannot be provisioned because its disposition value is blocked.
=&gt; Blocked</t>
          </li>
          <li>
            <t>The domain cannot be provisioned because it is a variant of at
least one exempted domain.
=&gt; Exempted</t>
          </li>
          <li>
            <t>The domain cannot be provisioned because it is a variant in a group
that is currently being transferred to a different registrar.
=&gt; PendingTransfer</t>
          </li>
          <li>
            <t>Additional custom value that may be used for server peculiarities.
=&gt; Custom</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="epp-ltinfogt-command">
      <name>EPP &lt;info&gt; command</name>
      <t>For variant-agnostic clients
there is no change to the standard behaviour. The response contains the
actual data of the domain, independent of the fact whether it is a variant
or not, in addition to the following:</t>
      <ul spacing="normal">
        <li>
          <t>if the variant-agnostic registrar is inquiring about a non-allocated variant,
the response <bcp14>SHOULD</bcp14> be the same as the registrar inquiring about a reserved name.
If you don't have a policy, suggest a policy.</t>
        </li>
      </ul>
      <t><strong>TODO</strong>: XML example of response?</t>
      <t>For variant-aware clients, the EPP &lt;info&gt; command is not extended,
but its response is extended
if the &lt;info&gt; command concerns a variant domain, i.e., at least two
domains within a variant group have been activated. The response then always
<bcp14>MUST</bcp14> include all primary domain names across all activated variant TLDs. Optionally
the response may include the list of all activated variants (across
all variant TLDs).</t>
      <t>In case a Primary Domain name is queried in the &lt;info&gt; command,
the list of activated variants within the same TLD <bcp14>MUST</bcp14> be returned.</t>
      <t>In other words:
* If you ask about a primary domain name
  * you <bcp14>MUST</bcp14> return all primary labels in all variant TLDs
  * you <bcp14>MUST</bcp14> return all activated variants in that TLD
  * you <bcp14>MAY</bcp14> return all activated variants in all variant TLDs</t>
      <ul spacing="normal">
        <li>
          <t>if you ask about a variant domain
          </t>
          <ul spacing="normal">
            <li>
              <t>you <bcp14>MUST</bcp14> return the primary label for that variant</t>
            </li>
            <li>
              <t>you <bcp14>MUST</bcp14> return all primary labels in all variant TLDs</t>
            </li>
            <li>
              <t>you <bcp14>MAY</bcp14> return all activated variants in that TLD</t>
            </li>
            <li>
              <t>you <bcp14>MAY</bcp14> return all activated variants in all variant TLDs</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>The main part of the response <bcp14>MUST</bcp14> contain the actual data of the queried
domain name (contacts, hosts, status values, etc.)</t>
      <t><strong>TODO</strong>: check whether EPP spec says anything about the alignment of check and info.</t>
    </section>
    <section anchor="epp-lttransfergt-command">
      <name>EPP &lt;transfer&gt; command</name>
      <t>If a variant-agnostic client initiates a transfer-in of a variant domain, i.e.,
at least two domains in a variant group have been activated, the transfer
request <bcp14>MUST</bcp14> be denied using 2305 "Object status prohibits operation".</t>
      <t><strong>TODO</strong>: xml example</t>
      <t>If a variant-aware client initiates a transfer-in of a variant domain, i.e.,
at least two domains in a variant group have been activated, the transfer request
<bcp14>MUST</bcp14> include an extension specifying the Primary Domain for the indicated variant
domain, including if the Primary Domain is the domain indicated in the
transfer-in. If the extension is not present the transfer request <bcp14>MUST</bcp14> be denied
using 2003 "Required parameter missing".</t>
      <t>The &lt;transfer&gt; response is extended <bcp14>MUST</bcp14> include the complete group of all activated
variants formed by combining all variant groups from all variant TLDs.</t>
      <t><strong>TODO</strong>: It must be ensured that the poll message to the losing registrar
also contains the full list of domains that will be transferred together with
the primary domain.</t>
      <t><strong>TODO</strong>: xml example</t>
    </section>
    <section anchor="epp-ltcreategt-command">
      <name>EPP &lt;create&gt; command</name>
      <t>The EPP &lt;create&gt; command's standard task is to provision a new
domain. If the domain to be created is part of a variant group, the command
<bcp14>MUST</bcp14> be rejected as follows.</t>
      <ul spacing="normal">
        <li>
          <t>If the client is variant-agnostic, the response <bcp14>SHOULD</bcp14> be the same as if
the domain to be created is reserved.</t>
        </li>
        <li>
          <t>If the client is variant-aware, the response <bcp14>MUST</bcp14> indicate that it is an
inappropriate use of the command.</t>
        </li>
      </ul>
      <t>The &lt;create&gt; <bcp14>MUST</bcp14> only be used to create the Primary Domain. The task of
converting an allocatable domain into an allocated
domain <bcp14>MUST</bcp14> be performed using the &lt;update&gt; command.</t>
      <t>If a client initiates the creation of a domain that does not
exist and is not a member of any variant group, then the following actions are
<bcp14>REQUIRED</bcp14>.</t>
      <ul spacing="normal">
        <li>
          <t>If the create is otherwise permitted and the domain could be a Primary Domain,
the server <bcp14>MUST</bcp14> ensure that all eligible members of the variant group are
prevented from creation or allocation until such time as the domain
is expressly indicated by the client to be a Primary Domain.</t>
        </li>
        <li>
          <t>The server <bcp14>MUST</bcp14> act on the create and respond to the client as if the domain is
a new domain.</t>
        </li>
      </ul>
      <t>__ TODO__: make clear that registering the first domain within any variant
group must not be rejected. The rejection only happens if at least one other
domain of that variant group already exists.</t>
      <t>The EPP &lt;create&gt; command may have five new errors, as described
in the &lt;check&gt; section above.</t>
      <t><strong>TODO</strong>: check alignment of the new error codes</t>
    </section>
    <section anchor="epp-ltupdategt-command">
      <name>EPP &lt;update&gt; command</name>
      <t>The EPP &lt;update&gt; command is extended to cover two new tasks:</t>
      <ul spacing="normal">
        <li>
          <t>Activating a variant domain in an existing variant group</t>
        </li>
        <li>
          <t>Converting an Exempted Domain into a Primary Domain and optionally
converting other Exempted Domains that are eligible to be in the variant
group of the stated Primary Domain to be activated domains of the
variant group.</t>
        </li>
      </ul>
      <t>This extended &lt;update&gt; is not valid for use by a variant-agnostic
client. Any use by a variant-agnostic client <bcp14>MUST</bcp14> be rejected.</t>
      <t>This rest of this section specifies behavior when variant-aware
servers and clients are interacting.</t>
      <t>When a client wishes to provision a new domain in a variant
group, it uses the &lt;update&gt; command rather than the
&lt;create&gt; command. This informs the server that the client
understands that the task is to provision a variant domain rather than
a new domain, and asserts that the two domains belong to the
same registrant.</t>
      <t>The &lt;update&gt; command <bcp14>MUST</bcp14> specify the domain to be activated and
include an element specifying the Primary Domain that identifies the
correct variant group for the domain.</t>
      <t>Note that depending on registry policy, the variant domain may share
attributes with the Primary Domain, e.g., nameservers.
A registry policy <bcp14>MAY</bcp14> specify rules or guidelines for the
set of elements required or permitted for a variant domain according to the
Primary Domain.</t>
      <t><strong>TODO</strong>: xml example</t>
      <t>If a client wishes to convert an exempted domain into a member
of a variant group as an allocated variant,
it issues an &lt;update&gt;
command including and element with both the Primary Domain and separately the list
of exempted domains, which the client thereby asserts belong to the
same registrant. Note that the client <bcp14>MUST</bcp14> include all related exempted domains
in the list or the server <bcp14>MUST</bcp14> reject the command. The response <bcp14>MUST</bcp14> include
the complete list of exempted domains for the client.</t>
      <t><strong>TODO</strong>: xml example</t>
    </section>
    <section anchor="epp-ltdeletegt-command">
      <name>EPP &lt;delete&gt; command</name>
      <t>If a variant-agnostic client issues a &lt;delete&gt; command there is no change
from the standard functionality.</t>
      <t>If a variant-aware client issues a &lt;delete&gt; command, the command is extended
to REQUIRE the client to include an extension indicating the Primary Domain of
the domain being deleted, which the client thereby asserts that both domains belong
to the same registrant.  If a Primary Domain is being deleted then the same
domain name <bcp14>MUST</bcp14> be specified in the extension.</t>
      <t>If a Primary Domain is to be deleted, the &lt;delete&gt; command is extended
to include the deletion of all
variant domains in all variant groups in all Variant TLDs. The response <bcp14>MUST</bcp14> include a
list of all the allocated domains in all variant groups that were deleted.</t>
      <t><strong>TODO</strong>: xml example</t>
    </section>
    <section anchor="epp-renew-command">
      <name>EPP renew command</name>
      <t>The EPP renew command is not extended.</t>
      <t>The server <bcp14>MAY</bcp14> reject renewals while a variant group is being
transferred.</t>
    </section>
    <section anchor="epp-lttransfergt-query-command">
      <name>EPP &lt;transfer&gt; query command</name>
      <t>The EPP &lt;transfer&gt; query command is not extended.</t>
      <t>Note that because variant groups are transferred as a group, the
result of the a &lt;transfer&gt; query command is necessarily the same
for all domains in a group. Therefore, the result of &lt;transfer&gt;
query command for any domain in a variant group applies to all domains
in the group.</t>
    </section>
    <section anchor="result-codes">
      <name>Result codes</name>
      <t>The following additional result codes are defined:</t>
      <t>23x1: Change impossible because of a transfer in progress.</t>
      <t>23x2: Change impossible because something is not a variant.</t>
      <t>This error code is used when a change presupposes that two domains
belong to the same variant group, but the EPP server's implementation
disagrees.</t>
      <t>23x3: Change impossible due to invalid primary domain</t>
      <t>This error code is used when the primary domain specified in the
command is not registered, or is not registered via this registrar.</t>
      <t>23x4: Change impossible due to unspecified primary domain</t>
      <t>This error code is used when a command needs to specify a primary
domain, and does not.</t>
      <t>23x5: Specified domain is exempted</t>
      <t>This error code is used when a domain specifies a primary domain, and
the change is impossible because the specified domain is exempted
instead.</t>
      <t>23x6: Specified domain is allocatable, but not by you.</t>
      <t>This result code is used when a domain is a member of a variant set,
and the command did not refer to the primary domain.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The design of this extension is almost completely based on work done
by and decisions made by the <xref target="EPDP"/> committee, which was reviewed by
a small technical design team chaired by James Galvin. Members of this
team included Dennis Tan, Rick Wilhelm, Edmon Chung, and Jennifer Chung.
This text (in RFC format) was initially written by Arnt
Gulbrandsen based on a conference presentation by James Galvin.</t>
      <t>[YOUR NAME HERE] have reviewed it and provided helpful
comments or contributed in other ways.</t>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>If two domains are different according to the DNS rules and identical
in the eyes of the intended audience, then the audience may be
confused. Confusion can always have security-related effects.</t>
      <t>This extension expresses the relationships between variants clearly,
making it a little more difficult for a would-be impersonator to
register a variant of another registrant's existing domain.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5730">
          <front>
            <title>Extensible Provisioning Protocol (EPP)</title>
            <author fullname="S. Hollenbeck" initials="S." surname="Hollenbeck"/>
            <date month="August" year="2009"/>
            <abstract>
              <t>This document describes an application-layer client-server protocol for the provisioning and management of objects stored in a shared central repository. Specified in XML, the protocol defines generic object management operations and an extensible framework that maps protocol operations to objects. This document includes a protocol specification, an object mapping template, and an XML media type registration. This document obsoletes RFC 4930. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="69"/>
          <seriesInfo name="RFC" value="5730"/>
          <seriesInfo name="DOI" value="10.17487/RFC5730"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <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">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7940">
          <front>
            <title>Representing Label Generation Rulesets Using XML</title>
            <author fullname="K. Davies" initials="K." surname="Davies"/>
            <author fullname="A. Freytag" initials="A." surname="Freytag"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document describes a method of representing rules for validating identifier labels and alternate representations of those labels using Extensible Markup Language (XML). These policies, known as "Label Generation Rulesets" (LGRs), are used for the implementation of Internationalized Domain Names (IDNs), for example. The rulesets are used to implement and share that aspect of policy defining which labels and Unicode code points are permitted for registrations, which alternative code points are considered variants, and what actions may be performed on labels containing those variants.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7940"/>
          <seriesInfo name="DOI" value="10.17487/RFC7940"/>
        </reference>
        <reference anchor="EPDP" target="https://www.icann.org/en/public-comment/proceeding/phase-2-initial-report-of-the-epdp-on-internationalized-domain-names-11-04-2024">
          <front>
            <title>Phase 2 Initial Report of the EPDP on Internationalized Domain Names</title>
            <author initials="" surname="ICANN" fullname="ICANN">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 592?>

<section anchor="open-issues">
      <name>Open issues</name>
      <t>Open issue: Assign numbers to the error codes, properly.</t>
      <t>Open issue: Not clear that there are any security considerations here
— the relationships between the domains may have some, but those exist
outside EPP, EPP merely describes them. In Italian, caffe and caffè
are variants of the same thing, it's not clear that linking them in a
protocol affects security in any way.</t>
      <t>Open issue: Check how to insert a DS record in a variant domain.</t>
      <t>Open issue: Can a unicode upgrade cause domains to become
exempted?  Yes, I think, and the terminology covers it, but as of
now, it's difficult for the EPP client to understand the situation.
Extending the &lt;info&gt; command would help here, perhaps.</t>
      <t>Open issue: Creating a primary domain now consists of a two-step
process, &lt;create&gt; and then &lt;update&gt;. The first step turns
all variants into blocked domains, the second makes them
allocatable. It's not clear to me why the two-step process is
desirable, compared to a one-step process where a &lt;create&gt;
command creates a primary domain if the variant group contains other
domains than that one. That needs a couple of sentences of
explanation, or else a change.</t>
      <t>Open issue: &lt;Delete&gt; now cascades and deletes many domains.
Should it instead turn any variant domains into exempted domains?</t>
      <t>Open issue: Should the &lt;info&gt; of the primary domain also return
the list of allocated variants? Probably not — at the moment, this
extension has the client send a set that the server checks, and the
server may need to generate a set for checking, but the server does
not need to generate a list for returning.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8U825LbxpXv/RW9TFWkSZGci+R1zMhSxjNjeWLdMjO2o6RS
LhBskvCAAI0GhmJU2tr9h/2AfcwP7MO+Jn+SL9lz60Y3iBlJTrKbcuwhgO4+
ffrcLz0ajZStk2L2fZKXhZnoumqMytYV/WXro4ODzw6OVJrUE23rmbLNdJVZ
m5VFvV3D5+dnV1+qpDLJRA+O1+s8gy/hpdUwpb4wST66ylZmoDaLia7Mwryp
lZqVaZGsYPCsSub1aJHkN1kx4rcjs16PbpIqS4rajmBlVWd1Dt+elqskK7S8
0rZZr8uq1vOy0mevXqlkOq3MzQT/1t/KcJUnBSxrCnW9mSitR/xlUy/LaqJG
moH4Dfzb6qcEBHxUVjDkfGYKWHerT7NFVic5PE/h50R/YfLc3DRmqL9L7DIr
FnWJg9KyKeoK3n9zCb8MQJpP9A+8sV9nMtl4JpO5lZ9n6TIxuf4iaQDSmVv8
6yJbr/VzM8tMoRtA49flatUU2TVhVj9dTb/y8JwCDuDdLIThqalWSbFtAVnx
OuMpr/Pra1xgPDNKFSV8Wmc3BtFz8eXJJ58+OJgolRXzzotPP3t4gH+evTp9
hf/VWo7l1TKxRh/p8yKrsySHI6djKee6Xhr6XAPM50VtqoLgT/LsT2bmjvMF
Ip/nS6qFASJb1vXaTvb3N5vNGIipKMaAlH1T7K+bKVDXKAVkAD7311WZGsBR
sdhfIwyjo1HGMAAlIQyjcj4CGICgZutRWcDbDgyjGcEwwsOwo8PD0cHD0dHB
0UMCZ5bUsDv/0xGNpv/x8Z2fHL94odRoNNLJ1NZVkgJtXy0zq4HAGwRSz8w8
KwwyAxEm0LcpkHd0kuflBmDXaQ6nXFtdlzo3SQVvpmVTK+QeOMRsDSdWG0/1
i6ps1haxy7Dboc7MePex3ixLaxTtTAN3avNjk90kOcIEWE+QFTMAeTtiCGd6
k2yJZfHjOoMHAFCiLICYG/c1QDDm/a6y2SwH+vkZnmxVzpoU0aoUbhL3L5PC
Um/fClm9ezcmHOD5wUIAooGlZubG5OWa14P/VrhbmCnRsnQ5/cGktU7gH4Br
BZv9SAyrfgzr92KYV4ZxS1h8mdwYAAr4CI/ZVICOLOVXq+Ta4FdmFWAZ8HSZ
rbI8qXBdgGxI/LCusiLN1sAnqxK4ixkaRViNm2qB3yQEL9D4DUgPPAgU0Uk1
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
KX3xv2rHDY6dYwAA

-->

</rfc>
