<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC2119 SYSTEM "reference.RFC.2119.xml">
<!ENTITY RFC3915 SYSTEM "reference.RFC.3915.xml">
<!ENTITY RFC5731 SYSTEM "reference.RFC.5731.xml">
<!ENTITY RFC5732 SYSTEM "reference.RFC.5732.xml">
<!ENTITY RFC5733 SYSTEM "reference.RFC.5733.xml">
<!ENTITY RFC7481 SYSTEM "reference.RFC.7481.xml">
<!ENTITY RFC7483 SYSTEM "reference.RFC.7483.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no"?>

<rfc number="8056" category="std" submissionType="IETF" consensus="yes" ipr="trust200902">
  <front>
    <title abbrev="EPP RDAP Status Mapping"> Extensible
    Provisioning&nbsp;Protocol&nbsp;(EPP) and&nbsp;Registration&nbsp;Data&nbsp;Access&nbsp;Protocol (RDAP) Status Mapping</title>

    <author fullname="James Gould" initials="J.G" surname="Gould">
      <organization>VeriSign, Inc.</organization>

      <address>
        <postal>
          <street>12061 Bluemont Way</street>

          <city>Reston</city>

          <region>VA</region>

          <code>20190</code>

          <country>United States of America</country>
        </postal>

        <email>jgould@verisign.com</email>

        <uri>http://www.verisign.com</uri>
      </address>
    </author>


    <date month="January" year="2017"/>

    <abstract>
      <t>This document describes the mapping of the Extensible Provisioning Protocol (EPP)
      statuses with the statuses registered for use in the Registration Data Access Protocol (RDAP).  
      This document identifies gaps in the mapping, and registers RDAP statuses 
      to fill those gaps to ensure that all of the EPP statuses specified in RFCs are supported in RDAP.</t>
    </abstract>
        
  </front>

  <middle>
    <section title="Introduction">
      <t>This document maps the statuses defined in the Extensible Provisioning Protocol (EPP) RFCs 
      to the list of statuses registered for use in the Registration Data Access Protocol (RDAP), in 
      the <xref target="rdap-json-values">"RDAP JSON Values" registry</xref>.</t>
      
      <t>The "RDAP JSON Values" registry is described in Section 10.2 of <xref target="RFC7483"/> and 
      is available in the <xref target="rdap-json-values">"RDAP JSON Values" registry</xref>.</t>
      
      <t>The EPP statuses used as the source of the mapping include Section
      2.3 of the <xref target="RFC5731"> Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref>, 
      Section 2.3 of <xref target="RFC5732">"Extensible Provisioning Protocol (EPP) Host Mapping"</xref>, Section 2.2 of 
      <xref target="RFC5733">"Extensible Provisioning Protocol (EPP) Contact Mapping"</xref>, 
      and Section 3.1 of <xref target="RFC3915">"Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)"</xref>.</t>  
      
      <t>Each EPP status MUST map to a single RDAP status to ensure 
      that data in the Domain Name Registries (DNRs) that use EPP can be accurately presented in RDAP.</t>
      
      <section title="Conventions Used in This Document">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in <xref
        target="RFC2119">RFC 2119</xref>.</t>
      </section>
    </section>

    <section anchor="epp-to-rdap-status-mapping" title="EPP-to-RDAP Status Mapping">

      <t>Below is a list of EPP statuses from the EPP RFCs (<xref target="RFC5731"/>, <xref target="RFC5732"/>, <xref target="RFC5733"/>, and <xref target="RFC3915"/>) mapped to 
      the RDAP statuses registered in the <xref target="rdap-json-values">"RDAP JSON Values" registry</xref>, with the 
      format &lt;EPP Status&gt; '=' &lt;RDAP Status&gt;, where a blank &lt;RDAP Status&gt; indicates a gap in the mapping.</t>

<?rfc subcompact="yes"?>
		<t><list>      
			<t>addPeriod                = </t>
			<t>autoRenewPeriod          = </t>
			<t>clientDeleteProhibited   = </t>
			<t>clientHold               = </t>
			<t>clientRenewProhibited    = </t>
			<t>clientTransferProhibited = </t>
			<t>clientUpdateProhibited   = </t>
			<t>inactive                 = inactive</t>
			<t>linked                   = associated</t>
			<t>ok                       = active</t>
			<t>pendingCreate            = pending create</t>
			<t>pendingDelete            = pending delete</t>
			<t>pendingRenew             = pending renew</t>
			<t>pendingRestore           = </t>
			<t>pendingTransfer          = pending transfer</t>
			<t>pendingUpdate            = pending update</t>
			<t>redemptionPeriod         = </t>
			<t>renewPeriod              = </t>
			<t>serverDeleteProhibited   = </t>
			<t>serverRenewProhibited    = </t>
			<t>serverTransferProhibited = </t>
			<t>serverUpdateProhibited   = </t>
			<t>serverHold               = </t>
			<t>transferPeriod           = </t>
	   </list></t>
