<?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"?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="yes"?>
<?rfc comments="yes" ?>
<?rfc inline="yes" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-gould-regext-epp-status-set-00" ipr="trust200902" submissionType="IETF" consensus="true" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="EPP Status Set Extension">
     Status Set Extension Mapping for the Extensible Provisioning Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-gould-regext-epp-status-set-00"/>
    <author fullname="James Gould" initials="J." surname="Gould">
      <organization>VeriSign, Inc.</organization>
      <address>
        <postal>
          <street>12061 Bluemont Way</street>
          <city>Reston</city>
          <region>VA</region>
          <code>20190</code>
          <country>United States of America</country>
        </postal>
        <email>jgould@verisign.com</email>
        <uri>http://www.verisign.com</uri>
      </address>
    </author>
    <author fullname="Poonam Garg" initials="P." surname="Garg">
      <organization>VeriSign, Inc.</organization>
      <address>
        <postal>
          <street>12061 Bluemont Way</street>
          <city>Reston</city>
          <region>VA</region>
          <code>20190</code>
          <country>United States of America</country>
        </postal>
        <email>pogarg@verisign.com</email>
        <uri>http://www.verisign.com</uri>
      </address>
    </author>
    <author fullname="Mohammad Suhale Malang Khader" initials="M.S." surname="Malang Khader">
      <organization>VeriSign, Inc.</organization>
      <address>
        <postal>
          <street>12061 Bluemont Way</street>
          <city>Reston</city>
          <region>VA</region>
          <code>20190</code>
          <country>United States of America</country>
        </postal>
        <email>mmalangkhader@verisign.com</email>
        <uri>http://www.verisign.com</uri>
      </address>
    </author>
    <area>General</area>
    <keyword>EPP</keyword>
    <keyword>Extensible Provisioning Protocol</keyword>
    <keyword>XML</keyword>
    <keyword>EAT</keyword>
    <keyword>Status Set</keyword>
    <keyword>Extension</keyword>
    <abstract>
      <t>
      This document describes an Extensible Provisioning Protocol (EPP) extension for the provisioning and management 
      of status sets applied to EPP objects, such as the domain name object in RFC 5731.  The EPP
      status values defined in the EPP object mappings, such as Section 2.3 of RFC 5731, support human-readable text that 
      describes the rationale or reason for the status applied to the object.   There can be many overlapping reasons for 
      a status value being applied to the object, such as implementing 
      a lock service, complying with a court order, or addressing domain abuse.  A status 
      set defines an object representing the reason for setting a list of status values, so clients and servers can manage the status sets 
      in place of individual status values to effectively manage the overlapping reasons.  The EPP extension supports the provisioning of client 
      status sets, disclosure of the server status sets, and an enhanced authorization model for client status sets with 
      the EPP Authentication Token in draft-gould-regext-epp-auth-token.
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
      This document describes an Extensible Provisioning Protocol (EPP) extension for the provisioning and management 
      of status sets applied to EPP objects, such as the domain name object in <xref target="RFC5731"/> and the host object in <xref target="RFC5732"/>.  
      The EPP status values defined in the EPP object mappings, such as Section 2.3 of <xref target="RFC5731"/>, support human-readable text that describes the 
      rationale or reason for the status applied to the object.  There can be many overlapping reasons for a status value being applied to the object, 
      such as implementing a lock service, complying with a court order, or addressing domain abuse.  A status 
      set defines an object representing the reason for setting a list of status values, so clients and servers can manage the status sets 
      in place of individual status values to effectively manage the overlapping reasons.  The EPP extension supports the provisioning of client 
      status sets, disclosure of the server status sets, and an enhanced authorization model for client status sets with 
      the Authentication Token in draft-gould-regext-epp-auth-token. This document defines new EPP commands in the form of the Status Set Info, Status Set Create, 
      Status Set Delete, Status Set Renew, and Status Set Update.  
      </t>
      <t>This document describes a Status Set Extension Mapping for version 1.0 of the Extensible Provisioning Protocol (EPP) <xref target="RFC5730"/>. 
      This extension is specified using the XML 1.0 as described in 
      <xref target="W3C.REC-xml-20040204"/> and XML Schema notation as described in 
      <xref target="W3C.REC-xmlschema-1-20041028"/> and 
      <xref target="W3C.REC-xmlschema-2-20041028"/>.</t>
      <section 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
        <xref target="BCP14"/> when, and only when, they appear in all capitals, as
        shown here.</t>
        <t>In examples, "C:" represents lines sent by a protocol client and "S:"
        represents lines returned by a protocol server.  Indentation and white
        space in examples is provided only to illustrate element relationships
        and is not a REQUIRED feature of this specification.</t>
        <t>XML is case sensitive.  Unless stated otherwise, XML specifications
        and examples provided in this document MUST be interpreted in the
        character case presented to develop a conforming implementation.</t>
        <t>The XML namespace prefix "statusSet" is used for the namespace
        "urn:ietf:params:xml:ns:epp:statusSet-0.1", but implementations MUST NOT
        depend on it; instead, they should employ a proper namespace-aware
        XML parser and serializer to interpret and output the XML documents.</t>
      </section>
      <section anchor="registrar-user" numbered="true" toc="default">
        <name>Registrar User</name>
        <t><xref target="RFC8499"/> defines the registrar as "a service provider that acts as a go-between for registrants and registries." and defines 
        the registrant and registry.  A registrar can have many users that interface with the registry across many channels, such as EPP and Web User Interface (UI), which is referred to as a Registrar User in this document.
        The EPP client in <xref target="RFC5730"/>, referred to as the EPP Registrar User is this document, is a registrar system that uses the EPP Registrar User credentials to authenticate with the &lt;login&gt; command to establish an EPP session.
        The Registrar User authenticates to create the Authentication Token, defined in draft-gould-regext-epp-auth-token, that MUST NOT be the EPP Registrar 
        User since the EPP Registrar User is used only to create the EPP session.  
        The ability to provision Status Sets using an Authentication Token is based on enabling a Registrar User to 
        generate an Authentication Token and having the required set of authorization groups to authorize a Status Set action.</t>
      </section>
    </section>
    <section anchor="attrs" numbered="true" toc="default">
      <name>Object Attributes</name>
      <t>This extension adds additional elements to EPP objects, such as the domain name mapping described 
      in <xref target="RFC5731"/> and the host mapping described in <xref target="RFC5732"/>. Common attributes 
      are described here.</t>
      <section anchor="status-value">
        <name>Status Value</name>
        <t>A Status Value is defined for EPP objects in the EPP extensions, such as Status Values in Section 2.3 of <xref target="RFC5731"/> and Section 3.1 of <xref target="RFC3915"/>.  There is a single 
        Status Value assigned to an object by type, such as the "clientUpdateProhibited" Status Value in <xref target="RFC5731"/> and the "redemptionPeriod" Status Value in <xref target="RFC3915"/>.  The 
        Status Value can include a text message indicating the reason(s) that the Status Value is set, such as:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
