draft-ietf-regext-epp-fees-02.txt   draft-ietf-regext-epp-fees-03.txt 
Registration Protocols Extensions R. Carney Registration Protocols Extensions R. Carney
Internet-Draft GoDaddy Inc. Internet-Draft GoDaddy Inc.
Intended status: Standards Track G. Brown Intended status: Standards Track G. Brown
Expires: September 9, 2017 CentralNic Group plc Expires: October 26, 2017 CentralNic Group plc
J. Frakes J. Frakes
March 8, 2017 April 24, 2017
Registry Fee Extension for the Extensible Provisioning Protocol (EPP) Registry Fee Extension for the Extensible Provisioning Protocol (EPP)
draft-ietf-regext-epp-fees-02 draft-ietf-regext-epp-fees-03
Abstract Abstract
This document describes an Extensible Provisioning Protocol (EPP) This document describes an Extensible Provisioning Protocol (EPP)
extension mapping for registry fees. extension mapping for registry fees.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 33 skipping to change at page 1, line 33
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 9, 2017. This Internet-Draft will expire on October 26, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 27 skipping to change at page 2, line 27
3.4.3. Correlation between Refundability and Grace Periods . 7 3.4.3. Correlation between Refundability and Grace Periods . 7
3.4.4. Applicability . . . . . . . . . . . . . . . . . . . . 7 3.4.4. Applicability . . . . . . . . . . . . . . . . . . . . 7
3.5. Account Balance . . . . . . . . . . . . . . . . . . . . . 7 3.5. Account Balance . . . . . . . . . . . . . . . . . . . . . 7
3.6. Credit Limit . . . . . . . . . . . . . . . . . . . . . . 7 3.6. Credit Limit . . . . . . . . . . . . . . . . . . . . . . 7
3.7. Classification of Objects . . . . . . . . . . . . . . . . 8 3.7. Classification of Objects . . . . . . . . . . . . . . . . 8
3.8. Phase and Subphase Attributes . . . . . . . . . . . . . . 8 3.8. Phase and Subphase Attributes . . . . . . . . . . . . . . 8
4. Server Handling of Fee Information . . . . . . . . . . . . . 9 4. Server Handling of Fee Information . . . . . . . . . . . . . 9
5. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 9 5. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 9
5.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 9 5.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 9
5.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 9 5.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 9
5.1.1.1. Server Handling of Elements . . . . . . . . . . . 14 5.1.1.1. Server Handling of Elements . . . . . . . . . . . 13
5.1.2. EPP Transfer Query Command . . . . . . . . . . . . . 15 5.1.2. EPP Transfer Query Command . . . . . . . . . . . . . 14
5.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 16 5.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 15
5.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 16 5.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 15
5.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 19 5.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 18
5.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 20 5.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 19
5.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 22 5.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 21
5.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 24 5.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 23
6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 26 6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 25
6.1. Fee Extension Schema . . . . . . . . . . . . . . . . . . 26 6.1. Fee Extension Schema . . . . . . . . . . . . . . . . . . 25
7. Security Considerations . . . . . . . . . . . . . . . . . . . 30 7. Security Considerations . . . . . . . . . . . . . . . . . . . 29
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29
8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 30 8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 29
8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 31 8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 29
9. Implemntation Status . . . . . . . . . . . . . . . . . . . . 31 9. Implemntation Status . . . . . . . . . . . . . . . . . . . . 30
9.1. RegistryEngine EPP Service . . . . . . . . . . . . . . . 32 9.1. RegistryEngine EPP Service . . . . . . . . . . . . . . . 30
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 31
11. Change History . . . . . . . . . . . . . . . . . . . . . . . 32 11. Change History . . . . . . . . . . . . . . . . . . . . . . . 31
11.1. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 32 11.1. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 31
11.2. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 33 11.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 31
11.3. Change from draft-brown-00 to draft-ietf-regext-fees-00 33 11.3. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 32
12. Normative References . . . . . . . . . . . . . . . . . . . . 33 11.4. Change from draft-brown-00 to draft-ietf-regext-fees-00 32
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34 12. Normative References . . . . . . . . . . . . . . . . . . . . 32
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33
1. Introduction 1. Introduction
Historically, domain name registries have applied a simple fee Historically, domain name registries have applied a simple fee
structure for billable transactions, namely a basic unit price structure for billable transactions, namely a basic unit price
applied to domain <create>, <renew>, <transfer> and RGP [RFC3915] applied to domain <create>, <renew>, <transfer> and RGP [RFC3915]
restore commands. Given the relatively small number of EPP servers restore commands. Given the relatively small number of EPP servers
to which EPP clients have been required to connect, it has generally to which EPP clients have been required to connect, it has generally
been the case that client operators have been able to obtain details been the case that client operators have been able to obtain details
of these fees out-of-band by contacting the server operators. of these fees out-of-band by contacting the server operators.
skipping to change at page 3, line 38 skipping to change at page 3, line 38
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
XML is case sensitive. Unless stated otherwise, XML specifications XML is case sensitive. Unless stated otherwise, XML specifications
and examples provided in this document MUST be interpreted in the and examples provided in this document MUST be interpreted in the
character case presented in order to develop a conforming character case presented in order to develop a conforming
implementation. implementation.
"fee" is used as an abbreviation for "urn:ietf:params:xml:ns:fee- "fee" is used as an abbreviation for "urn:ietf:params:xml:ns:fee-
0.15". The XML namespace prefix "fee" is used, but implementations 0.17". The XML namespace prefix "fee" is used, but implementations
MUST NOT depend on it and instead employ a proper namespace-aware XML MUST NOT depend on it and instead employ a proper namespace-aware XML
parser and serializer to interpret and output the XML documents. parser and serializer to interpret and output the XML documents.
In examples, "C:" represents lines sent by a protocol client and "S:" In examples, "C:" represents lines sent by a protocol client and "S:"
represents lines returned by a protocol server. Indentation and represents lines returned by a protocol server. Indentation and
white space in examples are provided only to illustrate element white space in examples are provided only to illustrate element
relationships and are not a REQUIRED feature of this protocol. relationships and are not a REQUIRED feature of this protocol.
(Note to RFC Editor: remove the following paragraph before (Note to RFC Editor: remove the following paragraph before
publication as an RFC.) publication as an RFC.)
The XML namespace prefix above contains a version number, The XML namespace prefix above contains a version number,
specifically "0.15". This version number will increment with specifically "0.17". This version number will increment with
successive versions of this document, and will reach 1.0 if and when successive versions of this document, and will reach 1.0 if and when
this document is published as an RFC. This permits clients to this document is published as an RFC. This permits clients to
distinguish which version of the extension a server has implemented. distinguish which version of the extension a server has implemented.
2. Migrating to Newer Versions of This Extension 2. Migrating to Newer Versions of This Extension
(Note to RFC Editor: remove this section before publication as an (Note to RFC Editor: remove this section before publication as an
RFC.) RFC.)
Servers which implement this extension SHOULD provide a way for Servers which implement this extension SHOULD provide a way for
skipping to change at page 9, line 49 skipping to change at page 9, line 49
This extension does not add any elements to the EPP <poll> or <info> This extension does not add any elements to the EPP <poll> or <info>
commands or responses. commands or responses.
5.1.1. EPP <check> Command 5.1.1. EPP <check> Command
This extension defines additional elements for the EPP <check> This extension defines additional elements for the EPP <check>
command. command.
The command MAY contain an <extension> element which MAY contain a The command MAY contain an <extension> element which MAY contain a
<fee:check> element. The <fee:check> element MUST contain one or <fee:check> element. The <fee:check> element MAY contain one
more <fee:object> elements containing the following child elements: <fee:currency> element and MUST contain one or more <fee:command>
elements.
o A <fee:objID> element that MUST match one and only one of the
domain names in the <domain:check>;
o An OPTIONAL <fee:currency> element. If the server does not
support <fee:currency> value, it MUST return a 2306 error
response;
o One or more <fee:command> element(s) with a "name" attribute, an
OPTIONAL "phase" attribute, and an OPTIONAL "subphase" attribute.
The <fee:command> element(s) contain(s) a "name" attribute, an
OPTIONAL "phase" attribute, and an OPTIONAL "subphase" attribute.
The <fee:command> element(s) MAY have the following child elements: The <fee:command> element(s) MAY have the following child elements:
o An OPTIONAL <fee:period> element. o An OPTIONAL <fee:period> element.
o An OPTIONAL <fee:class> element. o An OPTIONAL <fee:class> element.
Example <check> command: Example <check> command:
C: <?xml version="1.0" encoding="utf-8" standalone="no"?> C: <?xml version="1.0" encoding="utf-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command> C: <command>
C: <check> C: <check>
C: <domain:check C: <domain:check
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
C: <domain:name>example.net</domain:name> C: <domain:name>example.net</domain:name>
C: <domain:name>example.xyz</domain:name> C: <domain:name>example.xyz</domain:name>
C: </domain:check> C: </domain:check>
C: </check> C: </check>
C: <extension> C: <extension>
C: <fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> C: <fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
C: <fee:object> C: <fee:currency>USD</fee:currency>
C: <fee:objID>example.com</fee:objID> C: <fee:command name="create">
C: <fee:currency>USD</fee:currency> C: <fee:period unit="y">2</fee:period>
C: <fee:command name="create"> C: </fee:command>
C: <fee:period unit="y">2</fee:period> C: <fee:command name="renew"/>
C: </fee:command> C: <fee:command name="transfer"/>
C: <fee:command name="renew"/> C: <fee:command name="restore"/>
C: <fee:command name="transfer"/>
C: <fee:command name="restore"/>
C: </fee:object>
C: <fee:object>
C: <fee:objID>example.net</fee:objID>
C: <fee:currency>USD</fee:currency>
C: <fee:command name="create">
C: <fee:period unit="y">11</fee:period>
C: </fee:command>
C: <fee:command name="renew"/>
C: </fee:object>
C: </fee:check> C: </fee:check>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C: </epp> C: </epp>
When the server receives a <check> command that includes the When the server receives a <check> command that includes the
extension elements described above, its response MUST contain an extension elements described above, its response MUST contain an
<extension> element, which MUST contain a child <fee:chkData> <extension> element, which MUST contain a child <fee:chkData>
element. The <fee:chkData> element MUST contain a <fee:cd> element element. The <fee:chkData> element MUST contain a <fee:currency>
for each object <fee:object> element referenced in the <fee:check> element and a <fee:cd> for each <domain:name> element referenced in
element of the client command. the <domain:check> element of the client command.
Each <fee:cd> element MUST contain the following child elements: Each <fee:cd> element MUST contain the following child elements:
o A <fee:objID> element, which MUST match a <fee:objID> from the o A <fee:objID> element, which MUST match a <domain:name> from the
client command. client command.
o A <fee:currency> element, which contains the same currency code
that appeared in the <fee:currency> element of the command. If no
<fee:currency> element appeared in the command, then the client's
default billing currency should be used.
o A <fee:command> element matching each <fee:command> that appeared o A <fee:command> element matching each <fee:command> that appeared
in the corresponding <fee:object> of the command. If a in the corresponding <fee:check> of the client command. This
<fee:object> element in the client command contains no element MAY have the OPTIONAL "phase" and "subphase" attributes,
<fee:command> element the server SHOULD return a <fee:command> which MUST match the same attributes in the corresponding
element for each server billable transaction combination of the <fee:command> element of the client command.
<fee:object>. This element MAY have the OPTIONAL "phase" and
"subphase" attributes, which MUST match the same attributes in the
corresponding <fee:object> element of the client command.
The <fee:command> element also has an OPTIONAL "avail" attribute The <fee:cd> element also has an OPTIONAL "avail" attribute which is
which is a boolean. If the value of this attribute evaluates to a boolean. If the value of this attribute evaluates to false, this
false, this indicates that the server cannot calculate the relevant indicates that the server cannot calculate the relevant fees, because
fees, because the object, command, currency, period or class is the object, command, currency, period, class or some combination is
invalid according to server policy. invalid per server policy. If "avail" is false then the <fee:cd>
element MAY contain a <fee:reason> element and the server MAY
eliminate some or all of the <fee:command> element(s).
The <fee:command> element(s) MAY have the following child elements: The <fee:command> element(s) MAY have the following child elements:
o An OPTIONAL <fee:period> element, which contains the same unit o An OPTIONAL <fee:period> element, which contains the same unit
that appeared in the <fee:period> element of the command. If the that appeared in the <fee:period> element of the command. If the
value of the preceding <fee:command> element is "restore", this value of the preceding <fee:command> element is "restore", this
element MUST NOT be included. Otherwise it MUST be included. If element MUST NOT be included, otherwise it MUST be included. If
no <fee:period> appeared in command (and the command is not no <fee:period> appeared in command (and the command is not
"restore") then the server MUST return its default period value. "restore") then the server MUST return its default period value.
o Zero or more <fee:fee> elements. o Zero or more <fee:fee> elements.
o Zero or more <fee:credit> elements. o Zero or more <fee:credit> elements.
o An OPTIONAL <fee:class> element. o An OPTIONAL <fee:class> element.
o An OPTIONAL <fee:reason> element. o An OPTIONAL <fee:reason> element.
If no <fee:fee> elements are present in a <fee:cd> element, this If the "avail" attribute of the <fee:cd> elelment is true and if no
<fee:fee> elements are present in a <fee:command> element, this
indicates that no fee will be assessed by the server for this indicates that no fee will be assessed by the server for this
command. command.
If the "avail" attribute of the <fee:command> element is false, then If the "avail" attribute of the <fee:cd> element is false, then the
the <fee:command> element MUST NOT contain any <fee:fee> or <fee:command> element MUST NOT contain any <fee:fee> or <fee:credit>
<fee:credit> child elements. If the "avail" attribute is true, then child elements. If the "avail" attribute is true, then the
the <fee:command> element MUST NOT contain a <fee:reason> element. <fee:command> element MUST NOT contain a <fee:reason> element.
Example <check> response: Example <check> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1000"> S: <result code="1000">
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:chkData S: <domain:chkData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:cd> S: <domain:cd>
S: <domain:name avail="1">example.com</domain:name> S: <domain:name avail="1">example.com</domain:name>
S: </domain:cd> S: </domain:cd>
S: <domain:cd> S: <domain:cd>
S: <domain:name avail="1">example.net</domain:name> S: <domain:name avail="1">example.net</domain:name>
S: </domain:cd> S: </domain:cd>
S: <domain:cd> S: <domain:cd>
S: <domain:name avail="1">example.xyz</domain:name> S: <domain:name avail="1">example.xyz</domain:name>
S: </domain:cd> S: </domain:cd>
S: </domain:chkData> S: </domain:chkData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:chkData S: <fee:chkData
S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.15" S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <fee:cd> S: <fee:currency>USD</fee:currency>
S: <fee:objID>example.com</fee:objID> S: <fee:cd>
S: <fee:currency>USD</fee:currency> S: <fee:objID>example.com</fee:objID>
S: <fee:command name="create"> S: <fee:command name="create">
S: <fee:period unit="y">2</fee:period> S: <fee:period unit="y">2</fee:period>
S: <fee:fee S: <fee:fee
S: description="Registration Fee" S: description="Registration Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">10.00</fee:fee> S: grace-period="P5D">10.00</fee:fee>
S: </fee:command> S: </fee:command>
S: <fee:command name="renew"> S: <fee:command name="renew">
S: <fee:period unit="y">1</fee:period> S: <fee:period unit="y">1</fee:period>
S: <fee:fee S: <fee:fee
S: description="Renewal Fee" S: description="Renewal Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: </fee:command> S: </fee:command>
S: <fee:command name="transfer"> S: <fee:command name="transfer">
S: <fee:period unit="y">1</fee:period> S: <fee:period unit="y">1</fee:period>
S: <fee:fee S: <fee:fee
S: description="Transfer Fee" S: description="Transfer Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: </fee:command> S: </fee:command>
S: <fee:command name="restore"> S: <fee:command name="restore">
S: <fee:fee S: <fee:fee
S: description="Redemption Fee">5.00</fee:fee> S: description="Redemption Fee">5.00</fee:fee>
S: </fee:command> S: </fee:command>
S: </fee:cd> S: </fee:cd>
S: <fee:cd> S: <fee:cd>
S: <fee:objID>example.net</fee:objID> S: <fee:objID>example.net</fee:objID>
S: <fee:currency>USD</fee:currency> S: <fee:command name="create">
S: <fee:command avail="0" name="create"> S: <fee:period unit="y">2</fee:period>
S: <fee:reason>Maximum period is 10 years</fee:reason> S: <fee:fee
S: </fee:command> S: description="Registration Fee"
S: <fee:command name="renew"> S: refundable="1"
S: <fee:period unit="y">1</fee:period> S: grace-period="P5D">10.00</fee:fee>
S: <fee:fee S: </fee:command>
S: description="Renewal Fee" S: <fee:command name="renew">
S: refundable="1" S: <fee:period unit="y">1</fee:period>
S: grace-period="P5D">5.00</fee:fee> S: <fee:fee
S: </fee:command> S: description="Renewal Fee"
S: </fee:cd> S: refundable="1"
S: </fee:chkData> S: grace-period="P5D">5.00</fee:fee>
S: </extension> S: </fee:command>
S: <trID> S: <fee:command name="transfer">
S: <clTRID>ABC-12345</clTRID> S: <fee:period unit="y">1</fee:period>
S: <svTRID>54322-XYZ</svTRID> S: <fee:fee
S: </trID> S: description="Transfer Fee"
S: </response> S: refundable="1"
S: </epp> S: grace-period="P5D">5.00</fee:fee>
S: </fee:command>
S: <fee:command name="restore">
S: <fee:fee
S: description="Redemption Fee">5.00</fee:fee>
S: </fee:command>
S: </fee:cd>
S: <fee:cd avail="0">
S: <fee:objID>example.xyz</fee:objID>
S: <fee:command name="create">
S: <fee:period unit="y">2</fee:period>
S: <fee:reason>Only 1 year registration periods are vaild.</fee:reason>
S: </fee:command>
S: </fee:cd>
S: </fee:chkData>
S: </extension>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID>
S: </trID>
S: </response>
S: </epp>
5.1.1.1. Server Handling of Elements 5.1.1.1. Server Handling of Elements
Clients MAY include a <fee:class> in the <fee:command> element. Clients MAY include a <fee:class> in the <fee:command> element.
There are three ways in which servers may handle this element: There are three ways in which servers may handle this element:
1. If the server supports the concept of tiers or classes of 1. If the server supports the concept of tiers or classes of
objects, then the value of this element MUST be validated. If objects, then the value of this element MUST be validated. If
incorrect for the specified object, the "avail" attribute of the incorrect for the specified object, the "avail" attribute of the
corresponding <fee:command> element MUST be false. corresponding <fee:command> element MUST be false.
skipping to change at page 14, line 38 skipping to change at page 14, line 4
5.1.1.1. Server Handling of Elements 5.1.1.1. Server Handling of Elements
Clients MAY include a <fee:class> in the <fee:command> element. Clients MAY include a <fee:class> in the <fee:command> element.
There are three ways in which servers may handle this element: There are three ways in which servers may handle this element:
1. If the server supports the concept of tiers or classes of 1. If the server supports the concept of tiers or classes of
objects, then the value of this element MUST be validated. If objects, then the value of this element MUST be validated. If
incorrect for the specified object, the "avail" attribute of the incorrect for the specified object, the "avail" attribute of the
corresponding <fee:command> element MUST be false. corresponding <fee:command> element MUST be false.
2. If the server supports different "types" of object registrations 2. If the server supports different "types" of object registrations
(such as a "blocking" registration which does not resolve, or (such as a "blocking" registration which does not resolve, or
where a registry provides a value-added service that requires an where a registry provides a value-added service that requires an
opt-out to disable), then, as with the first model, the server opt-out to disable), then, as with the first model, the server
MUST validate the value of the element. If the value is MUST validate the value of the element. If the value is
incorrect, the "avail" attribute of the corresponding incorrect, the "avail" attribute of the corresponding
<fee:command> element MUST be false. <fee:command> element MUST be false, and a <fee:reason> element
MUST be provided.
3. If the server supports neither of the above models, the element 3. If the server supports neither of the above models, the element
MUST be ignored. MUST be ignored.
Server operators must provide clear documentation to client operators Server operators must provide clear documentation to client operators
which of the above models it supports. which of the above models it supports.
5.1.2. EPP Transfer Query Command 5.1.2. EPP Transfer Query Command
This extension does not add any elements to the EPP <transfer> query This extension does not add any elements to the EPP <transfer> query
command, but does include elements in the response, when the command, but does include elements in the response, when the
skipping to change at page 16, line 26 skipping to change at page 15, line 26
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:trStatus>pending</domain:trStatus> S: <domain:trStatus>pending</domain:trStatus>
S: <domain:reID>ClientX</domain:reID> S: <domain:reID>ClientX</domain:reID>
S: <domain:reDate>2000-06-08T22:00:00.0Z</domain:reDate> S: <domain:reDate>2000-06-08T22:00:00.0Z</domain:reDate>
S: <domain:acID>ClientY</domain:acID> S: <domain:acID>ClientY</domain:acID>
S: <domain:acDate>2000-06-13T22:00:00.0Z</domain:acDate> S: <domain:acDate>2000-06-13T22:00:00.0Z</domain:acDate>
S: <domain:exDate>2002-09-08T22:00:00.0Z</domain:exDate> S: <domain:exDate>2002-09-08T22:00:00.0Z</domain:exDate>
S: </domain:trnData> S: </domain:trnData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:period unit="y">1</fee:period> S: <fee:period unit="y">1</fee:period>
S: <fee:fee>5.00</fee:fee> S: <fee:fee>5.00</fee:fee>
S: </fee:trnData> S: </fee:trnData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID> S: <svTRID>54322-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
skipping to change at page 17, line 12 skipping to change at page 16, line 12
the server MUST respond with a 2003 "Required parameter missing" the server MUST respond with a 2003 "Required parameter missing"
error. error.
When submitting a <create> command to the server, the client MAY When submitting a <create> command to the server, the client MAY
include in the <extension> element a <fee:create> element which include in the <extension> element a <fee:create> element which
includes the following child elements: includes the following child elements:
o An OPTIONAL <fee:currency> element; o An OPTIONAL <fee:currency> element;
o One or more <fee:fee> elements. o One or more <fee:fee> elements.
The server MUST fail the <create> command if the <fee:fee> provided
by the client is less than the server fee.
When the <create> command has been processed successfully, and the When the <create> command has been processed successfully, and the
client selected the extension when it logged in, and a fee was client selected the extension when it logged in, and a fee was
assessed by the server for the transaction, the server MUST include assessed by the server for the transaction, the server MUST include
in the <extension> section of the EPP response a <fee:creData> in the <extension> section of the EPP response a <fee:creData>
element, which contains the following child elements: element, which contains the following child elements:
o A <fee:currency> element; o A <fee:currency> element;
o Zero or more <fee:fee> elements; o Zero or more <fee:fee> elements;
o Zero or more <fee:credit> elements; o Zero or more <fee:credit> elements;
o An OPTIONAL <fee:balance> element; o An OPTIONAL <fee:balance> element;
skipping to change at page 18, line 28 skipping to change at page 17, line 28
C: </domain:ns> C: </domain:ns>
C: <domain:registrant>jd1234</domain:registrant> C: <domain:registrant>jd1234</domain:registrant>
C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="admin">sh8013</domain:contact>
C: <domain:contact type="tech">sh8013</domain:contact> C: <domain:contact type="tech">sh8013</domain:contact>
C: <domain:authInfo> C: <domain:authInfo>
C: <domain:pw>2fooBAR</domain:pw> C: <domain:pw>2fooBAR</domain:pw>
C: </domain:authInfo> C: </domain:authInfo>
C: </domain:create> C: </domain:create>
C: </create> C: </create>
C: <extension> C: <extension>
C: <fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> C: <fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee> C: <fee:fee>5.00</fee:fee>
C: </fee:create> C: </fee:create>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C: </epp> C: </epp>
Example <create> response: Example <create> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
skipping to change at page 19, line 21 skipping to change at page 18, line 21
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:creData S: <domain:creData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate> S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
S: <domain:exDate>2001-04-03T22:00:00.0Z</domain:exDate> S: <domain:exDate>2001-04-03T22:00:00.0Z</domain:exDate>
S: </domain:creData> S: </domain:creData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:creData xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> S: <fee:creData xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:fee S: <fee:fee
S: description="Registration Fee" S: description="Registration Fee"
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: <fee:balance>-5.00</fee:balance> S: <fee:balance>-5.00</fee:balance>
S: <fee:creditLimit>1000.00</fee:creditLimit> S: <fee:creditLimit>1000.00</fee:creditLimit>
S: </fee:creData> S: </fee:creData>
S: </extension> S: </extension>
S: <trID> S: <trID>
skipping to change at page 20, line 17 skipping to change at page 19, line 17
Example <delete> response: Example <delete> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1000"> S: <result code="1000">
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: </result> S: </result>
S: <extension> S: <extension>
S: <fee:delData S: <fee:delData
S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:credit description="AGP Credit">-5.00</fee:credit> S: <fee:credit description="AGP Credit">-5.00</fee:credit>
S: <fee:balance>1005.00</fee:balance> S: <fee:balance>1005.00</fee:balance>
S: </fee:delData> S: </fee:delData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID> S: <svTRID>54321-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
skipping to change at page 21, line 20 skipping to change at page 20, line 20
C: <command> C: <command>
C: <renew> C: <renew>
C: <domain:renew C: <domain:renew
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
C: <domain:curExpDate>2000-04-03</domain:curExpDate> C: <domain:curExpDate>2000-04-03</domain:curExpDate>
C: <domain:period unit="y">5</domain:period> C: <domain:period unit="y">5</domain:period>
C: </domain:renew> C: </domain:renew>
C: </renew> C: </renew>
C: <extension> C: <extension>
C: <fee:renew xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> C: <fee:renew xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee> C: <fee:fee>5.00</fee:fee>
C: </fee:renew> C: </fee:renew>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C: </epp> C: </epp>
Example <renew> response: Example <renew> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
skipping to change at page 22, line 20 skipping to change at page 21, line 20
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:renData S: <domain:renData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate> S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
S: </domain:renData> S: </domain:renData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> S: <fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:fee S: <fee:fee
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: <fee:balance>1000.00</fee:balance> S: <fee:balance>1000.00</fee:balance>
S: </fee:renData> S: </fee:renData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID> S: <svTRID>54322-XYZ</svTRID>
skipping to change at page 23, line 29 skipping to change at page 22, line 29
C: <domain:transfer C: <domain:transfer
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
C: <domain:period unit="y">1</domain:period> C: <domain:period unit="y">1</domain:period>
C: <domain:authInfo> C: <domain:authInfo>
C: <domain:pw roid="JD1234-REP">2fooBAR</domain:pw> C: <domain:pw roid="JD1234-REP">2fooBAR</domain:pw>
C: </domain:authInfo> C: </domain:authInfo>
C: </domain:transfer> C: </domain:transfer>
C: </transfer> C: </transfer>
C: <extension> C: <extension>
C: <fee:transfer xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> C: <fee:transfer xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee> C: <fee:fee>5.00</fee:fee>
C: </fee:transfer> C: </fee:transfer>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C: </epp> C: </epp>
Example <transfer> response: Example <transfer> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
skipping to change at page 24, line 25 skipping to change at page 23, line 25
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:trStatus>pending</domain:trStatus> S: <domain:trStatus>pending</domain:trStatus>
S: <domain:reID>ClientX</domain:reID> S: <domain:reID>ClientX</domain:reID>
S: <domain:reDate>2000-06-08T22:00:00.0Z</domain:reDate> S: <domain:reDate>2000-06-08T22:00:00.0Z</domain:reDate>
S: <domain:acID>ClientY</domain:acID> S: <domain:acID>ClientY</domain:acID>
S: <domain:acDate>2000-06-13T22:00:00.0Z</domain:acDate> S: <domain:acDate>2000-06-13T22:00:00.0Z</domain:acDate>
S: <domain:exDate>2002-09-08T22:00:00.0Z</domain:exDate> S: <domain:exDate>2002-09-08T22:00:00.0Z</domain:exDate>
S: </domain:trnData> S: </domain:trnData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:fee S: <fee:fee
S: refundable="1" S: refundable="1"
S: grace-period="P5D">5.00</fee:fee> S: grace-period="P5D">5.00</fee:fee>
S: </fee:trnData> S: </fee:trnData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID> S: <svTRID>54322-XYZ</svTRID>
S: </trID> S: </trID>
skipping to change at page 25, line 31 skipping to change at page 24, line 31
C: <update> C: <update>
C: <domain:update C: <domain:update
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>example.com</domain:name> C: <domain:name>example.com</domain:name>
C: <domain:chg> C: <domain:chg>
C: <domain:registrant>sh8013</domain:registrant> C: <domain:registrant>sh8013</domain:registrant>
C: </domain:chg> C: </domain:chg>
C: </domain:update> C: </domain:update>
C: </update> C: </update>
C: <extension> C: <extension>
C: <fee:update xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> C: <fee:update xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:fee>5.00</fee:fee> C: <fee:fee>5.00</fee:fee>
C: </fee:update> C: </fee:update>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C: </epp> C: </epp>
Example <update> response: Example <update> response:
S: <?xml version="1.0" encoding="utf-8" standalone="no"?> S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1000"> S: <result code="1000">
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: </result> S: </result>
S: <extension> S: <extension>
S: <fee:updData xmlns:fee="urn:ietf:params:xml:ns:fee-0.15"> S: <fee:updData xmlns:fee="urn:ietf:params:xml:ns:fee-0.17">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:fee>5.00</fee:fee> S: <fee:fee>5.00</fee:fee>
S: </fee:updData> S: </fee:updData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID> S: <svTRID>54321-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
S: </epp> S: </epp>
skipping to change at page 26, line 40 skipping to change at page 25, line 40
of the object mapping suitable for automated validation of EPP XML of the object mapping suitable for automated validation of EPP XML
instances. The BEGIN and END tags are not part of the schema; they 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 are used to note the beginning and ending of the schema for URI
registration purposes. registration purposes.
6.1. Fee Extension Schema 6.1. Fee Extension Schema
BEGIN BEGIN
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" <schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:fee="urn:ietf:params:xml:ns:fee-0.15" xmlns:fee="urn:ietf:params:xml:ns:fee-0.17"
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
targetNamespace="urn:ietf:params:xml:ns:fee-0.15" targetNamespace="urn:ietf:params:xml:ns:fee-0.17"
elementFormDefault="qualified"> elementFormDefault="qualified">
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0" /> <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" />
<import namespace="urn:ietf:params:xml:ns:domain-1.0" /> <import namespace="urn:ietf:params:xml:ns:domain-1.0" />
<annotation> <annotation>
<documentation> <documentation>
Extensible Provisioning Protocol v1.0 Fee Extension Extensible Provisioning Protocol v1.0 Fee Extension
</documentation> </documentation>
skipping to change at page 27, line 24 skipping to change at page 26, line 24
<element name="renData" type="fee:transformResultType" /> <element name="renData" type="fee:transformResultType" />
<element name="transfer" type="fee:transformCommandType" /> <element name="transfer" type="fee:transformCommandType" />
<element name="trnData" type="fee:transformResultType" /> <element name="trnData" type="fee:transformResultType" />
<element name="update" type="fee:transformCommandType" /> <element name="update" type="fee:transformCommandType" />
<element name="updData" type="fee:transformResultType" /> <element name="updData" type="fee:transformResultType" />
<element name="delData" type="fee:transformResultType" /> <element name="delData" type="fee:transformResultType" />
<!-- client <check> command --> <!-- client <check> command -->
<complexType name="checkType"> <complexType name="checkType">
<sequence> <sequence>
<element name="object" type="fee:objectCheckType"
maxOccurs="unbounded" />
</sequence>
</complexType>
<complexType name="objectCheckType">
<sequence>
<element name="objID" type="fee:objectIdentifierType" />
<element name="currency" type="fee:currencyType" <element name="currency" type="fee:currencyType"
minOccurs="0" /> minOccurs="0" />
<element name="command" type="fee:commandType" <element name="command" type="fee:commandType"
maxOccurs="unbounded" /> minOccurs=""1" "maxOccurs="unbounded" />
</sequence> </sequence>
</complexType> </complexType>
<complexType name="objectIdentifierType"> <complexType name="objectIdentifierType">
<simpleContent> <simpleContent>
<extension base="eppcom:labelType"> <extension base="eppcom:labelType">
<attribute name="element" <attribute name="element"
type="NMTOKEN" default="name" /> type="NMTOKEN" default="name" />
</extension> </extension>
</simpleContent> </simpleContent>
</complexType> </complexType>
<!-- server <check> result --> <!-- server <check> result -->
<complexType name="chkDataType"> <complexType name="chkDataType">
<sequence> <sequence>
<element name="currency" type="fee:currencyType" />
<element name="cd" type="fee:objectCDType" <element name="cd" type="fee:objectCDType"
maxOccurs="unbounded" /> maxOccurs="unbounded" />
</sequence> </sequence>
</complexType> </complexType>
<complexType name="objectCDType"> <complexType name="objectCDType">
<sequence> <sequence>
<element name="objID" type="fee:objectIdentifierType" /> <element name="objID" type="fee:objectIdentifierType" />
<element name="currency" type="fee:currencyType" />
<element name="command" type="fee:commandType" <element name="command" type="fee:commandType"
maxOccurs="unbounded" /> maxOccurs="unbounded" />
<element name="reason" type="token" minOccurs="0" />
</sequence> </sequence>
<attribute name="avail" type="boolean" default="1" />
</complexType> </complexType>
<!-- general transform (create, renew, update, transfer) command --> <!-- general transform (create, renew, update, transfer) command -->
<complexType name="transformCommandType"> <complexType name="transformCommandType">
<sequence> <sequence>
<element name="currency" type="fee:currencyType" <element name="currency" type="fee:currencyType"
minOccurs="0" /> minOccurs="0" />
<element name="fee" type="fee:feeType" <element name="fee" type="fee:feeType"
maxOccurs="unbounded" /> maxOccurs="unbounded" />
<element name="credit" type="fee:creditType" <element name="credit" type="fee:creditType"
skipping to change at page 29, line 18 skipping to change at page 28, line 13
<element name="fee" type="fee:feeType" <element name="fee" type="fee:feeType"
minOccurs="0" maxOccurs="unbounded" /> minOccurs="0" maxOccurs="unbounded" />
<element name="credit" type="fee:creditType" <element name="credit" type="fee:creditType"
minOccurs="0" maxOccurs="unbounded" /> minOccurs="0" maxOccurs="unbounded" />
<element name="class" type="token" minOccurs="0" /> <element name="class" type="token" minOccurs="0" />
<element name="reason" type="token" minOccurs="0" /> <element name="reason" type="token" minOccurs="0" />
</sequence> </sequence>
<attribute name="name" type="fee:commandTypeValue"/> <attribute name="name" type="fee:commandTypeValue"/>
<attribute name="phase" type="token" /> <attribute name="phase" type="token" />
<attribute name="subphase" type="token" /> <attribute name="subphase" type="token" />
<attribute name="avail" type="boolean" default="1" />
</complexType> </complexType>
<simpleType name="commandTypeValue"> <simpleType name="commandTypeValue">
<restriction base="token"> <restriction base="token">
<minLength value="3"/> <minLength value="3"/>
<maxLength value="16"/> <maxLength value="16"/>
</restriction> </restriction>
</simpleType> </simpleType>
<simpleType name="nonNegativeDecimal"> <simpleType name="nonNegativeDecimal">
skipping to change at page 30, line 46 skipping to change at page 29, line 39
to this specification as well. to this specification as well.
8. IANA Considerations 8. IANA Considerations
8.1. XML Namespace 8.1. XML Namespace
This document uses URNs to describe XML namespaces and XML schemas This document uses URNs to describe XML namespaces and XML schemas
conforming to a registry mechanism described in [RFC3688]. The conforming to a registry mechanism described in [RFC3688]. The
following URI assignment is requested of IANA: following URI assignment is requested of IANA:
URI: ietf:params:xml:ns:fee-0.15 URI: ietf:params:xml:ns:fee-0.17
Registrant Contact: See the "Author's Address" section of this Registrant Contact: See the "Author's Address" section of this
document. document.
XML: See the "Formal Syntax" section of this document. XML: See the "Formal Syntax" section of this document.
8.2. EPP Extension Registry 8.2. EPP Extension Registry
The EPP extension described in this document should be registered by The EPP extension described in this document should be registered by
the IANA in the EPP Extension Registry described in [RFC7451]. The the IANA in the EPP Extension Registry described in [RFC7451]. The
skipping to change at page 32, line 44 skipping to change at page 31, line 37
o Ben Levac and Jeff Eckhaus of Demand Media o Ben Levac and Jeff Eckhaus of Demand Media
o Seth Goldman of Google o Seth Goldman of Google
o Klaus Malorny and Michael Bauland of Knipp o Klaus Malorny and Michael Bauland of Knipp
o Jody Kolker, Joe Snitker and Kevin Allendorf of Go Daddy o Jody Kolker, Joe Snitker and Kevin Allendorf of Go Daddy
o Michael Holloway of Com Laude o Michael Holloway of Com Laude
o Santosh Kalsangrah of Impetus Infotech o Santosh Kalsangrah of Impetus Infotech
o Alex Mayrhofer of Nic.at o Alex Mayrhofer of Nic.at
11. Change History 11. Change History
11.1. Change from 01 to 02 11.1. Change from 02 to 03
Updated scheme to version 0.17 to simplify the check command syntax.
Moved fee avail to objectCDType to allow fast failing on error
situations. Removed the objectCheckTpye as it was no longer being
used. Updated examples to reflect these scheme changes. Added
language for server failing a <create> if the <fee:fee> passed by the
client is less than the server fee.
11.2. Change from 01 to 02
Updated scheme to version 0.15 to fix errors in CommandType, Updated scheme to version 0.15 to fix errors in CommandType,
objectCDType, transformCommandType and transformResultType objectCDType, transformCommandType and transformResultType
definitions. definitions.
11.2. Change from 00 to 01 11.3. Change from 00 to 01
Added Roger Carney as author to finish draft. Moved Formal Syntax Added Roger Carney as author to finish draft. Moved Formal Syntax
section to main level numbering. Various grammar, typos, and section to main level numbering. Various grammar, typos, and
administrative edits for clarity. Removed default value for the administrative edits for clarity. Removed default value for the
"applied" attribute of <fee:fee> so that it can truly be optional. "applied" attribute of <fee:fee> so that it can truly be optional.
Added support for the <delete> command to return a <fee:fee> element Added support for the <delete> command to return a <fee:fee> element
as well. Modified default response on the <check> command for the as well. Modified default response on the <check> command for the
optional <fee:period> when it was not provided in the command, optional <fee:period> when it was not provided in the command,
leaving it to the server to provide the default period value. leaving it to the server to provide the default period value.
Extensive edits were done to the <check> command, the <check> Extensive edits were done to the <check> command, the <check>
response and to the fee extension schema (checkType, objectCheckType, response and to the fee extension schema (checkType, objectCheckType,
objectIdentifierType, objectCDType, commandType) to support objectIdentifierType, objectCDType, commandType) to support
requesting and returning multiple transformation fees in a single requesting and returning multiple transformation fees in a single
call. Added section on Phase/Subphase to provide more context on the call. Added section on Phase/Subphase to provide more context on the
uses. uses.
11.3. Change from draft-brown-00 to draft-ietf-regext-fees-00 11.4. Change from draft-brown-00 to draft-ietf-regext-fees-00
Updated to be REGEXT WG document. Updated to be REGEXT WG document.
12. Normative References 12. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
 End of changes. 46 change blocks. 
188 lines changed or deleted 196 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/