RFC 8056 PROPOSED STANDARD DOMAINS · REGISTRIES · STATUS CODES

EPP-RDAP Status Mapping: Extensible Provisioning Protocol (EPP) and Registration Data Access Protocol (RDAP) Status Mapping

A lookup table that makes sure every domain registry status in EPP has a matching label in RDAP.

On rfc-editor.org ↗
PUBLISHED
January 2017
AUTHORS
J. Gould
STREAM
IETF
REGISTRY UPDATED
RDAP JSON Values
REGISTERED VALUE TYPE
status
REGISTRANT OF NEW VALUES
IESG
MAPPING RULE
Each EPP status maps to a single RDAP status
NAMING RULE
camelCase to lowercase words with spaces
DOI
10.17487/RFC8056

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                          J. Gould
Request for Comments: 8056                                VeriSign, Inc.
Category: Standards Track                                   January 2017
ISSN: 2070-1721


                 Extensible Provisioning Protocol (EPP)
      and Registration Data Access Protocol (RDAP) Status Mapping

Abstract

   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.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc8056.

Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Conventions Used in This Document . . . . . . . . . . . .   2
   2.  EPP-to-RDAP Status Mapping  . . . . . . . . . . . . . . . . .   2
   3.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
     3.1.  JSON Values Registry  . . . . . . . . . . . . . . . . . .   6
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .  10
   5.  Normative References  . . . . . . . . . . . . . . . . . . . .  10
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  11
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  11

1.  Introduction

   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 "RDAP
   JSON Values" registry [rdap-json-values].

   The "RDAP JSON Values" registry is described in Section 10.2 of
   [RFC7483] and is available in the "RDAP JSON Values" registry
   [rdap-json-values].

   The EPP statuses used as the source of the mapping include
   Section 2.3 of the Extensible Provisioning Protocol (EPP) Domain Name
   Mapping [RFC5731], Section 2.3 of "Extensible Provisioning Protocol
   (EPP) Host Mapping" [RFC5732], Section 2.2 of "Extensible
   Provisioning Protocol (EPP) Contact Mapping" [RFC5733], and
   Section 3.1 of "Domain Registry Grace Period Mapping for the
   Extensible Provisioning Protocol (EPP)" [RFC3915].

   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.

1.1.  Conventions Used in This Document

   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 RFC 2119 [RFC2119].

2.  EPP-to-RDAP Status Mapping

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

      addPeriod =
      autoRenewPeriod =
      clientDeleteProhibited =
      clientHold =
      clientRenewProhibited =
      clientTransferProhibited =
      clientUpdateProhibited =
      inactive = inactive
      linked = associated
      ok = active
      pendingCreate = pending create
      pendingDelete = pending delete
      pendingRenew = pending renew
      pendingRestore =
      pendingTransfer = pending transfer
      pendingUpdate = pending update
      redemptionPeriod =
      renewPeriod =
      serverDeleteProhibited =
      serverRenewProhibited =
      serverTransferProhibited =
      serverUpdateProhibited =
      serverHold =
      transferPeriod =

   The "RDAP JSON Values" registry [rdap-json-values] 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.

   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.

   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.

   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.

   clientDeleteProhibited = client delete prohibited;  The client
       requested that requests to delete the object MUST be rejected.

   clientHold = client hold;  The client requested that the DNS
       delegation information MUST NOT be published for the object.

   clientRenewProhibited = client renew prohibited;  The client
       requested that requests to renew the object MUST be rejected.

   clientTransferProhibited = client transfer prohibited;  The client
       requested that requests to transfer the object MUST be rejected.

   clientUpdateProhibited = client update prohibited;  The client
       requested that requests to update the object (other than to
       remove this status) MUST be rejected.

   pendingRestore = pending restore;  An object is in the process of
       being restored after being in the redemption period state.

   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.

   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.

   serverDeleteProhibited = server delete prohibited;  The server set
       the status so that requests to delete the object MUST be
       rejected.

   serverRenewProhibited = server renew prohibited;  The server set the
       status so that requests to renew the object MUST be rejected.

   serverTransferProhibited = server transfer prohibited;  The server
       set the status so that requests to transfer the object MUST be
       rejected.

   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.
   serverHold = server hold;  The server set the status so that DNS
       delegation information MUST NOT be published for the object.

   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.

   The resulting mapping after registering the new RDAP statuses is:

      addPeriod = add period
      autoRenewPeriod = auto renew period
      clientDeleteProhibited = client delete prohibited
      clientHold = client hold
      clientRenewProhibited = client renew prohibited
      clientTransferProhibited = client transfer prohibited
      clientUpdateProhibited = client update prohibited
      inactive = inactive
      linked = associated
      ok = active
      pendingCreate = pending create
      pendingDelete = pending delete
      pendingRenew = pending renew
      pendingRestore = pending restore
      pendingTransfer = pending transfer
      pendingUpdate = pending update
      redemptionPeriod = redemption period
      renewPeriod = renew period
      serverDeleteProhibited = server delete prohibited
      serverRenewProhibited = server renew prohibited
      serverTransferProhibited = server transfer prohibited
      serverUpdateProhibited = server update prohibited
      serverHold = server hold
      transferPeriod = transfer period