<domain:status s="clientUpdateProhibited">
Auth Token Lock,Registrar Lock
</domain:status>
            ]]></artwork>
        <t>Inclusion and format of the Status Value reason(s) is specific to each server implemenation, and the client needs to implement the server-specific format.  
        The Status Set, described in <xref target="status-set"/>, makes the reason string into a named object with 
        a set of attributes, including the associated Status Values.</t>
      </section>
      <section anchor="status-set">
        <name>Status Set</name>
        <t>A Status Set is an object that defines the reason for the <xref target="status-value">Status Values</xref> for an EPP object, 
        such as the domain name object in <xref target="RFC5731"/> and the host object in <xref target="RFC5732"/>.  The Status Set can also be used as a Marker Status Set when 
        there are no mapped Status Values that can drive additional business logic and publishing use cases.  An EPP object can have many assigned Status Sets, and the Status Sets can include 
        an overlapping set of Status Values.  The Status Value will be assigned to the object if there is at least one Status Set assigned to the object with the mapped Status Value.  The Status Value will be unassigned from the object 
        when all Status Sets are unassigned with the mapped Status Value.  For example, both the "Registrar Lock" Status Set and the "Auth Token Lock" Status Set are mapped to the "clientUpdateProhibited" Status Value, 
        where if either of the Status Sets are assigned to the EPP object, the "clientUpdateProhibited" Status Value will be assigned. "clientUpdateProhibited" Status Value will be unassigned if both "Registrar Lock" Status Set 
        and "Auth Token Lock" Status Sets are unassigned.
        A Status Set has the following attributes:</t>
        <ul>
          <li>"name": The unique name for the Status Set that is up to server policy.  The reserved name "REDACTED" can be used for a Server Status Set where the server cannot disclose the reason, such as the case for a sealed court order.  
          Example names include "Registrar Lock", "Auth Token Lock", and "Registry Lock".</li>
          <li>"type": The type of Status Set, which is either "client" for a Client Status Set or "server" for a Server Status Set.  A Client Status Set MAY be set, unset, and overridden with authorization defined in the <xref target="authentication-token">Authentication Token</xref> by the client.  
          A Server Status Set MUST only be set and unset by the server and MUST NOT be overridden by the client.</li>
          <li>"authTokenUsed": A boolean value indicating whether or not an <xref target="authentication-token">Authentication Token</xref> is used with the Client Status Set.  If "true", an <xref target="authentication-token">Authentication Token</xref> is needed to authorize setting, unsetting, and overriding the Client Status Set; 
          otherwise the <xref target="authentication-token">Authentication Token</xref> does not need to be passed. This value MUST be set only when the "type" attribute is set to "client".</li>
          <li>"inherited": A boolean value indicating whether or not the Status Set is inherited from the parent object (domain name) and is inherited by the child objects (hosts).  The Status Values of the object only include Status Sets directly assigned and not inherited by the object.  Inherited Status Values are enforced by the server but NOT persisted to the child object.</li>
          <li>"assigned": A boolean value indicating whether or not the Status Set is directly assigned to the object.  The &lt;info&gt; command supports returning "all" Status Sets for the client to see what Client Status Sets are available and directly assigned to the object.  Only "assigned" Server Status Sets will be returned in the &lt;info&gt; response extension.</li>
          <li>"crDate": Date and time that the Status Set was assigned to the EPP object.</li>
          <li>"status": List of 0 or more <xref target="status-value">Status Values</xref> mapped to the Status Set.  A Status Set with zero Status Values is considered a Marker Status Set.  Example Status Values include the lock statuses from 
          <xref target="RFC5731"/> and <xref target="RFC5732"/> with "clientUpdateProhibited", "clientDeleteProhibited", "clientTransferProhibited", "serverUpdateProhibited", "serverDeleteProhibited", and "serverTransferProhibited".</li>
          <li>"reason": Reason that the Status Set was assigned to the object.  This is only needed when the "name" attribute alone doesn't clearly indicate the reason.  An example is providing the more detailed reason "Botnet domain name"
          for the "Domain Abuse" Status Set.</li>
        </ul>
        <t>A client can manage Client Status Values using Client Status Sets instead of setting individual Client Status Values, since the Status Set represents a container of Status Values that can overlap.  The Status Set 
        provides an explicit signal of the Status Value reasons that improves the status management when there are overlapping reasons.  The support for the <xref target="authentication-token">Authentication Token</xref> provides an 
        additional layer of authorization with the ability to override Client Status Sets in Status Set transform commands.</t>
      </section>
      <section anchor="authentication-token">
        <name>Authentication Token</name>
        <t>The Authentication Token, defined in section 2.1 of draft-gould-regext-epp-auth-token, uses JSON Web Signature (JWS), defined in <xref target="RFC7515"/>, with JWS Compact Serialization, defined in Section 3.1 of <xref target="RFC7515"/>, to digitally sign 
        the JWS Protected Header properties and JWS Payload claims in a single string that is embedded in the &lt;statusSet:authToken&gt; XML element.  An Authentication Token is used 
        to authorize provisioning and overriding a Client Status Set that has the &lt;statusSet:authTokenUsed&gt; element set to "1" or "true" in the <xref target="info">Status Set Info Response</xref>.
        The overriding capability MUST only apply to Client Status Sets.</t>
        <t keepWithNext="true">Example Authentication Token XML element:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
      <statusSet:authToken>
eyJhbGciOiJFUzUxMiIsInR5cCI6ImVhdCtqd3MiLCJraWQiOiJFQVRfS0VZMV9TWVN
URU0tUkVQIn0.eyJqdGkiOiJFQVRfMTIzNDVfU1lTVEVNLVJFUCIsInN1YiI6IkNsaW
VudFkiLCJleHAiOiIxNzc1NjgyMDAwIiwiZW50aXRsZW1lbnRzIjpbIlNFUlZJQ0UxL
VJPIiwiU0VSVklDRTItUlciLCJUTEQxLVJXIiwiVExEMi1SVyJdfQ.ADJWkWMnZUFLl
l2Jzxbw00919aC_qm_9UgeBKCY6MSAnVZtOmqVlE-Gfyut5dk7iU69VXKRi89RU3L4Y
MyVvykFvAJm-aqNpHkYaYUZ_a0aZeN2KcVTVUXzPEtnq7kldvJTpYhB1-JmbFuQ2B6Z
5PFZeR5k-ScmDEDdFl9nIFCLd5-mF
      </statusSet:authToken>
            ]]></artwork>
      </section>
      <section anchor="m-of-n">
        <name>M-of-N</name>
        <t>M-of-N applies to the use of <xref target="authentication-token">Authentication Tokens</xref>, where M defines the number of <xref target="registrar-user">registrar users</xref> 
        with a valid <xref target="authentication-token">Authentication Token</xref> needed to authorize a Status Set action out of N <xref target="registrar-user">registrar users</xref>  
        that can generate an Authentication Token. The Status Set transform commands support providing a list of <xref target="authentication-token">Authentication Tokens</xref>, using the &lt;statusSet:authToken&gt; elements.  
        The value of M is up to server policy and can be at the server-level that applies to all registrars or can apply at the registrar-level and configured on a per-registrar basis.  
        The value of N is dynamic and is based on the number of <xref target="registrar-user">registrar users</xref> that support the generation of <xref target="authentication-token">Authentication Tokens</xref> in the server.</t>
      </section>
    </section>
    <section anchor="commands" numbered="true" toc="default">
      <name>EPP Command Mapping</name>
      <t>A detailed description of the EPP syntax and semantics can be found in
      the EPP core protocol specification <xref target="RFC5730" format="default"/>.</t>
      <section anchor="queries" numbered="true" toc="default">
        <name>EPP Query Commands</name>
        <t>This document defines one EPP Query Command with &lt;info&gt; to 
        retrieve the Status Set information for the object.  This document does not
        define a mapping for the EPP &lt;check&gt; command or the &lt;transfer&gt; command.</t>
        <section anchor="check" numbered="true" toc="default">
          <name>EPP &lt;check&gt; Command</name>
          <t>This extension does not add any elements to the EPP &lt;check&gt;
          command or &lt;check&gt; response.</t>
        </section>
        <section anchor="info" numbered="true" toc="default">
          <name>EPP &lt;info&gt; Command</name>
          <t>A new Status Set Info Command by extending the EPP &lt;info&gt; command 
          to get information for an EPP object with the inclusion of the Status Set information, defined in <xref target="status-set"/>,  
          that is optionally authorized by applying the Authentication Tokens and their authorization groups, defined in <xref target="authentication-token"/>.</t>
          <t>In addition to the EPP command elements described in the EPP &lt;info&gt; command, the command MAY contain an &lt;extension&gt; element.  
          The &lt;extension&gt; element MUST contain a child &lt;statusSet:info&gt; element with an OPTIONAL "sets" attribute that can be either "assigned" 
          or "all", with "assigned" being the default value. The value "assigned" can be used to return the Status Sets directly assigned to or inherited by the EPP object, 
          and "all" to return the Status Sets that are assigned to and available for the EPP object.  The &lt;statusSet:info&gt; element contains the following 
          child elements:</t>
          <ul spacing="normal">
            <li>An OPTIONAL list of &lt;statusSet:authToken&gt; elements, defined in <xref target="authentication-token"/>, that supports 
            authorizing the data returned in the Status Set Info Response in support of M-of-N authorization, defined in <xref target="m-of-n"/>.
            The authorization groups in the list of <xref target="authentication-token">Authentication Tokens</xref> are intersected to determine 
            the data that will be returned.  If no &lt;statusSet:authToken&gt; elements are provided, the server will return the 
            default data based on the EPP <xref target="registrar-user">Registrar User</xref> authorization of the EPP session.</li>
          </ul>
          <t keepWithNext="true">Example Domain Name Status Set Info Command that uses the default "assigned" form:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp
C:  xmlns="urn:ietf:params:xml:ns:epp-1.0">
C:  <command>
C:    <info>
C:      <domain:info
C:        xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C:        <domain:name>domain.example</domain:name>
C:      </domain:info>
C:    </info>
C:   <extension>
C:      <statusSet:info 
C:      xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1"/>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t keepWithNext="true">Example Domain Name Status Set Info Command that 
            uses the "assigned" form with two authentication tokens to determine 
            the data returned:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp
C:  xmlns="urn:ietf:params:xml:ns:epp-1.0">
C:  <command>
C:    <info>
C:      <domain:info
C:        xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C:        <domain:name>domain.example</domain:name>
C:      </domain:info>
C:    </info>
C:    <extension>
C:      <statusSet:info 
C:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1" 
C:        sets="assigned">
C:        <statusSet:authToken>
C:eyJhbGciOiJFUzUxMiIsInR5cCI6ImVhdCtqd3MiLCJraWQiOiJFQVRfS0VZMV9TWVN
C:URU0tUkVQIn0.eyJqdGkiOiJFQVRfMTIzNDVfU1lTVEVNLVJFUCIsInN1YiI6IkNsaW
C:VudFkiLCJleHAiOiIxNzc1NjgyMDAwIiwiZW50aXRsZW1lbnRzIjpbIlNFUlZJQ0UxL
C:VJPIiwiU0VSVklDRTItUlciLCJUTEQxLVJXIiwiVExEMi1SVyJdfQ.ADJWkWMnZUFLl
C:l2Jzxbw00919aC_qm_9UgeBKCY6MSAnVZtOmqVlE-Gfyut5dk7iU69VXKRi89RU3L4Y
C:MyVvykFvAJm-aqNpHkYaYUZ_a0aZeN2KcVTVUXzPEtnq7kldvJTpYhB1-JmbFuQ2B6Z
C:5PFZeR5k-ScmDEDdFl9nIFCLd5-mF
C:        </statusSet:authToken>   
C:        <statusSet:authToken>
C:eyJ0eXAiOiJKV1QiLA0KICabcJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJ
C:leHAiOjEzMDAabc4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp
C:0cnVlfQ.dBjftJeZ4CVP-mB92K27abcuhbUJU1p1r_wW1gFWFOEjXk
C:        </statusSet:authToken>
C:      </statusSet:info>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t keepWithNext="true">Example Domain Name Status Set Info Command that uses the "all" form:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp
C:  xmlns="urn:ietf:params:xml:ns:epp-1.0">
C:  <command>
C:    <info>
C:      <domain:info
C:        xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C:        <domain:name>domain.example</domain:name>
C:      </domain:info>
C:    </info>
C:    <extension>
C:      <statusSet:info 
C:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1" 
C:        sets="all"/>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t>If the query was successful, the server replies with a 
            &lt;statusSet:infData&gt; element along with the regular EPP &lt;resData&gt;.  The 
            &lt;statusSet:infData&gt; contains the following child elements:</t>
          <ul spacing="normal">
            <li>A &lt;statusSet:name&gt; element that includes the unique name for the Status Set that is up to server policy.  
              Example names include "Registrar Lock", "Auth Token Lock", and "Registry Lock".  There is a reserved value 
              of "REDACTED" that is used for a Server Status Set, where the name must be redacted based on server policy.</li>
            <li>A &lt;statusSet:type&gt; element that indicates whether the Status Set is a Client Status Set with a 
              value of "client" or the Status Set is a Server Status Set with a value of "server".</li>
            <li>An OPTIONAL &lt;statusSet:authTokenUsed&gt; element that is a boolean with a default value of "false" that indicates whether 
              the Status Set uses the Authentication Token, defined in <xref target="authentication-token"/>.
              If "1" or "true", an Authentication Token is needed to authorize the setting, unsetting, and overriding the Client Status Set; 
              otherwise with a value of "0" or "false" the Authentication Token does not need to be passed.  An OPTIONAL 
              "num" attribute, with a default value of "1", indicates the M value in M-of-N, defined in <xref target="m-of-n"/>.</li>
            <li>An OPTIONAL &lt;statusSet:inherited&gt; element that is a boolean with a default value of "false" that indicates whether
              the Status Set is inherited from the parent object (domain name), in the case of the EPP Host object in <xref target="RFC5732"/>, 
              and is inherited by the child objects (hosts), in the case of the EPP Domain Name object in <xref target="RFC5731"/>.</li>
            <li>An OPTIONAL &lt;statusSet:assigned&gt; element that is a boolean with a default value of "true" that indicates whether
              the Status Set is assigned to the EPP object.  A value of "false" indicates that the Status Set is available to be set, which 
              only applies to Client Status Sets.</li>
            <li>An OPTIONAL &lt;statusSet:crDate&gt; element that is the date and time that the Status Set was assigned to the object.</li>
            <li>An OPTIONAL list of zero or more &lt;statusSet:status&gt; elements that includes the Status Values, defined in <xref target="status-value"/> 
              mapped to the Status Set.</li>
            <li>An OPTIONAL &lt;statusSet:reason&gt; element that indicates the freefrom text reason that Status Set was assigned to the object.</li>
          </ul>
          <t keepWithNext="true">Example Domain Name Status Set Info Response that includes the assigned Client Status Sets ("Auth Token Lock" and "Registrar Lock") 
            and the assigned Server Status Set ("Registry Lock"):</t>
          <artwork name="" type="" align="left" alt=""><![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:infData
S:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S:        <domain:name>example.com</domain:name>
S:        <domain:roid>EXAMPLE1-REP</domain:roid>
S:        <domain:status s="clientUpdateProhibited">
S:       Auth Token Lock,Registrar Lock
S:        </domain:status>
S:        <domain:status s="clientDeleteProhibited">
S:        Auth Token Lock,Registrar Lock
S:        </domain:status>
S:        <domain:status s="clientTransferProhibited">
S:        Auth Token Lock,Registrar Lock
S:        </domain:status>
S:        <domain:status s="serverUpdateProhibited">
S:        Registry Lock
S:        </domain:status>
S:        <domain:status s="serverDeleteProhibited">
S:        Registry Lock
S:        </domain:status>
S:        <domain:status s="serverTransferProhibited">
S:        Registry Lock
S:        </domain:status>
S:        <domain:ns>
S:          <domain:hostObj>ns1.example.com</domain:hostObj>
S:          <domain:hostObj>ns1.example.net</domain:hostObj>
S:        </domain:ns>
S:        <domain:host>ns1.example.com</domain:host>
S:        <domain:host>ns2.example.com</domain:host>
S:        <domain:clID>ClientX</domain:clID>
S:        <domain:crID>ClientY</domain:crID>
S:        <domain:crDate>2000-04-03T22:00:00.0Z</domain:crDate>
S:        <domain:upID>ClientX</domain:upID>
S:        <domain:upDate>2026-05-03T09:10:00.0Z</domain:upDate>
S:        <domain:exDate>2027-04-03T22:00:00.0Z</domain:exDate>
S:        <domain:trDate>2022-04-08T09:00:00.0Z</domain:trDate>
S:        <domain:authInfo>
S:          <domain:pw>2fooBAR</domain:pw>
S:        </domain:authInfo>
S:      </domain:infData>
S:    </resData>
S:    <extension>
S:      <statusSet:infData 
S:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
S:        <statusSet:statusSet>
S:          <statusSet:name>Auth Token Lock</statusSet:name>
S:          <statusSet:type>client</statusSet:type>
S:          <statusSet:authTokenUsed>true</statusSet:authTokenUsed>
S:          <statusSet:inherited>true</statusSet:inherited>
S:          <statusSet:assigned>true</statusSet:assigned>
S:          <statusSet:crDate>2026-05-03T09:00:00.0Z
S:          </statusSet:crDate>
S:          <statusSet:status>clientUpdateProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientDeleteProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientTransferProhibited
S:          </statusSet:status>
S:        </statusSet:statusSet>
S:       <statusSet:statusSet>
S:          <statusSet:name>Registrar Lock</statusSet:name>
S:          <statusSet:type>client</statusSet:type>
S:          <statusSet:authTokenUsed>false</statusSet:authTokenUsed>
S:          <statusSet:inherited>false</statusSet:inherited>
S:          <statusSet:assigned>true</statusSet:assigned>
S:          <statusSet:crDate>2026-05-03T09:00:00.0Z
S:          </statusSet:crDate>
S:          <statusSet:status>clientUpdateProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientDeleteProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientTransferProhibited
S:          </statusSet:status>
S:        </statusSet:statusSet>
S:        <statusSet:statusSet>
S:          <statusSet:name>Registry Lock</statusSet:name>
S:          <statusSet:type>server</statusSet:type>
S:          <statusSet:authTokenUsed>false</statusSet:authTokenUsed>
S:          <statusSet:inherited>false</statusSet:inherited>
S:          <statusSet:assigned>true</statusSet:assigned>
S:          <statusSet:crDate>2026-05-03T09:10:00.0Z
S:          </statusSet:crDate>
S:          <statusSet:status>serverUpdateProhibited
S:          </statusSet:status>
S:          <statusSet:status>serverDeleteProhibited
S:          </statusSet:status>
S:          <statusSet:status>serverTransferProhibited
S:          </statusSet:status>
S:        </statusSet:statusSet>
S:      </statusSet:infData>
S:    </extension>
S:    <trID>
S:      <clTRID>ABC-12345</clTRID>
S:      <svTRID>54322-XYZ</svTRID>
S:    </trID>
S:  </response>
S:</epp>
              ]]></artwork>
          <t keepWithNext="true">Example Domain Name Status Set Info Response with the "all" form that includes
            the two assigned Client Status Sets ("Registrar Lock", "Auth Token Lock"), the two 
            assigned Server Status Sets ("Registry Lock" and the reserved "REDACTED"), and 
            the available Client Status Set ("Registrar Court Order Lock"):</t>
          <artwork name="" type="" align="left" alt=""><![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:infData
S:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S:        <domain:name>example.com</domain:name>
S:        <domain:roid>EXAMPLE1-REP</domain:roid>
S:        <domain:status s="clientUpdateProhibited">
S:        Auth Token Lock,Registrar Lock
S:        </domain:status>
S:        <domain:status s="clientDeleteProhibited">
S:        Auth Token Lock,Registrar Lock
S:        </domain:status>
S:        <domain:status s="clientTransferProhibited">
S:        Auth Token Lock,Registrar Lock
S:        </domain:status>
S:        <domain:status s="serverUpdateProhibited">
S:        Registry Lock
S:        </domain:status>
S:        <domain:status s="serverDeleteProhibited">
S:        Registry Lock
S:        </domain:status>
S:        <domain:status s="serverTransferProhibited">
S:        Registry Lock
S:        </domain:status>
S:        <domain:status s="serverHold">
S:        REDACTED
S:        </domain:status>
S:        <domain:ns>
S:         <domain:hostObj>ns1.example.com</domain:hostObj>
S:          <domain:hostObj>ns1.example.net</domain:hostObj>
S:        </domain:ns>
S:        <domain:host>ns1.example.com</domain:host>
S:        <domain:host>ns2.example.com</domain:host>
S:        <domain:clID>ClientX</domain:clID>
S:        <domain:crID>ClientY</domain:crID>
S:        <domain:crDate>2000-04-03T22:00:00.0Z</domain:crDate>
S:        <domain:upID>ClientX</domain:upID>
S:        <domain:upDate>2026-05-03T09:10:00.0Z</domain:upDate>
S:        <domain:exDate>2027-04-03T22:00:00.0Z</domain:exDate>
S:        <domain:trDate>2022-04-08T09:00:00.0Z</domain:trDate>
S:        <domain:authInfo>
S:          <domain:pw>2fooBAR</domain:pw>
S:        </domain:authInfo>
S:      </domain:infData>
S:    </resData>
S:    <extension>
S:      <statusSet:infData 
S:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
S:        <statusSet:statusSet>
S:          <statusSet:name>Auth Token Lock</statusSet:name>
S:          <statusSet:type>client</statusSet:type>
S:          <statusSet:authTokenUsed>true</statusSet:authTokenUsed>
S:          <statusSet:inherited>true</statusSet:inherited>
S:          <statusSet:assigned>true</statusSet:assigned>
S:          <statusSet:crDate>2026-05-03T09:00:00.0Z<
S:            /statusSet:crDate>
S:          <statusSet:status>clientUpdateProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientDeleteProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientTransferProhibited
S:          </statusSet:status>
S:        </statusSet:statusSet>
S:       <statusSet:statusSet>
S:          <statusSet:name>Registrar Lock</statusSet:name>
S:          <statusSet:type>client</statusSet:type>
S:          <statusSet:authTokenUsed>false</statusSet:authTokenUsed>
S:          <statusSet:inherited>false</statusSet:inherited>
S:          <statusSet:assigned>true</statusSet:assigned>
S:          <statusSet:crDate>2026-05-03T09:00:00.0Z
S:          </statusSet:crDate>
S:          <statusSet:status>clientUpdateProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientDeleteProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientTransferProhibited
S:          </statusSet:status>
S:        </statusSet:statusSet>
S:        <statusSet:statusSet>
S:          <statusSet:name>Registry Lock</statusSet:name>
S:          <statusSet:type>server</statusSet:type>
S:          <statusSet:authTokenUsed>false</statusSet:authTokenUsed>
S:          <statusSet:inherited>false</statusSet:inherited>
S:          <statusSet:assigned>true</statusSet:assigned>
S:          <statusSet:crDate>2026-05-03T09:10:00.0Z
S:          </statusSet:crDate>
S:          <statusSet:status>serverUpdateProhibited
S:          </statusSet:status>
S:          <statusSet:status>serverDeleteProhibited
S:          </statusSet:status>
S:          <statusSet:status>serverTransferProhibited
S:          </statusSet:status>
S:        </statusSet:statusSet>
S:        <statusSet:statusSet>
S:          <statusSet:name>REDACTED</statusSet:name>
S:          <statusSet:type>server</statusSet:type>
S:          <statusSet:authTokenUsed>false</statusSet:authTokenUsed>
S:          <statusSet:inherited>false</statusSet:inherited>
S:          <statusSet:assigned>true</statusSet:assigned>
S:          <statusSet:crDate>2026-05-01T10:11:00.0Z
S:          </statusSet:crDate>
S:          <statusSet:status>serverHold</statusSet:status>
S:        </statusSet:statusSet>
S:       <statusSet:statusSet>
S:          <statusSet:name>Registrar Court Order Lock
S:          </statusSet:name>
S:          <statusSet:type>client</statusSet:type>
S:          <statusSet:authTokenUsed>false</statusSet:authTokenUsed>
S:          <statusSet:inherited>false</statusSet:inherited>
S:          <statusSet:assigned>false</statusSet:assigned>
S:          <statusSet:status>clientUpdateProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientDeleteProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientTransferProhibited
S:          </statusSet:status>
S:        </statusSet:statusSet>
S:      </statusSet:infData>
S:    </extension>
S:    <trID>
S:      <clTRID>ABC-12345</clTRID>
S:      <svTRID>54322-XYZ</svTRID>
S:    </trID>
S:  </response>
S:</epp>
              ]]></artwork>
          <t keepWithNext="true">Example Host Status Set Info Response that includes
            an the inherited Client Status Set ("Auth Token Lock") from 
            the parent domain name:</t>
          <artwork name="" type="" align="left" alt=""><![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:      <host:infData
S:       xmlns:host="urn:ietf:params:xml:ns:host-1.0">
S:        <host:name>ns1.example.com</host:name>
S:        <host:roid>NS1_EXAMPLE1-REP</host:roid>
S:        <host:status s="ok"/>
S:        <host:addr ip="v4">192.0.2.2</host:addr>
S:        <host:addr ip="v4">192.0.2.29</host:addr>
S:        <host:addr ip="v6">1080:0:0:0:8:800:200C:417A</host:addr>
S:        <host:clID>ClientY</host:clID>
S:        <host:crID>ClientX</host:crID>
S:        <host:crDate>2000-04-03T22:00:00.0Z</host:crDate>
S:        <host:upID>ClientX</host:upID>
S:        <host:upDate>2026-05-03T09:00:00.0Z</host:upDate>
S:        <host:trDate>2022-04-08T09:00:00.0Z</host:trDate>
S:      </host:infData>
S:    </resData>
S:    <extension>
S:      <statusSet:infData 
S:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
S:        <statusSet:statusSet>
S:          <statusSet:name>Auth Token Lock</statusSet:name>
S:          <statusSet:type>client</statusSet:type>
S:          <statusSet:authTokenUsed>true</statusSet:authTokenUsed>
S:          <statusSet:inherited>true</statusSet:inherited>
S:          <statusSet:assigned>false</statusSet:assigned>
S:          <statusSet:crDate>2026-05-03T09:00:00.0Z
S:          </statusSet:crDate>
S:          <statusSet:status>clientUpdateProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientDeleteProhibited
S:          </statusSet:status>
S:          <statusSet:status>clientTransferProhibited
S:          </statusSet:status>
S:        </statusSet:statusSet>
S:      </statusSet:infData>
S:    </extension>
S:    <trID>
S:      <clTRID>ABC-12345</clTRID>
S:      <svTRID>54322-XYZ</svTRID>
S:    </trID>
S:  </response>
S:</epp>
              ]]></artwork>
        </section>
        <section anchor="transferQ" numbered="true" toc="default">
          <name>EPP &lt;transfer&gt; Command</name>
          <t>This extension does not add any elements to the EPP &lt;transfer&gt;
          query command or &lt;transfer&gt; query response.</t>
        </section>
      </section>
      <section anchor="transforms" numbered="true" toc="default">
        <name>EPP Transform Commands</name>
        <t>This document defines a new EPP Status Set Command for each of the 
        EPP Transform Commands, defined in <xref target="RFC5730"/>, to enable 
        the provisioning of the Client Status Sets in the &lt;create&gt; and 
        &lt;update&gt; commands and the overriding of the Client Status Sets 
        with the passing of one or more Authentication Tokens in 
        each of the EPP Status Set Transform Commands.  An example is the definition 
        of the EPP Domain Status Set Update Command in <xref target="update"/> extending the domain name 
        &lt;update&gt; command in <xref target="RFC5731"/>.</t>
        <section anchor="create" numbered="true" toc="default">
          <name>EPP &lt;create&gt; Command</name>
          <t>A new Status Set Create Command by extending the EPP &lt;create&gt; command 
          to create an EPP object, such as the domain name in <xref target="RFC5731"/> or a host in <xref target="RFC5732"/>, 
          with a list of <xref target="status-set">Status Sets</xref> that will be assigned initially.
          In addition to the EPP command elements described in the EPP &lt;create&gt; command, the command MAY contain an &lt;extension&gt; element.  
          The &lt;extension&gt; element MUST contain a child &lt;statusSet:create&gt; element 
          that contains the following child elements:</t>
          <ul spacing="normal">
            <li>An OPTIONAL list of &lt;statusSet:authToken&gt; elements, defined in <xref target="authentication-token"/>, that supports 
            authorizing the assigning of the Status Sets in support of M-of-N authorization, defined in <xref target="m-of-n"/>.</li>
            <li>One or more &lt;statusSet:statusSet&gt; elements that include the unique name of the Status Set, defined in <xref target="status-set"/>.</li>
          </ul>
          <t keepWithNext="true">Example Domain Name Status Set Create Command that sets the "Registrar Lock" Status Set:</t>
          <artwork name="" type="" align="left" alt=""><![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:    <create>
C:      <domain:create
C:      xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C:        <domain:name>example.com</domain:name>
C:        <domain:period unit="y">2</domain:period>
C:        <domain:ns>
C:          <domain:hostObj>ns1.example.net</domain:hostObj>
C:          <domain:hostObj>ns2.example.net</domain:hostObj>
C:        </domain:ns>
C:        <domain:authInfo>
C:          <domain:pw>2fooBAR</domain:pw>
C:        </domain:authInfo>
C:      </domain:create>
C:    </create>
C:    <extension>
C:      <statusSet:create 
C:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
C:        <statusSet:statusSet>Registrar Lock</statusSet:statusSet>
C:      </statusSet:create>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t keepWithNext="true">Example Domain Name Status Set Create Command that sets the "Registrar Lock" Status Set and 
              the "Auth Token Lock", which includes 2 Authentication Tokens to meet an M value of 2, in M-of-N:</t>
          <artwork name="" type="" align="left" alt=""><![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:    <create>
C:      <domain:create
C:      xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C:        <domain:name>example.com</domain:name>
C:        <domain:period unit="y">2</domain:period>
C:        <domain:ns>
C:          <domain:hostObj>ns1.example.net</domain:hostObj>
C:          <domain:hostObj>ns2.example.net</domain:hostObj>
C:        </domain:ns>
C:        <domain:authInfo>
C:          <domain:pw>2fooBAR</domain:pw>
C:        </domain:authInfo>
C:      </domain:create>
C:    </create>
C:    <extension>
C:      <statusSet:create 
C:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
C:        <statusSet:authToken>
C:eyJhbGciOiJFUzUxMiIsInR5cCI6ImVhdCtqd3MiLCJraWQiOiJFQVRfS0VZMV9TWVN
C:URU0tUkVQIn0.eyJqdGkiOiJFQVRfMTIzNDVfU1lTVEVNLVJFUCIsInN1YiI6IkNsaW
C:VudFkiLCJleHAiOiIxNzc1NjgyMDAwIiwiZW50aXRsZW1lbnRzIjpbIlNFUlZJQ0UxL
C:VJPIiwiU0VSVklDRTItUlciLCJUTEQxLVJXIiwiVExEMi1SVyJdfQ.ADJWkWMnZUFLl
C:l2Jzxbw00919aC_qm_9UgeBKCY6MSAnVZtOmqVlE-Gfyut5dk7iU69VXKRi89RU3L4Y
C:MyVvykFvAJm-aqNpHkYaYUZ_a0aZeN2KcVTVUXzPEtnq7kldvJTpYhB1-JmbFuQ2B6Z
C:5PFZeR5k-ScmDEDdFl9nIFCLd5-mF
C:        </statusSet:authToken>   
C:        <statusSet:authToken>
C:eyJ0eXAiOiJKV1QiLA0KICabcJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJ
C:leHAiOjEzMDAabc4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp
C:0cnVlfQ.dBjftJeZ4CVP-mB92K27abcuhbUJU1p1r_wW1gFWFOEjXk
C:        </statusSet:authToken>
C:        <statusSet:statusSet>Registrar Lock</statusSet:statusSet>
C:        <statusSet:statusSet>Auth Token Lock</statusSet:statusSet>
C:      </statusSet:create>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t>This extension does not define any extension to the response of a
            &lt;create&gt; command.  After processing the command, the server
            replies with a standard EPP response as defined in the EPP object 
            mapping, such as defined in Section 3.2.1 of <xref target="RFC5731"/>.</t>
        </section>
        <section anchor="delete" numbered="true" toc="default">
          <name>EPP &lt;delete&gt; Command</name>
          <t>A new Status Set Delete Command by extending the EPP &lt;delete&gt; command 
          to delete an EPP object that is authorized by applying the Authentication Tokens and their authorization groups, defined in <xref target="authentication-token"/>, 
          to override the assigned Client Status Sets that uses Authentication Tokens.
          In addition to the EPP command elements described in the EPP &lt;delete&gt; command, the command MAY contain an &lt;extension&gt; element.  
          The &lt;extension&gt; element MUST contain a child &lt;statusSet:delete&gt; element 
          that contains the following child elements:</t>
          <ul spacing="normal">
            <li>One or more &lt;statusSet:authToken&gt; elements, defined in <xref target="authentication-token"/>, that  
            authorizes the overriding of the Client Status Sets in support of M-of-N authorization, defined in <xref target="m-of-n"/>.</li>
          </ul>
          <t keepWithNext="true">Example Domain Name Status Set Delete Command that includes a single Authentication Token (M = 1 with M-of-N authorization) to 
            authorize the delete:</t>
          <artwork name="" type="" align="left" alt=""><![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:    <delete>
C:      <domain:delete
C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C:        <domain:name>example.com</domain:name>
C:      </domain:delete>
C:    </delete>
C:    <extension>
C:      <statusSet:delete 
C:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
C:        <statusSet:authToken>
C:eyJhbGciOiJFUzUxMiIsInR5cCI6ImVhdCtqd3MiLCJraWQiOiJFQVRfS0VZMV9TWVN
C:URU0tUkVQIn0.eyJqdGkiOiJFQVRfMTIzNDVfU1lTVEVNLVJFUCIsInN1YiI6IkNsaW
C:VudFkiLCJleHAiOiIxNzc1NjgyMDAwIiwiZW50aXRsZW1lbnRzIjpbIlNFUlZJQ0UxL
C:VJPIiwiU0VSVklDRTItUlciLCJUTEQxLVJXIiwiVExEMi1SVyJdfQ.ADJWkWMnZUFLl
C:l2Jzxbw00919aC_qm_9UgeBKCY6MSAnVZtOmqVlE-Gfyut5dk7iU69VXKRi89RU3L4Y
C:MyVvykFvAJm-aqNpHkYaYUZ_a0aZeN2KcVTVUXzPEtnq7kldvJTpYhB1-JmbFuQ2B6Z
C:5PFZeR5k-ScmDEDdFl9nIFCLd5-mF
C:        </statusSet:authToken>   
C:      </statusSet:delete>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t>This extension does not define any extension to the response of an
            &lt;delete&gt; command.  After processing the command, the server
            replies with a standard EPP response as defined in the EPP object 
            mapping, such as defined in Section 3.2.2 of <xref target="RFC5731"/>.</t>
        </section>
        <section anchor="renew" numbered="true" toc="default">
          <name>EPP &lt;renew&gt; Command</name>
          <t>A new Status Set Renew Command by extending the EPP &lt;renew&gt; command 
          to renew an EPP object that is authorized by applying the Authentication Tokens and their authorization groups, defined in <xref target="authentication-token"/>, 
          to override the assigned Client Status Sets that uses Authentication Tokens.
          In addition to the EPP command elements described in the EPP &lt;renew&gt; command, the command MAY contain an &lt;extension&gt; element.  
          The &lt;extension&gt; element MUST contain a child &lt;statusSet:renew&gt; element 
          that contains the following child elements:</t>
          <ul spacing="normal">
            <li>One or more &lt;statusSet:authToken&gt; elements, defined in <xref target="authentication-token"/>, that  
            authorizes the overriding of the Client Status Sets in support of M-of-N authorization, defined in <xref target="m-of-n"/>.</li>
          </ul>
          <t keepWithNext="true">Example Domain Name Status Set Renew Command that includes a single Authentication Token (M = 1 with M-of-N authorization) to 
            authorize the renew:</t>
          <artwork name="" type="" align="left" alt=""><![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:    <renew>
C:      <domain:renew
C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C:        <domain:name>example.com</domain:name>
C:        <domain:curExpDate>2026-04-03</domain:curExpDate>
C:        <domain:period unit="y">5</domain:period>
C:      </domain:renew>
C:    </renew>
C:    <extension>
C:      <statusSet:renew 
C:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
C:        <statusSet:authToken>
C:eyJhbGciOiJFUzUxMiIsInR5cCI6ImVhdCtqd3MiLCJraWQiOiJFQVRfS0VZMV9TWVN
C:URU0tUkVQIn0.eyJqdGkiOiJFQVRfMTIzNDVfU1lTVEVNLVJFUCIsInN1YiI6IkNsaW
C:VudFkiLCJleHAiOiIxNzc1NjgyMDAwIiwiZW50aXRsZW1lbnRzIjpbIlNFUlZJQ0UxL
C:VJPIiwiU0VSVklDRTItUlciLCJUTEQxLVJXIiwiVExEMi1SVyJdfQ.ADJWkWMnZUFLl
C:l2Jzxbw00919aC_qm_9UgeBKCY6MSAnVZtOmqVlE-Gfyut5dk7iU69VXKRi89RU3L4Y
C:MyVvykFvAJm-aqNpHkYaYUZ_a0aZeN2KcVTVUXzPEtnq7kldvJTpYhB1-JmbFuQ2B6Z
C:5PFZeR5k-ScmDEDdFl9nIFCLd5-mF
C:        </statusSet:authToken>   
C:     </statusSet:renew>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t>This extension does not define any extension to the response of an
            &lt;renew&gt; command.  After processing the command, the server
            replies with a standard EPP response as defined in the EPP object 
            mapping, such as defined in Section 3.2.3 of <xref target="RFC5731"/>.</t>
        </section>
        <section anchor="transfer" numbered="true" toc="default">
          <name>EPP &lt;transfer&gt; Command</name>
          <t>A new Status Set Transfer Command by extending the EPP &lt;transfer&gt; command 
          to transfer an EPP object that is authorized by applying the Authentication Tokens and their authorization groups, defined in <xref target="authentication-token"/>, 
          to override the assigned Client Status Sets that uses Authentication Tokens.
          In addition to the EPP command elements described in the EPP &lt;transfer&gt; command, the command MAY contain an &lt;extension&gt; element.  
          The &lt;extension&gt; element MUST contain a child &lt;statusSet:transfer&gt; element 
          that contains the following child elements:</t>
          <ul spacing="normal">
            <li>One or more &lt;statusSet:authToken&gt; elements, defined in <xref target="authentication-token"/>, that  
            authorizes the overriding of the Client Status Sets in support of M-of-N authorization, defined in <xref target="m-of-n"/>.</li>
          </ul>
          <t keepWithNext="true">Example Domain Name Status Set Transfer Command that includes a single Authentication Token (M = 1 with M-of-N authorization) to 
            authorize the transfer:</t>
          <artwork name="" type="" align="left" alt=""><![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:    <transfer op="request">
C:      <domain:transfer
C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C:        <domain:name>example.com</domain:name>
C:        <domain:period unit="y">1</domain:period>
C:        <domain:authInfo>
C:          <domain:pw roid="JD1234-REP">2fooBAR</domain:pw>
C:        </domain:authInfo>
C:      </domain:transfer>
C:    </transfer>
C:    <extension>
C:      <statusSet:transfer 
C:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
C:        <statusSet:authToken>
C:eyJhbGciOiJFUzUxMiIsInR5cCI6ImVhdCtqd3MiLCJraWQiOiJFQVRfS0VZMV9TWVN
C:URU0tUkVQIn0.eyJqdGkiOiJFQVRfMTIzNDVfU1lTVEVNLVJFUCIsInN1YiI6IkNsaW
C:VudFkiLCJleHAiOiIxNzc1NjgyMDAwIiwiZW50aXRsZW1lbnRzIjpbIlNFUlZJQ0UxL
C:VJPIiwiU0VSVklDRTItUlciLCJUTEQxLVJXIiwiVExEMi1SVyJdfQ.ADJWkWMnZUFLl
C:l2Jzxbw00919aC_qm_9UgeBKCY6MSAnVZtOmqVlE-Gfyut5dk7iU69VXKRi89RU3L4Y
C:MyVvykFvAJm-aqNpHkYaYUZ_a0aZeN2KcVTVUXzPEtnq7kldvJTpYhB1-JmbFuQ2B6Z
C:5PFZeR5k-ScmDEDdFl9nIFCLd5-mF
C:        </statusSet:authToken>   
C:      </statusSet:transfer>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t>This extension does not define any extension to the response of an
            &lt;transfer&gt; command.  After processing the command, the server
            replies with a standard EPP response as defined in the EPP object 
            mapping, such as defined in Section 3.2.4 of <xref target="RFC5731"/>.</t>
        </section>
        <section anchor="update" numbered="true" toc="default">
          <name>EPP &lt;update&gt; Command</name>
          <t>A new Status Set Update Command by extending the EPP &lt;update&gt; command 
          to transfer an EPP object that is authorized by applying the Authentication Tokens and their authorization groups, defined in <xref target="authentication-token"/>, 
          to override the assigned Client Status Sets that uses Authentication Tokens.
          In addition to the EPP command elements described in the EPP &lt;update&gt; command, the command MAY contain an &lt;extension&gt; element.  
          The &lt;extension&gt; element MUST contain a child &lt;statusSet:update&gt; element 
          that contains the following child elements:</t>
          <ul spacing="normal">
            <li>An OPTIONAL list of &lt;statusSet:authToken&gt; elements, defined in <xref target="authentication-token"/>, that  
            authorizes the overriding of the Client Status Sets in support of M-of-N authorization, defined in <xref target="m-of-n"/>.</li>
            <li>An OPTIONAL &lt;statusSet:add&gt; element that includes zero or more &lt;statusSet:statusSet&gt; elements 
            that includes the unique name of the Status Set, defined in <xref target="status-set"/>, to add to the EPP object.</li>
            <li>An OPTIONAL &lt;statusSet:rem&gt; element that includes zero or more &lt;statusSet:statusSet&gt; elements 
            that includes the unique name of the Status Set, defined in <xref target="status-set"/>, to remove from the EPP object.
            The Status Set removes MUST be processed prior to the adds.</li>
          </ul>
          <t keepWithNext="true">Example Domain Name Status Set Update Command that includes a single Authentication Token (M = 1 with M-of-N authorization) to 
            authorize the update:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
C:     xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
C:     epp-1.0.xsd">
C:  <command>
C:    <update>
C:      <domain:update
C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
C:       xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
C:       domain-1.0.xsd">
C:        <domain:name>example.com</domain:name>
C:        <domain:add>
C:          <domain:ns>
C:            <domain:hostObj>ns2.example.com</domain:hostObj>
C:          </domain:ns>
C:        </domain:add>
C:        <domain:rem>
C:          <domain:ns>
C:            <domain:hostObj>ns1.example.com</domain:hostObj>
C:          </domain:ns>
C:        </domain:rem>
C:      </domain:update>
C:    </update>
C:    <extension>
C:      <statusSet:update 
C:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
C:        <statusSet:authToken>
C:eyJhbGciOiJFUzUxMiIsInR5cCI6ImVhdCtqd3MiLCJraWQiOiJFQVRfS0VZMV9TWVN
C:URU0tUkVQIn0.eyJqdGkiOiJFQVRfMTIzNDVfU1lTVEVNLVJFUCIsInN1YiI6IkNsaW
C:VudFkiLCJleHAiOiIxNzc1NjgyMDAwIiwiZW50aXRsZW1lbnRzIjpbIlNFUlZJQ0UxL
C:VJPIiwiU0VSVklDRTItUlciLCJUTEQxLVJXIiwiVExEMi1SVyJdfQ.ADJWkWMnZUFLl
C:l2Jzxbw00919aC_qm_9UgeBKCY6MSAnVZtOmqVlE-Gfyut5dk7iU69VXKRi89RU3L4Y
C:MyVvykFvAJm-aqNpHkYaYUZ_a0aZeN2KcVTVUXzPEtnq7kldvJTpYhB1-JmbFuQ2B6Z
C:5PFZeR5k-ScmDEDdFl9nIFCLd5-mF
C:        </statusSet:authToken>   
C:      </statusSet:update>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t keepWithNext="true">Example Domain Name Status Set Update Command that includes a two Authentication Tokens (M = 2 with M-of-N authorization) to 
            authorize the update:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
C:     xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
C:     epp-1.0.xsd">
C:  <command>
C:    <update>
C:      <domain:update
C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
C:       xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
C:       domain-1.0.xsd">
C:        <domain:name>example.com</domain:name>
C:        <domain:add>
C:          <domain:ns>
C:            <domain:hostObj>ns2.example.com</domain:hostObj>
C:          </domain:ns>
C:        </domain:add>
C:        <domain:rem>
C:          <domain:ns>
C:            <domain:hostObj>ns1.example.com</domain:hostObj>
C:          </domain:ns>
C:        </domain:rem>
C:      </domain:update>
C:    </update>
C:    <extension>
C:      <statusSet:update 
C:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
C:        <statusSet:authToken>
C:eyJhbGciOiJFUzUxMiIsInR5cCI6ImVhdCtqd3MiLCJraWQiOiJFQVRfS0VZMV9TWVN
C:URU0tUkVQIn0.eyJqdGkiOiJFQVRfMTIzNDVfU1lTVEVNLVJFUCIsInN1YiI6IkNsaW
C:VudFkiLCJleHAiOiIxNzc1NjgyMDAwIiwiZW50aXRsZW1lbnRzIjpbIlNFUlZJQ0UxL
C:VJPIiwiU0VSVklDRTItUlciLCJUTEQxLVJXIiwiVExEMi1SVyJdfQ.ADJWkWMnZUFLl
C:l2Jzxbw00919aC_qm_9UgeBKCY6MSAnVZtOmqVlE-Gfyut5dk7iU69VXKRi89RU3L4Y
C:MyVvykFvAJm-aqNpHkYaYUZ_a0aZeN2KcVTVUXzPEtnq7kldvJTpYhB1-JmbFuQ2B6Z
C:5PFZeR5k-ScmDEDdFl9nIFCLd5-mF
C:        </statusSet:authToken>   
C:        <statusSet:authToken>
C:eyJ0eXAiOiJKV1QiLA0KICabcJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJ
C:leHAiOjEzMDAabc4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp
C:0cnVlfQ.dBjftJeZ4CVP-mB92K27abcuhbUJU1p1r_wW1gFWFOEjXk
C:        </statusSet:authToken>      
C:       </statusSet:update>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t keepWithNext="true">Example Domain Name Status Set Update Command that includes a single Authentication Token (M = 1 with M-of-N authorization) to 
            authorize removing the "Auth Token Lock" Status Set and adding the "Auth Token Lock - Transfer Allowed" Status Set, 
            which removes the "clientTransferProhibited" Status Value from the domain name and keeps the "clientUpdateProhibited" and 
            "clientDeleteProhibited" Status Values:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
C:     xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
C:     epp-1.0.xsd">
C:  <command>
C:    <update>
C:     <domain:update
C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
C:       xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
C:       domain-1.0.xsd">
C:        <domain:name>example.com</domain:name>
C:       <domain:chg/>
C:      </domain:update>
C:    </update>
C:    <extension>
C:      <statusSet:update 
C:        xmlns:statusSet="urn:ietf:params:xml:ns:epp:statusSet-0.1">
C:        <statusSet:authToken>
C:eyJhbGciOiJFUzUxMiIsInR5cCI6ImVhdCtqd3MiLCJraWQiOiJFQVRfS0VZMV9TWVN
C:URU0tUkVQIn0.eyJqdGkiOiJFQVRfMTIzNDVfU1lTVEVNLVJFUCIsInN1YiI6IkNsaW
C:VudFkiLCJleHAiOiIxNzc1NjgyMDAwIiwiZW50aXRsZW1lbnRzIjpbIlNFUlZJQ0UxL
C:VJPIiwiU0VSVklDRTItUlciLCJUTEQxLVJXIiwiVExEMi1SVyJdfQ.ADJWkWMnZUFLl
C:l2Jzxbw00919aC_qm_9UgeBKCY6MSAnVZtOmqVlE-Gfyut5dk7iU69VXKRi89RU3L4Y
C:MyVvykFvAJm-aqNpHkYaYUZ_a0aZeN2KcVTVUXzPEtnq7kldvJTpYhB1-JmbFuQ2B6Z
C:5PFZeR5k-ScmDEDdFl9nIFCLd5-mF
C:        </statusSet:authToken>   
C:        <statusSet:add>
C:          <statusSet:statusSet>Auth Token Lock - Transfer Allowed
C:          </statusSet:statusSet>
C:        </statusSet:add>
C:        <statusSet:rem>
C:          <statusSet:statusSet>Auth Token Lock
C:          </statusSet:statusSet>
C:        </statusSet:rem>
C:      </statusSet:update>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
              ]]></artwork>
          <t>This extension does not define any extension to the response of an
            &lt;update&gt; command.  After processing the command, the server
            replies with a standard EPP response as defined in the EPP object 
            mapping, such as defined in Section 3.2.4 of <xref target="RFC5731"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="syntax" numbered="true" toc="default">
      <name>Formal Syntax</name>
      <t>An EPP object mapping is specified in XML Schema notation.  The
      formal syntax presented here is a complete schema representation of
      the object mapping suitable for automated validation of EPP XML
      instances.  The BEGIN and END tags are not part of the schema; they
      are used to note the beginning and ending of the schema for URI
      registration purposes.
      </t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
BEGIN
<?xml version="1.0" encoding="UTF-8"?>
<schema 
  targetNamespace=
    "urn:ietf:params:xml:ns:epp:statusSet-0.1"
  xmlns:statusSet=
    "urn:ietf:params:xml:ns:epp:statusSet-0.1"
  xmlns="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified">
  
  <annotation>
    <documentation>
      Extensible Provisioning Protocol v1.0
      Status Set Extension.
    </documentation>
  </annotation>
                                        
  <!-- status set info command element -->
  <element name="info" type="statusSet:infoType"/>

  <complexType name="infoType">
    <simpleContent>
      <extension base="statusSet:authTokenListType">
        <attribute name="sets" 
        type="statusSet:setsEnum" default="assigned"/>
      </extension>
    </simpleContent>
  </complexType>

  <simpleType name="setsEnum">
    <restriction base="token">
      <enumeration value="assigned"/>
      <enumeration value="all"/>
    </restriction>
  </simpleType>

  
  <!-- status set info response element -->
  <element name="infData" type="statusSet:infDataType"/>
  
  <complexType name="infDataType">
    <sequence>
      <element name="statusSet" 
        type="statusSet:statusSetDataType"
        minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>
   
  <complexType name="statusSetDataType">
    <sequence>
      <element name="name" type="token"/>
      <element name="type" type="statusSet:statusSetTypeEnum"/>
      <element name="authTokenUsed" 
        type="statusSet:authTokenUsedType" 
        minOccurs="0" default="false"/>
      <element name="inherited" type="boolean" 
        minOccurs="0" default="false"/>
      <element name="assigned" type="boolean" 
        minOccurs="0" default="true"/>
      <element name="crDate" type="dateTime" 
        minOccurs="0"/>
      <element name="status" type="token" 
        minOccurs="0" maxOccurs="unbounded"/>
      <element name="reason" type="token" 
        minOccurs="0"/>
    </sequence>
  </complexType>

  <complexType name="authTokenUsedType">
    <simpleContent>
      <extension base="boolean">
        <attribute name="num" 
        type="int" default="1"/>
      </extension>
    </simpleContent>
  </complexType>
   
  <simpleType name="statusSetTypeEnum">
    <restriction base="token">
      <enumeration value="client"/>
      <enumeration value="server"/>
    </restriction>
  </simpleType>
      
  <!-- authentication token -->
  <simpleType name="authTokenType">
    <restriction base="token">
    <pattern value="[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+"/>
    </restriction>
  </simpleType>

 <complexType name="authTokenListType">
    <sequence>
      <element name="authToken" type="statusSet:authTokenType" 
      minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>


  <!-- status set create command element -->
  <element name="create" type="statusSet:createType"/>

  <complexType name="createType">
    <sequence>
      <element name="authToken" type="statusSet:authTokenType" 
      minOccurs="0" maxOccurs="unbounded"/>
      <element name="statusSet" type="token"
      minOccurs="1" maxOccurs="unbounded"/>
    </sequence>
  </complexType>

  <!-- status set delete command element -->
  <element name="delete" type="statusSet:authTokenListType"/>

  <!-- status set renew command element -->
  <element name="renew" type="statusSet:authTokenListType"/>

  <!-- status set transfer command element -->
  <element name="transfer" type="statusSet:authTokenListType"/>

  <!-- status set update command element -->
  <element name="update" type="statusSet:updateType"/>

  <complexType name="updateType">
    <sequence>
      <element name="authToken" type="statusSet:authTokenType" 
       minOccurs="0" maxOccurs="unbounded"/>
      <element name="add" type="statusSet:addRemType"
       minOccurs="0"/>
      <element name="rem" type="statusSet:addRemType"
       minOccurs="0"/>
    </sequence>
  </complexType>

  <complexType name="addRemType">
    <sequence>
      <element name="statusSet" type="token"
       minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>

</schema>
END]]></artwork>
    </section>
    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="IANA-XML-Namespace" numbered="true" toc="default">
        <name>XML Namespace</name>
        <t>This document uses URNs to describe XML namespaces and XML schemas
	conforming to a registry mechanism described in <xref target="RFC3688" format="default"/>. The following URI assignment has been made by
	IANA:</t>
        <t>Registration request for the Status Set Extension Mapping namespace:</t>
        <dl newline="false" spacing="compact">
          <dt>URI:</dt>
          <dd>urn:ietf:params:xml:ns:epp:statusSet-0.1</dd>
          <dt>Registrant Contact:</dt>
          <dd>Registrant Contact: IESG</dd>
          <dt>XML:</dt>
          <dd>None. Namespace URIs do not represent an XML specification.</dd>
        </dl>
        <t>Registration request for the Status Set Extension Mapping XML Schema:</t>
        <dl newline="false" spacing="compact">
          <dt>URI:</dt>
          <dd>urn:ietf:params:xml:schema:epp:statusSet-0.1</dd>
          <dt>Registrant Contact:</dt>
          <dd>Registrant Contact: IESG</dd>
          <dt>XML:</dt>
          <dd>See the "Formal Syntax" section of this document.</dd>
        </dl>
      </section>
      <section anchor="EPP-Extension-Registry" numbered="true" toc="default">
        <name>EPP Extension Registry</name>
        <t>The EPP extension described in this document has been registered
	by IANA in the "Extensions for the Extensible Provisioning
	Protocol (EPP)" registry described in <xref target="RFC7451" format="default"/>.  The details of the registration
	are as follows:</t>
        <dl newline="false" spacing="compact">
          <dt>Name of Extension:</dt>
          <dd>"Status Set Extension Mapping for the Extensible Provisioning Protocol"</dd>
          <dt>Document Status:</dt>
          <dd>Standards Track</dd>
          <dt>Reference:</dt>
          <dd>(insert reference to RFC version of this document)</dd>
          <dt>Registrant Name and Email Address:</dt>
          <dd>IESG, &lt;iesg@ietf.org&gt;</dd>
          <dt>TLDs:</dt>
          <dd>Any</dd>
          <dt>IPR Disclosure:</dt>
          <dd>None</dd>
          <dt>Status:</dt>
          <dd>Active</dd>
          <dt>Notes:</dt>
          <dd>None</dd>
        </dl>
      </section>
    </section>
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The mapping extensions described in this document extends the 
      security services described by <xref
      target="RFC5730">EPP</xref> and protocol layers used by EPP by using  
      an Authentication Token, in draft-gould-regext-epp-auth-token, that is 
      passed on top of EPP for registrar users 
      to perform more fine grained authorization in the form of overriding 
      a Client Status Set.</t>
      <t>The security considerations for the server include:</t>
      <ol>
        <li>The Server Status Sets and the associated Server Status Values can only be managed by the server.  The 
        server MUST NOT allow the client to set, unset, or override a Server Status Set.</li>
        <li>The authorization model for a server operation is driven by the mapping of the Status Values to 
        the asasigned Status Sets.  The server applies the Authentication Token, in draft-gould-regext-epp-auth-token, by 
        matching the operation, the entitlements in the Authentication Token, and the assigned Client Status Sets 
        to determine which Client Status Sets are overriden to authorize the execution of the operation.</li>
        <li>Applying the inherited Client Staus Sets to the child objects (child host for parent domain name) MAY 
        be enforced by the server business logic without having to directly change the child objects.  There can be 
        an unlimited number of child objects, so there is a resource consumption issue associated with 
        cascading inherited Status Sets directly to the child objects.</li> 
        <li>Implementing the M-of-N authorization performs a intersection of the "entitlements" in the Authentication Tokens, in draft-gould-regext-epp-auth-token, 
        when authorizing a Status Set Command.</li>
      </ol>
       <t>The security considerations for the client include:</t>
      <ol>
        <li>There are no additional client security considerations other than what's defined for the 
        Authentication Token in draft-gould-regext-epp-auth-token.</li>
      </ol>     
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="W3C.REC-xml-20040204" target="http://www.w3.org/TR/2004/REC-xml-20040204">
          <front>
            <title>"Extensible Markup Language (XML) 1.0 (Third Edition)", World Wide Web Consortium FirstEdition REC-xml-20040204</title>
            <author initials="T" surname="Bray">
              <organization/>
            </author>
            <author initials="J" surname="Paoli">
              <organization/>
            </author>
            <author initials="C" surname="Sperberg-McQueen">
              <organization/>
            </author>
            <author initials="E" surname="Maler">
              <organization/>
            </author>
            <author initials="F" surname="Yergeau">
              <organization/>
            </author>
            <date month="February" year="2004"/>
          </front>
        </reference>
        <reference anchor="W3C.REC-xmlschema-1-20041028" target="http://www.w3.org/TR/2004/REC-xmlschema-1-20041028">
          <front>
            <title>"XML Schema Part 1: Structures Second Edition", World Wide Web Consortium Recommendation REC-xmlschema-1-20041028</title>
            <author initials="H" surname="Thompson">
              <organization/>
            </author>
            <author initials="D" surname="Beech">
              <organization/>
            </author>
            <author initials="M" surname="Maloney">
              <organization/>
            </author>
            <author initials="N" surname="Mendelsohn">
              <organization/>
            </author>
            <date month="October" year="2004"/>
          </front>
        </reference>
        <reference anchor="W3C.REC-xmlschema-2-20041028" target="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028">
          <front>
            <title>"XML Schema Part 2: Datatypes Second Edition", World Wide Web Consortium Recommendation REC-xmlschema-2-20041028</title>
            <author initials="P" surname="Biron">
              <organization/>
            </author>
            <author initials="A" surname="Malhotra">
              <organization/>
            </author>
            <date month="October" year="2004"/>
          </front>
        </reference>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <xi:include href="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
          <xi:include href="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        </referencegroup>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3688.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3915.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5730.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5731.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5732.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8499.xml"/>
        <!-- TODO - Uncomment after gould-regext-auth-token has been posted       
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-gould-regext-auth-token.xml"/>
-->         
       </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7451.xml"/>
      </references>
    </references>
  </back>
</rfc>