<?rfc subcompact="no"?>
	   
		<t>The <xref target="rdap-json-values">"RDAP JSON Values" registry</xref> does have a 
		set of prohibited statuses including "renew prohibited", "update prohibited", "transfer prohibited", and "delete prohibited", but these 
		statuses do not directly map to the EPP prohibited statuses.  EPP provides status codes that allow distinguishing the case that an action 
		is prohibited because of server policy from the case that an action is prohibited because of a client request.  
		The ability to make this distinction needs to be preserved in RDAP.</t>  
	   
	   <t>Each of the EPP status values that don't map directly to an RDAP status value is described below. 
	   Each EPP status value includes a proposed new RDAP status value and a description of the value. 
	   The RDAP status value is derived from the EPP status value by converting the EPP "camelCase" representation 
	   to lowercase with a space character inserted between word boundaries.</t>
	   
	   <t><list hangIndent="4" style="hanging">
      	<t hangText="addPeriod = add period;">This grace period is provided after the initial registration of the object.  
      	If the object is deleted by the client during this period, the server provides a credit to the client for the cost of the registration.</t>
      	<t hangText="autoRenewPeriod = auto renew period;">This grace period is provided after an object registration period expires and is extended (renewed) 
      	automatically by the server.  If the object is deleted by the client during this period, the server provides a credit to the 
      	client for the cost of the auto renewal.</t>
      	<t hangText="clientDeleteProhibited = client delete prohibited;">The client requested that requests to delete the object MUST be rejected.</t>
      	<t hangText="clientHold = client hold;">The client requested that the DNS delegation information MUST NOT be published for the object.</t>
      	<t hangText="clientRenewProhibited = client renew prohibited;">The client requested that requests to renew the object MUST be rejected.</t>
      	<t hangText="clientTransferProhibited = client transfer prohibited;">The client requested that requests to transfer the object MUST be rejected.</t>
      	<t hangText="clientUpdateProhibited = client update prohibited;">The client requested that requests to update the object (other than to remove this status) MUST be rejected.</t>
      	<t hangText="pendingRestore = pending restore;">An object is in the process of being restored after being in the redemption period state.</t>
      	<t hangText="redemptionPeriod = redemption period;">A delete has been received, but the object has not yet been purged because an 
      	opportunity exists to restore the object and abort the deletion process.</t>
      	<t hangText="renewPeriod = renew period;">This grace period is provided after an object registration period is 
      	explicitly extended (renewed) by the client.  If the object is deleted by the client during this period, 
      	the server provides a credit to the client for the cost of the renewal.</t>
      	<t hangText="serverDeleteProhibited = server delete prohibited;">The server set the status so that requests to delete the object MUST be rejected.</t>
      	<t hangText="serverRenewProhibited = server renew prohibited;">The server set the status so that requests to renew the object MUST be rejected.</t>
      	<t hangText="serverTransferProhibited = server transfer prohibited;">The server set the status so that requests to transfer the object MUST be rejected.</t>
      	<t hangText="serverUpdateProhibited = server update prohibited;">The server set the status so that requests to update the object (other than to remove this status) MUST be rejected.</t>
      	<t hangText="serverHold = server hold;">The server set the status so that DNS delegation information MUST NOT be published for the object.</t>
      	<t hangText="transferPeriod = transfer period;">This grace period is provided after the successful transfer of object registration sponsorship from one client 
      	to another client.  If the object is deleted by the client during this period, the server provides a credit to the client for the cost of the transfer.</t>
      </list></t>
            
      <t>The resulting mapping after registering the new RDAP statuses is:</t>
      