3.  IANA Considerations

3.1.  JSON Values Registry

   The following values have been registered by the IANA in the "RDAP
   JSON Values" registry described in [RFC7483]:

      Value: add period
      Type: status
      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 Domain
      Registry Grace Period Mapping for the Extensible Provisioning
      Protocol (EPP) [RFC3915] 'addPeriod' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

      Value: auto renew period
      Type: status
      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 Domain
      Registry Grace Period Mapping for the Extensible Provisioning
      Protocol (EPP) [RFC3915] 'autoRenewPeriod' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

      Value: client delete prohibited
      Type: status
      Description: The client requested that requests to delete the
      object MUST be rejected.  This maps to the Extensible Provisioning
      Protocol (EPP) Domain Name Mapping [RFC5731], Extensible
      Provisioning Protocol (EPP) Host Mapping [RFC5732], and Extensible
      Provisioning Protocol (EPP) Contact Mapping [RFC5733]
      'clientDeleteProhibited' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org
      Value: client hold
      Type: status
      Description: The client requested that the DNS delegation
      information MUST NOT be published for the object.  This maps to
      the Extensible Provisioning Protocol (EPP) Domain Name Mapping
      [RFC5731] 'clientHold' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

      Value: client renew prohibited
      Type: status
      Description: The client requested that requests to renew the
      object MUST be rejected.  This maps to the Extensible Provisioning
      Protocol (EPP) Domain Name Mapping [RFC5731]
      'clientRenewProhibited' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

      Value: client transfer prohibited
      Type: status
      Description: The client requested that requests to transfer the
      object MUST be rejected.  This maps to the Extensible Provisioning
      Protocol (EPP) Domain Name Mapping [RFC5731] and Extensible
      Provisioning Protocol (EPP) Contact Mapping [RFC5733]
      'clientTransferProhibited' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

      Value: client update prohibited
      Type: status
      Description: The client requested that requests to update the
      object (other than to remove this status) MUST be rejected.  This
      maps to the Extensible Provisioning Protocol (EPP) Domain Name
      Mapping [RFC5731], Extensible Provisioning Protocol (EPP) Host
      Mapping [RFC5732], and Extensible Provisioning Protocol (EPP)
      Contact Mapping [RFC5733] 'clientUpdateProhibited' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

      Value: pending restore
      Type: status
      Description: An object is in the process of being restored after
      being in the redemption period state.  This maps to the Domain
      Registry Grace Period Mapping for the Extensible Provisioning
      Protocol (EPP) [RFC3915] 'pendingRestore' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org
      Value: redemption period
      Type: status
      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 Domain
      Registry Grace Period Mapping for the Extensible Provisioning
      Protocol (EPP) [RFC3915] 'redemptionPeriod' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

      Value: renew period
      Type: status
      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 Domain Registry Grace Period
      Mapping for the Extensible Provisioning Protocol (EPP) [RFC3915]
      'renewPeriod' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

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

      Value: server renew prohibited
      Type: status
      Description: The server set the status so that requests to renew
      the object MUST be rejected.  This maps to the Extensible
      Provisioning Protocol (EPP) Domain Name Mapping [RFC5731]
      'serverRenewProhibited' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org
      Value: server transfer prohibited
      Type: status
      Description: The server set the status so that requests to
      transfer the object MUST be rejected.  This maps to the Extensible
      Provisioning Protocol (EPP) Domain Name Mapping [RFC5731] and
      Extensible Provisioning Protocol (EPP) Contact Mapping [RFC5733]
      'serverTransferProhibited' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

      Value: server update prohibited
      Type: status
      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 Extensible Provisioning Protocol (EPP) Domain
      Name Mapping [RFC5731], Extensible Provisioning Protocol (EPP)
      Host Mapping [RFC5732], and Extensible Provisioning Protocol (EPP)
      Contact Mapping [RFC5733] 'serverUpdateProhibited' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

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

      Value: transfer period
      Type: status
      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 Domain Registry Grace
      Period Mapping for the Extensible Provisioning Protocol (EPP)
      [RFC3915] 'transferPeriod' status.
      Registrant Name: IESG
      Registrant Contact Information: iesg@ietf.org

