TOC 
Internet Engineering Task ForceJ. Mitchell
Internet-DraftC. Wright
Intended status: InformationalAusRegistry
Expires: June 4, 2013December 2012


Domain Name Price Extension Mapping for the Extensible Provisioning Protocol (EPP)
draft-ar-price-domain-epp-mapping-01

Abstract

This document describes an Extensible Provisioning Protocol (EPP) extension mapping for the provisioning and management of premium domain names.

Status of this Memo

This document is an Internet-Draft and is NOT offered in accordance with Section 10 of RFC 2026, and the author does not provide the IETF with any rights other than to publish as an Internet-Draft.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”

This Internet-Draft will expire on June 4, 2013.



Table of Contents

1.  Introduction
    1.1.  Conventions Used in This Document
2.  Object Attributes
    2.1.  Price
3.  EPP Command Mapping
    3.1.  EPP Query Commands
        3.1.1.  EPP <check> Command
        3.1.2.  EPP <info> Command
        3.1.3.  EPP <transfer> Command
    3.2.  EPP Transform Commands
        3.2.1.  EPP <create> Command
        3.2.2.  EPP <delete> Command
        3.2.3.  EPP <renew> Command
        3.2.4.  EPP <transfer> Command
        3.2.5.  EPP <update> Command
4.  Formal Syntax
5.  Acknowledgments
6.  Security Considerations
7.  Normative References
§  Authors' Addresses




 TOC 

1.  Introduction

Certain domain names may be considered 'premium' by server operators, attracting a higher registration and renewal price compared to normal domain names. Lack of controls in the registration process introduces risk to clients of on-selling domain names to registrants at a price below their cost.

This extension provides mechanism for clients to obtain the price of a domain name, not limited to premium domain names, and a mechanism to acknowledge the price charged for the registration and renewal of domain names. Acknowledgement takes place at time of registration, transfer and renewal. Updates to pricing information that affects existing registrations must be provided to clients using an out of band mechanism.

This specification does not preclude the publication of a price list. Clients may prefer an externally accessible list to performing a check before every registration.



 TOC 

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 (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.) [RFC2119].

"price-1.0" is used as an abbreviation for "urn:ar:params:xml:ns:price-1.0". The XML namespace prefix "price" is used, but implementations MUST NOT depend on it and instead employ a proper namespace-aware XML parser and serializer to interpret and output the XML documents.



 TOC 

2.  Object Attributes

This extension adds additional elements to the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731]. Only those new elements are described here.



 TOC 

2.1.  Price

This extension defines price elements for the registration of and renewal of domain names. Prices are expressed for the period requested by the client, or the minimum registration period available for the domain name. The minimum available period is defined by the server and may change based on the specific registration phases available.

The fees returned by the server are indicative only and may not take into consideration discounts or other factors that would otherwise adjust the price. Clients should confirm with server operators any terms that may adjust the fee before assuming the actual fee charged for the transaction.

Fee elements expressed in the currency that the client normally transacts in, or otherwise negotiated using an out of band mechanism.



 TOC 

3.  EPP Command Mapping

A detailed description of the EPP syntax and semantics can be found in the EPP core protocol specification (Hollenbeck, S., “Extensible Provisioning Protocol (EPP),” August 2009.) [RFC5730]. The command mappings described here are specifically for use in provisioning premium domain names.



 TOC 

3.1.  EPP Query Commands

EPP provides three commands to retrieve object information: <check> to determine if an object is known to the server, <info> to retrieve detailed information associated with an object, and <transfer> to retrieve object transfer status information.



 TOC 

3.1.1.  EPP <check> Command

This extension defines additional elements to extend the EPP <check> command and response to be used in conjunction with the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731].

To enable clients to identify the registration or renewal fee, the <domain:check> command is extended with a <price:check> element, which signals a client’s intention to retrieve a domain name's price information. The <price:check> extension element MAY contain the following child element:

Example <check> command requesting domain name price information

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <check>
      <check xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <name>non-premium.example</name>
        <name>invalid-price.example</name>
      </check>
    </check>
    <extension>
      <check xmlns="urn:ar:params:xml:ns:price-1.0">
        <period unit="y">5</period>
      </check>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

When a <check> command containing the <price:check> element has been processed successfully, the server MUST NOT respond with the <domain:chkData> element described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731]. Instead, servers MUST respond with a <price:chkData> element that contains one <price:cd> element for each domain name present in the command. The <price:cd> element contains the following child elements:

Example <check> response providing domain name price information

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <extension>
      <chkData xmlns="urn:ar:params:xml:ns:price-1.0">
        <cd>
          <name premium="1">premium.example</name>
          <period unit="y">5</period>
          <price>100.00</price>
          <renewalPrice>100.00</renewalPrice>
        </cd>
        <cd>
          <name premium="0">non-premium.example</name>
          <period unit="y">5</period>
          <price>10.00</price>
          <renewalPrice>10.00</renewalPrice>
        </cd>
        <cd>
          <name premium="0">invalid-price.example</name>
          <period unit="y">5</period>
          <reason>No price information available</reason>
        </cd>
      </chkData>
    </extension>
    <trID>
      <clTRID>ABC-12345</clTRID>
      <svTRID>54321-XYZ</svTRID>
    </trID>
  </response>
</epp>


 TOC 

3.1.2.  EPP <info> Command

This extension does not define any extension to the EPP <info> command or response described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731].



 TOC 

3.1.3.  EPP <transfer> Command

This extension does not define any extension to the EPP <transfer> command or response described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731].



 TOC 

3.2.  EPP Transform Commands

EPP provides five commands to transform objects: <create> to create an instance of an object, <delete> to delete an instance of an object, <renew> to extend the validity period of an object, <transfer> to manage object sponsorship changes, and <update> to change information associated with an object.



 TOC 

3.2.1.  EPP <create> Command

This extension defines additional elements for the EPP <create> command described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731]. No additional elements are defined for the EPP <create> response.

To facilitate the registration of domain names that attract a premium registration fee, the <domain:create> command is extended with a <price:create> element, which signals a client’s acknowledgment of the premium fees associated with the transaction. The <price:create> element contains the following child elements:

Example <create> command with simple acknowledgment

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <create xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <ns>
          <hostObj>ns1.example.net</hostObj>
          <hostObj>ns2.example.net</hostObj>
        </ns>
        <registrant>jd1234</registrant>
        <contact type="admin">sh8013</contact>
        <contact type="tech">sh8013</contact>
        <authInfo>
          <pw>2fooBAR</pw>
        </authInfo>
      </create>
    </create>
    <extension>
      <create xmlns="urn:ar:params:xml:ns:price-1.0">
        <ack />
      </create>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Example <create> command including pricing information in the acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <create xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <ns>
          <hostObj>ns1.example.net</hostObj>
          <hostObj>ns2.example.net</hostObj>
        </ns>
        <registrant>jd1234</registrant>
        <contact type="admin">sh8013</contact>
        <contact type="tech">sh8013</contact>
        <authInfo>
          <pw>2fooBAR</pw>
        </authInfo>
      </create>
    </create>
    <extension>
      <create xmlns="urn:ar:params:xml:ns:price-1.0">
        <ack>
          <price>100.00</price>
          <renewalPrice>100.00</renewalPrice>
        </ack>
      </create>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Servers that require the use of this extension for the registration of premium names SHOULD return a 2003 "Required parameter missing" error in response to requests for registration of premium names that do not include this extension.



 TOC 

3.2.2.  EPP <delete> Command

This extension does not define any extension to the EPP <delete> command or response described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731].



 TOC 

3.2.3.  EPP <renew> Command

This extension defines additional elements for the EPP <transfer> command described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731]. No additional elements are defined for the EPP <transfer> response.

To enable clients to renew domain names that attract a premium renewal fee, the <domain:renew> command is extended with a <price:renew> element, that signal a client’s acknowledgment of the premium fees associated with the transaction. The <price:renew> element contains the following child elements:

Example <renew> command for a premium domain name with price acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <renew>
        <renew xmlns="urn:ietf:params:xml:ns:domain-1.0">
            <name>domain-name.tld</name>
            <curExpDate>2010-09-01</curExpDate>
            <period unit="y">5</period>
        </renew>
    </renew>
    <extension>
      <renew xmlns="urn:ar:params:xml:ns:price-1.0">
        <ack>
          <renewalPrice>100.00</renewalPrice>
        </ack>
      </renew>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Servers that require the use of this extension for the renewal of premium names SHOULD return a 2003 "Required parameter missing" error in response to requests for renewal of premium names that do not include this extension.



 TOC 

3.2.4.  EPP <transfer> Command

This extension defines additional elements for the EPP <transfer> command described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731]. No additional elements are defined for the EPP <transfer> response.