<?rfc subcompact="yes"?>
		<t><list>      
			<t>addPeriod                = add period</t>
			<t>autoRenewPeriod          = auto renew period</t>
			<t>clientDeleteProhibited   = client delete prohibited</t>
			<t>clientHold               = client hold</t>
			<t>clientRenewProhibited    = client renew prohibited</t>
			<t>clientTransferProhibited = client transfer prohibited</t>
			<t>clientUpdateProhibited   = client update prohibited</t>
			<t>inactive                 = inactive</t>
			<t>linked                   = associated</t>
			<t>ok                       = active</t>
			<t>pendingCreate            = pending create</t>
			<t>pendingDelete            = pending delete</t>
			<t>pendingRenew             = pending renew</t>
			<t>pendingRestore           = pending restore</t>
			<t>pendingTransfer          = pending transfer</t>
			<t>pendingUpdate            = pending update</t>
			<t>redemptionPeriod         = redemption period</t>
			<t>renewPeriod              = renew period</t>
			<t>serverDeleteProhibited   = server delete prohibited</t>
			<t>serverRenewProhibited    = server renew prohibited</t>
			<t>serverTransferProhibited = server transfer prohibited</t>
			<t>serverUpdateProhibited   = server update prohibited</t>
			<t>serverHold               = server hold</t>
			<t>transferPeriod           = transfer period</t>
	   </list></t>
<?rfc subcompact="no"?>
      
    </section>

       
    <section anchor="IANA" title="IANA Considerations">
    
    	<section anchor="json-values-registry" title="JSON Values Registry">
    	
    		<t>The following values have been registered by the IANA in 
    		the "RDAP JSON Values" registry described in <xref target="RFC7483"/>:
    		</t>

