RFC 8056

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

πŸ“… published January 2017, from ietf

RFC 8056 πŸ’–

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

  • Written by: J. Gould, VeriSign, Inc. πŸŽ€
  • Category: Standards Track ✨
  • Date: January 2017 πŸ“…
  • ISSN: 2070-1721
  • Obsoletes / Updates: the header doesn't list anything this one obsoletes or updates πŸ¦‹

Abstract ✨

okay so this doc is all about mapping EPP statuses to RDAP statuses 🌸 EPP is the Extensible Provisioning Protocol and RDAP is the Registration Data Access Protocol, and they don't always line up perfectly. This doc finds the gaps in the mapping and registers new RDAP statuses to fill them, so that every EPP status in the EPP RFCs is supported in RDAP. it's giving completeness πŸ’…

Status of This Memo

this one's an Internet Standards Track document 🧚

it's a product of the Internet Engineering Task Force (IETF) πŸ’œ It represents the consensus of the IETF community, it got public review, and the Internet Engineering Steering Group (IESG) approved it for publication. If you want more on Internet Standards, check out Section 2 of RFC 7841.

for the current status of this document, any errata, and how to send feedback, look at http://www.rfc-editor.org/info/rfc8056 πŸ”₯

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

this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they were in effect on the publication date. please actually read these, they spell out your rights and restrictions for this doc πŸ™ˆ If you extract Code Components from this document, they must include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come 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 πŸ¦‹

okay, the intro. This doc maps the statuses defined in the EPP RFCs to the list of statuses registered for RDAP in the "RDAP JSON Values" registry [rdap-json-values].

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

The EPP statuses used as the source for the mapping come from 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].

the big rule here: each EPP status MUST map to a single RDAP status πŸ’… That's how data in the Domain Name Registries (DNRs) that use EPP can be presented accurately in RDAP. no cap, it's non-negotiable ✨

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 read as described in RFC 2119 [RFC2119] πŸŽ€

2. EPP-to-RDAP Status Mapping 🌸

here's the list of EPP statuses from the EPP RFCs ([RFC5731], [RFC5732], [RFC5733], and [RFC3915]) mapped to the RDAP statuses in the "RDAP JSON Values" registry [rdap-json-values]. The format is <EPP Status> '=' <RDAP Status>, and if the <RDAP Status> is blank, that means there's 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 those don't directly map to the EPP prohibited statuses. EPP has status codes that tell apart "prohibited because of server policy" from "prohibited because the client asked for it." that distinction needs to survive in RDAP πŸ’œ

each EPP status that doesn't map directly to an RDAP status is described below. Every one includes a proposed new RDAP status value and a description. The RDAP status value comes from the EPP status value by taking the EPP "camelCase" name, lowercasing it, and putting a space between word boundaries 🧚

  • addPeriod β†’ add period: a grace period given right after the object is first registered. If the client deletes the object during this period, the server gives the client a credit for the cost of the registration. πŸ“
  • autoRenewPeriod β†’ auto renew period: a grace period given after an object's registration period expires and the server renews it automatically. If the client deletes the object during this period, the server gives the client a credit for the cost of the auto renewal. 🌈
  • clientDeleteProhibited β†’ client delete prohibited: the client asked that requests to delete the object MUST be rejected. πŸ”’
  • clientHold β†’ client hold: the client asked that the DNS delegation information MUST NOT be published for the object. πŸ™ˆ
  • clientRenewProhibited β†’ client renew prohibited: the client asked that requests to renew the object MUST be rejected. πŸ”’
  • clientTransferProhibited β†’ client transfer prohibited: the client asked that requests to transfer the object MUST be rejected. πŸ”’
  • clientUpdateProhibited β†’ client update prohibited: the client asked that requests to update the object (other than to remove this status) MUST be rejected. πŸ”’
  • pendingRestore β†’ pending restore: the object is in the middle of being restored after it was in the redemption period state. ♻️
  • redemptionPeriod β†’ redemption period: a delete has been received, but the object hasn't been purged yet, because there's still a chance to restore the object and abort the deletion. πŸͺ„
  • renewPeriod β†’ renew period: a grace period given after the client explicitly extends (renews) an object's registration period. If the client deletes the object during this period, the server gives the client a credit 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: a grace period given after an object's registration sponsorship is successfully transferred from one client to another. If the client deletes the object during this period, the server gives the client a credit for the cost of the transfer. 🎁

once you register the new RDAP statuses, the mapping looks like this ✨

      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 πŸŽ€

okay so the IANA went and registered a bunch of values in the "RDAP JSON Values" registry from [RFC7483] πŸ’… each one is a status with a little description and a note about which EPP status it maps to. here's the full lineup, bestie ✨

The first batch is the grace period crew 🌸

      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

next up are the client-side locks πŸ”’ the client is the one asking for these, and the wording is strict here

      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

then we've got the restore and redemption vibes πŸ”„

      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

now the server side gets a turn πŸ–₯️ these are the locks the server sets itself

      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

and last but not least, the transfer period πŸ¦‹

      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 πŸ”

okay bestie, this one's serious 😭 so the status values in this doc can be subject to server-side information disclosure policies, which means the server can restrict who gets to see them and only authorized clients get the tea 🍡. if you're building something that needs this, you may wish to check out [RFC7481] for a description of the RDAP security services that can be used to implement those information disclosure policies 🫢


5. Normative References πŸ“š

these are the receipts 🧾 every reference, with all its details:

   [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 🫢

big thank-yous to Andrew Newton, Scott Hollenbeck, Jim Galvin, Gustavo Lozano, and Robert Sparks πŸ’– their suggestions made it into the doc, which is so iconic of them ✨

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
πŸ“¦ where this page comes from