4.  Security Considerations

   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
   [RFC7481] for a description of the RDAP security services that can be
   used to implement information disclosure policies.

5.  Normative References

   [rdap-json-values]
              IANA, "RDAP JSON Values",
              <https://www.iana.org/assignments/rdap-json-values/>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC3915]  Hollenbeck, S., "Domain Registry Grace Period Mapping for
              the Extensible Provisioning Protocol (EPP)", RFC 3915,
              DOI 10.17487/RFC3915, September 2004,
              <http://www.rfc-editor.org/info/rfc3915>.

   [RFC5731]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
              Domain Name Mapping", STD 69, RFC 5731,
              DOI 10.17487/RFC5731, August 2009,
              <http://www.rfc-editor.org/info/rfc5731>.

   [RFC5732]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
              Host Mapping", STD 69, RFC 5732, DOI 10.17487/RFC5732,
              August 2009, <http://www.rfc-editor.org/info/rfc5732>.

   [RFC5733]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
              Contact Mapping", STD 69, RFC 5733, DOI 10.17487/RFC5733,
              August 2009, <http://www.rfc-editor.org/info/rfc5733>.

   [RFC7481]  Hollenbeck, S. and N. Kong, "Security Services for the
              Registration Data Access Protocol (RDAP)", RFC 7481,
              DOI 10.17487/RFC7481, March 2015,
              <http://www.rfc-editor.org/info/rfc7481>.

   [RFC7483]  Newton, A. and S. Hollenbeck, "JSON Responses for the
              Registration Data Access Protocol (RDAP)", RFC 7483,
              DOI 10.17487/RFC7483, March 2015,
              <http://www.rfc-editor.org/info/rfc7483>.

Acknowledgements

   Suggestions that have been incorporated into this document were
   provided by Andrew Newton, Scott Hollenbeck, Jim Galvin, Gustavo
   Lozano, and Robert Sparks.

Author's Address

   James Gould
   VeriSign, Inc.
   12061 Bluemont Way
   Reston, VA  20190
   United States of America

   Email: jgould@verisign.com
   URI:   http://www.verisign.com

AI ELI5

On this page
PROBLEMDomain registries that use EPP track objects with many status values, but the RDAP registry of statuses had no matching value for a number of them. Data could not be shown accurately in RDAP.
MECHANISMThe RFC lists each EPP status next to its RDAP status, finds the blanks, and registers new RDAP status values built by turning the camelCase EPP name into lowercase words with spaces.
WHY IT MATTERSEvery EPP status named in the cited RFCs now has an RDAP status, and the client versus server distinction on prohibited actions is preserved.

§1Why a Status Mapping Is Needed

Domain name registries often run the Extensible Provisioning Protocol (EPP) to manage registered objects. Anyone looking up that data through the Registration Data Access Protocol (RDAP) sees statuses taken from the "RDAP JSON Values" registry, which RFC 7483 describes.

RFC 8056 maps the statuses defined in the EPP RFCs to the statuses in that RDAP registry. The EPP sources are the domain, host and contact mappings (RFC 5731, RFC 5732, RFC 5733) and the grace period mapping (RFC 3915).