<?rfc subcompact="yes"?>
<t><list>
	
    		<t>Value: add period</t>
    		<t>Type: status</t>
    		<t>Description: This grace period is provided after the initial registration of the object.  
    		If the object is deleted by the client during this period, 
      	the server provides a credit to the client for the cost of the registration.  
      	This maps to the 
      	<xref target="RFC3915">Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)</xref> 'addPeriod' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>
    		
    		<t><vspace/></t>
 
    		<t>Value: auto renew period</t>
    		<t>Type: status</t>
    		<t>Description: This grace period is provided after an object registration period expires and is extended (renewed) 
      	automatically by the server.  If the object is deleted by the client during this period, 
      	the server provides a credit to the client for the cost of the auto renewal.
      	This maps to the 
      	<xref target="RFC3915">Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)</xref> 'autoRenewPeriod' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>
 
    		<t><vspace/></t>
 
    		<t>Value: client delete prohibited</t>
    		<t>Type: status</t>
    		<t>Description: The client requested that requests to delete the object MUST be rejected.
      	This maps to the 
      	<xref target="RFC5731"> Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref>, 
      	<xref target="RFC5732"> Extensible Provisioning Protocol (EPP) Host Mapping</xref>, and 
      	<xref target="RFC5733">Extensible Provisioning Protocol (EPP) Contact Mapping</xref> 'clientDeleteProhibited' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>

    		<t><vspace/></t>
 
    		<t>Value: client hold</t>
    		<t>Type: status</t>
    		<t>Description: The client requested that the DNS delegation information MUST NOT be published for the object.
      	This maps to the 
      	<xref target="RFC5731">Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref> 'clientHold' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>
 
     		<t><vspace/></t>
 
    		<t>Value: client renew prohibited</t>
    		<t>Type: status</t>
    		<t>Description: The client requested that requests to renew the object MUST be rejected.
      	This maps to the 
      	<xref target="RFC5731">Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref> 'clientRenewProhibited' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>
    		
     		<t><vspace/></t>
 
    		<t>Value: client transfer prohibited</t>
    		<t>Type: status</t>
    		<t>Description: The client requested that requests to transfer the object MUST be rejected.
      	This maps to the 
      	<xref target="RFC5731">Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref> and 
      	<xref target="RFC5733">Extensible Provisioning Protocol (EPP) Contact Mapping</xref> 'clientTransferProhibited' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>

     		<t><vspace/></t>
 
    		<t>Value: client update prohibited</t>
    		<t>Type: status</t>
    		<t>Description: The client requested that requests to update the object (other than to remove this status) MUST be rejected.
      	This maps to the 
      	<xref target="RFC5731">Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref>, 
      	<xref target="RFC5732"> Extensible Provisioning Protocol (EPP) Host Mapping</xref>, and 
      	<xref target="RFC5733"> Extensible Provisioning Protocol (EPP) Contact Mapping</xref> 'clientUpdateProhibited' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>
    		
     		<t><vspace/></t>
  
    		<t>Value: pending restore</t>
    		<t>Type: status</t>
    		<t>Description: An object is in the process of being restored after being in the redemption period state.
      	This maps to the 
      	<xref target="RFC3915">Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)</xref> 'pendingRestore' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>

     		<t><vspace/></t>
 
    		<t>Value: redemption period</t>
    		<t>Type: status</t>
    		<t>Description: A delete has been received, but the object has not yet been purged because an 
      	opportunity exists to restore the object and abort the deletion process.
      	This maps to the 
      	<xref target="RFC3915">Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)</xref> 'redemptionPeriod' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>

     		<t><vspace/></t>
 
    		<t>Value: renew period</t>
    		<t>Type: status</t>
    		<t>Description: This grace period is provided after an object registration period is 
      	explicitly extended (renewed) by the client.  If the object is deleted by the client during this period, 
      	the server provides a credit to the client for the cost of the renewal.
      	This maps to the 
      	<xref target="RFC3915">Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)</xref> 'renewPeriod' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>

     		<t><vspace/></t>
 
    		<t>Value: server delete prohibited</t>
    		<t>Type: status</t>
    		<t>Description: The server set the status so that requests to delete the object MUST be rejected.
      	This maps to the 
      	<xref target="RFC5731">Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref>, 
      	<xref target="RFC5732"> Extensible Provisioning Protocol (EPP) Host Mapping</xref>, and 
      	<xref target="RFC5733">Extensible Provisioning Protocol (EPP) Contact Mapping</xref> 'serverDeleteProhibited' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>

     		<t><vspace/></t>
 
    		<t>Value: server renew prohibited</t>
    		<t>Type: status</t>
    		<t>Description: The server set the status so that requests to renew the object MUST be rejected.
      	This maps to the 
      	<xref target="RFC5731">Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref> 'serverRenewProhibited' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>

    		<t><vspace/></t>
 
    		<t>Value: server transfer prohibited</t>
    		<t>Type: status</t>
    		<t>Description: The server set the status so that requests to transfer the object MUST be rejected.
      	This maps to the 
      	<xref target="RFC5731">Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref> and 
      	<xref target="RFC5733"> Extensible Provisioning Protocol (EPP) Contact Mapping</xref> 'serverTransferProhibited' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>
    		
    		<t><vspace/></t>
 
    		<t>Value: server update prohibited</t>
    		<t>Type: status</t>
    		<t>Description: The server set the status so that requests to update the object (other than to remove this status) MUST be rejected.
      	This maps to the 
      	<xref target="RFC5731">Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref>, 
      	<xref target="RFC5732"> Extensible Provisioning Protocol (EPP) Host Mapping</xref>, and 
      	<xref target="RFC5733"> Extensible Provisioning Protocol (EPP) Contact Mapping</xref> 'serverUpdateProhibited' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>

    		<t><vspace/></t>
 
    		<t>Value: server hold</t>
    		<t>Type: status</t>
    		<t>Description: The server set the status so that DNS delegation information MUST NOT be published for the object.
      	This maps to the 
      	<xref target="RFC5731">Extensible Provisioning Protocol (EPP) Domain Name Mapping</xref> 'serverHold' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>

    		<t><vspace/></t>
 
    		<t>Value: transfer period</t>
    		<t>Type: status</t>
    		<t>Description: This grace period is provided after the successful transfer of object registration sponsorship from one client 
      	to another client.  If the object is deleted by the client during this period, 
      	the server provides a credit to the client for the cost of the transfer.
      	This maps to the 
      	<xref target="RFC3915">Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)</xref> 'transferPeriod' status.</t>
    		<t>Registrant Name: IESG</t>
    		<t>Registrant Contact Information: iesg@ietf.org</t>

	      </list></t>
<?rfc subcompact="no"?>
    	</section>
     
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The status values described in this document can be subject to server-side information disclosure 
      policies that restrict display of the values to authorized clients. Implementers may wish to review 
      <xref target="RFC7481"/> for a description of the RDAP security services that can be used to implement 
      information disclosure policies.</t>
    </section>

  </middle>


  <back>

    <references title="Normative References">
       
      &RFC2119;
      
      &RFC3915;

      &RFC5731;

      &RFC5732;

      &RFC5733;
      
      &RFC7481;

      &RFC7483;
      
      <reference anchor="rdap-json-values" 
      	target="https://www.iana.org/assignments/rdap-json-values/">
      	<front>
      		<title>RDAP JSON Values</title>
      		<author><organization>IANA</organization></author>
      		<date/>
      	</front>
      </reference>

    </references>
    
   <section title="Acknowledgements" numbered="no">
   	<t>Suggestions that have been incorporated into this document were provided by 
   	Andrew Newton, Scott Hollenbeck, Jim Galvin, Gustavo Lozano, and Robert Sparks.
   	</t>
   </section>
    
  </back>

</rfc>