To enable clients to transfer domain names that attract a premium renewal fee, the <domain:transfer> command is extended with a <price:transfer> element, that signal a client’s acknowledgment of the premium fees associated with the transaction. The <price:transfer> element contains the following child elements:

Example <transfer> command for a premium domain name with price acknowledgement

<?xml version="1.0" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <transfer op="request">
      <transfer xmlns="urn:ietf:params:xml:ns:domain-1.0">
        <name>premium.example</name>
        <authInfo>
          <pw>2fooBAR</pw>
        </authInfo>
      </transfer>
    </transfer>
    <extension>
      <transfer xmlns="urn:ar:params:xml:ns:price-1.0">
        <ack>
          <renewalPrice>100.00</renewalPrice>
        </ack>
      </transfer>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Servers that require the use of this extension for the renewal of premium names SHOULD return a 2003 "Required parameter missing" error in response to requests for renewal of premium names that do not include this extension.



 TOC 

3.2.5.  EPP <update> Command

This extension does not define any extension to the EPP <update> command or response described in the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731].



 TOC 

4.  Formal Syntax

<?xml version="1.0" standalone="no" ?>
<schema targetNamespace="urn:ar:params:xml:ns:price-1.0"
  xmlns:price="urn:ar:params:xml:ns:price-1.0"
  xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
  xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
  xmlns="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified">

  <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" />
  <import namespace="urn:ietf:params:xml:ns:domain-1.0" />

  <!-- command-response extension elements -->
  <element name="check" type="price:chkType" />
  <element name="create" type="price:ackType" />
  <element name="renew" type="price:ackType" />
  <element name="transfer" type="price:ackType" />

  <complexType name="chkType">
  <sequence>
    <element name="period" type="domain:periodType" minOccurs="0" />
  </sequence>
  </complexType>

  <complexType name="ackType">
    <sequence>
      <element name="ack" type="price:priceAckType" />
    </sequence>
  </complexType>

  <complexType name="priceAckType">
    <sequence>
      <element name="price" type="decimal" minOccurs="0" />
      <element name="renewalPrice" type="decimal" minOccurs="0" />
    </sequence>
  </complexType>

  <!-- response elements -->
  <element name="chkData" type="price:chkDataType" />

  <complexType name="chkDataType">
    <sequence>
      <element name="cd" type="price:checkType"
               maxOccurs="unbounded" />
    </sequence>
  </complexType>

  <complexType name="checkType">
    <sequence>
      <element name="name" type="price:checkNameType" />
      <element name="period" type="domain:periodType"
               minOccurs="0" />
      <element name="price" type="decimal" minOccurs="0" />
      <element name="renewalPrice" type="decimal" minOccurs="0" />
      <element name="reason" type="eppcom:reasonType"
               minOccurs="0" />
    </sequence>
  </complexType>

  <complexType name="checkNameType">
    <simpleContent>
        <extension base="eppcom:labelType">
            <attribute name="premium" type="boolean" />
        </extension>
    </simpleContent>
  </complexType>
</schema>


 TOC 

5.  Acknowledgments

This document was inspired by Verisign's Premium Domain extension and draws many similarities to increase familiarity and reduce development time.



 TOC 

6.  Security Considerations

The mapping extensions described in this document do not provide any security services beyond those described by EPP (Hollenbeck, S., “Extensible Provisioning Protocol (EPP),” August 2009.) [RFC5730], the EPP Domain Name Mapping (Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” August 2009.) [RFC5731], and protocol layers used by EPP. The security considerations described in these other specifications apply to this specification as well.



 TOC 

7. Normative References

[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML).
[RFC5730] Hollenbeck, S., “Extensible Provisioning Protocol (EPP),” STD 69, RFC 5730, August 2009 (TXT).
[RFC5731] Hollenbeck, S., “Extensible Provisioning Protocol (EPP) Domain Name Mapping,” STD 69, RFC 5731, August 2009 (TXT).


 TOC 

Authors' Addresses

  James Mitchell
  AusRegistry
  8/10 Queens Road
  Melbourne, Victoria 3004
  AU
Email:  james.mitchell@ausregistry.com
URI:  www.ausregistry.com
  
  Chris Wright
  AusRegistry
  8/10 Queens Road
  Melbourne, Victoria 3004
  AU
Email:  chris@ausregistry.com
URI:  www.ausregistry.com