The rule it sets is that each EPP status MUST map to a single RDAP status, so registry data can be presented accurately in RDAP.

Two groups use different words for the same things. This paper says which word on one side matches which word on the other.

§2The Statuses That Already Match

The RFC writes the mapping as EPP status = RDAP status, leaving the right side blank where RDAP has no equivalent. A handful of EPP statuses already have a counterpart.

Some differ only in spelling: ok maps to active, and linked maps to associated. The pending family maps directly to pending create, pending delete, pending renew, pending transfer and pending update. The status inactive maps to inactive.

A few words already had a twin on the other side, like two names for the same toy.

EPP STATUSES THAT ALREADY HAD AN RDAP MATCH
EPP statusRDAP status
inactiveinactive
linkedassociated
okactive
pendingCreatepending create
pendingDeletepending delete
pendingRenewpending renew
pendingTransferpending transfer
pendingUpdatepending update

§3Gaps and the Naming Rule

Most of the remaining EPP statuses had a blank on the RDAP side. That includes the grace periods (addPeriod, autoRenewPeriod, renewPeriod, transferPeriod, redemptionPeriod), pendingRestore, the hold statuses and all the prohibited statuses.

The RDAP registry already had general values such as renew prohibited, update prohibited, transfer prohibited and delete prohibited, but they do not map directly to the EPP ones. EPP can tell apart an action blocked by server policy from one blocked at a client's request, and that ability needs to be preserved in RDAP.

The fix is a simple naming rule. The new RDAP value is the EPP value converted from camelCase to lowercase, with a space inserted at each word boundary. So clientHold becomes client hold.

When a word was missing, they made a new one by splitting the long word into small lowercase words, like turning "bigRedBall" into "big red ball".

NEW RDAP VALUES DERIVED BY THE NAMING RULE (SELECTION)
EPP statusNew RDAP status
addPeriodadd period
clientHoldclient hold
pendingRestorepending restore
redemptionPeriodredemption period
serverUpdateProhibitedserver update prohibited

§4Client and Server Prohibited Statuses

The new prohibited values come in client and server pairs. A client value means the client asked for the restriction. A server value means the server set it.

  • client delete prohibited and server delete prohibited: requests to delete the object MUST be rejected.
  • client renew prohibited and server renew prohibited: requests to renew MUST be rejected.
  • client transfer prohibited and server transfer prohibited: requests to transfer MUST be rejected.
  • client update prohibited and server update prohibited: requests to update, other than to remove this status, MUST be rejected.
  • client hold and server hold: DNS delegation information MUST NOT be published for the object.

Some locks are put on by the owner and some by the building manager. The new labels tell you who put each lock on.

§5Grace Periods and Restore Statuses

Four of the new values are grace periods during which a client that deletes the object gets a credit from the server for the cost of the action that started the period.

  • add period: after the initial registration; credit for the registration.
  • auto renew period: after a registration period expires and the server extends it automatically; credit for the auto renewal.
  • renew period: after the client explicitly renews; credit for the renewal.
  • transfer period: after a successful transfer of sponsorship from one client to another; credit for the transfer.

Two more cover deletion. redemption period means a delete was received, but the object is not yet purged because it can still be restored, which aborts the deletion. pending restore means the object is being restored after being in the redemption period.

A grace period is like a return window at a shop: for a while after you buy something, you can give it back and get your money back.

§6What IANA Registered

IANA added each new value to the "RDAP JSON Values" registry with Type: status. Every entry carries a description matching the one in the RFC and a pointer to the EPP status it maps to, such as the domain mapping in RFC 5731 or the grace period mapping in RFC 3915.

For every entry the registrant name is the IESG, with contact iesg@ietf.org. The final mapping, with all new values in place, covers each EPP status in the list.

The official keeper of lists wrote each new label into the master list, with a note saying which old label it matches.

§7Security Considerations

The status values can be subject to server-side information disclosure policies that restrict showing them to authorized clients. Implementers may wish to review RFC 7481 for the RDAP security services that can be used to implement those policies.

Some labels may only be shown to people who are allowed to see them, like a staff-only notice board.

§8References