draft-ietf-regext-epp-fees-08.txt   draft-ietf-regext-epp-fees-09.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: April 4, 2018 CentralNic Group plc Expires: July 23, 2018 CentralNic Group plc
J. Frakes J. Frakes
October 1, 2017 January 19, 2018
Registry Fee Extension for the Extensible Provisioning Protocol (EPP) Registry Fee Extension for the Extensible Provisioning Protocol (EPP)
draft-ietf-regext-epp-fees-08 draft-ietf-regext-epp-fees-09
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 April 4, 2018. This Internet-Draft will expire on July 23, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2018 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 24 skipping to change at page 2, line 24
3.4. Fees and Credits . . . . . . . . . . . . . . . . . . . . 6 3.4. Fees and Credits . . . . . . . . . . . . . . . . . . . . 6
3.4.1. Refunds . . . . . . . . . . . . . . . . . . . . . . . 6 3.4.1. Refunds . . . . . . . . . . . . . . . . . . . . . . . 6
3.4.2. Grace Periods . . . . . . . . . . . . . . . . . . . . 7 3.4.2. Grace Periods . . . . . . . . . . . . . . . . . . . . 7
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 . . . . . . . . . . . . . . . . . . . . . . 8 3.6. Credit Limit . . . . . . . . . . . . . . . . . . . . . . 8
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
3.9. Reason . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.9. Reason . . . . . . . . . . . . . . . . . . . . . . . . . 9
4. Server Handling of Fee Information . . . . . . . . . . . . . 10 4. Server Handling of Fee Information . . . . . . . . . . . . . 11
5. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 10 5. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 11
5.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 10 5.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 11
5.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 10 5.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 11
5.1.1.1. Server Handling of Elements . . . . . . . . . . . 15 5.1.1.1. Server Handling of Elements . . . . . . . . . . . 15
5.1.2. EPP Transfer Query Command . . . . . . . . . . . . . 15 5.1.2. EPP Transfer Query Command . . . . . . . . . . . . . 16
5.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 16 5.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 17
5.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 16 5.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 17
5.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 19 5.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 19
5.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 20 5.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 20
5.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 22 5.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 22
5.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 24 5.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 24
6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 26 6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 26
6.1. Fee Extension Schema . . . . . . . . . . . . . . . . . . 26 6.1. Fee Extension Schema . . . . . . . . . . . . . . . . . . 26
7. Security Considerations . . . . . . . . . . . . . . . . . . . 30 7. Security Considerations . . . . . . . . . . . . . . . . . . . 30
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31
8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 30 8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 31
8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 31 8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 31
9. Implemntation Status . . . . . . . . . . . . . . . . . . . . 31 9. Implemntation Status . . . . . . . . . . . . . . . . . . . . 31
9.1. RegistryEngine EPP Service . . . . . . . . . . . . . . . 32 9.1. RegistryEngine EPP Service . . . . . . . . . . . . . . . 32
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32
11. Change History . . . . . . . . . . . . . . . . . . . . . . . 33 11. Change History . . . . . . . . . . . . . . . . . . . . . . . 33
11.1. Change from 07 to 08 . . . . . . . . . . . . . . . . . . 33 11.1. Change from 08 to 09 . . . . . . . . . . . . . . . . . . 33
11.2. Change from 06 to 07 . . . . . . . . . . . . . . . . . . 33 11.2. Change from 07 to 08 . . . . . . . . . . . . . . . . . . 33
11.3. Change from 05 to 06 . . . . . . . . . . . . . . . . . . 33 11.3. Change from 06 to 07 . . . . . . . . . . . . . . . . . . 33
11.4. Change from 04 to 05 . . . . . . . . . . . . . . . . . . 33 11.4. Change from 05 to 06 . . . . . . . . . . . . . . . . . . 33
11.5. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 33 11.5. Change from 04 to 05 . . . . . . . . . . . . . . . . . . 33
11.6. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 33 11.6. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 34
11.7. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 34 11.7. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 34
11.8. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 34 11.8. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 34
11.9. Change from draft-brown-00 to draft-ietf-regext-fees-00 34 11.9. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 34
12. Normative References . . . . . . . . . . . . . . . . . . . . 34 11.10. Change from draft-brown-00 to draft-ietf-regext-fees-00 35
12. Normative References . . . . . . . . . . . . . . . . . . . . 35
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35
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
skipping to change at page 3, line 42 skipping to change at page 3, line 43
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.23". The XML namespace prefix "fee" is used, but implementations 0.25". 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.23". This version number will increment with specifically "0.25". 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 4, line 45 skipping to change at page 4, line 45
elements, the server SHOULD only include extension elements for the elements, the server SHOULD only include extension elements for the
extension versions present in the command. extension versions present in the command.
3. Extension Elements 3. Extension Elements
3.1. Client Commands 3.1. Client Commands
The <fee:command> element is used in the EPP <check> command to The <fee:command> element is used in the EPP <check> command to
determine the fee which is applicable to the given command. determine the fee which is applicable to the given command.
The list of values include: The use of the <fee:command> keys off the use of the "name" attribute
to define which transform fees the client is requesting information
about. Here is the list of possible values for the "name" attribute:
o "create" indicating a <create> command as defined in [RFC5730]; o "create" indicating a <create> command as defined in [RFC5730];
o "delete" indicating a <delete> command as defined in [RFC5730]; o "delete" indicating a <delete> command as defined in [RFC5730];
o "renew" indicating a <renew> command as defined in [RFC5730]; o "renew" indicating a <renew> command as defined in [RFC5730];
o "update" indicating a <update> command as defined in [RFC5730]; o "update" indicating a <update> command as defined in [RFC5730];
o "transfer" indicating a <transfer> command as defined in o "transfer" indicating a <transfer> command as defined in
[RFC5730]; [RFC5730];
o If the server supports the Registry Grace Period Mapping o If the server supports the Registry Grace Period Mapping
[RFC3915], then the server MUST also support the "restore" value [RFC3915], then the server MUST also support the "restore" value
as defined in [RFC3915]; as defined in [RFC3915];
o "custom" indicating a custom command that uses the customName o "custom" indicating a custom command that uses the customName
attribute to define the custom operation. attribute to define the custom operation.
The <fee:command> element MAY have an OPTIONAL "phase" attribute The <fee:command> element MAY have an OPTIONAL "phase" attribute
specifying a launch phase as described in [draft-ietf-eppext- specifying a launch phase as described in [draft-ietf-eppext-
launchphase]. It may also contain an OPTIONAL "subphase" attribute launchphase]. It may also contain an OPTIONAL "subphase" attribute
identifying the custom or sub-phase as described in [draft-ietf- identifying the custom or sub-phase as described in [draft-ietf-
skipping to change at page 9, line 50 skipping to change at page 9, line 50
[draft-ietf-eppext-launchphase] or not supported by server the server [draft-ietf-eppext-launchphase] or not supported by server the server
MUST respond with a 2004 "Parameter value range" error. MUST respond with a 2004 "Parameter value range" error.
If the client <fee:command> contains a subphase attribute (or phase/ If the client <fee:command> contains a subphase attribute (or phase/
subphase combination) not supported by server the server MUST respond subphase combination) not supported by server the server MUST respond
with a 2004 "Parameter value range" error. with a 2004 "Parameter value range" error.
3.9. Reason 3.9. Reason
The <fee:reason> element is used to provide server specific text in The <fee:reason> element is used to provide server specific text in
an effort to better explain why an operation did not complete as the an effort to better explain why a <check> command did not complete as
client expected. An OPTIONAL "lang" attribute MAY be present to the client expected. An OPTIONAL "lang" attribute MAY be present to
identify the language of the returned text. identify the language of the returned text and has a default value of
"en" English.
The <fee:reason> element can be used within the server response
<fee:command> element or within the <fee:cd> element.
If the server cannot calculate the relevant fees, because the object,
command, currency, period, class or some combination is invalid per
server policy, the server has two ways of handling error processing
of <fee:command> element(s):
1. Fast-fail - The server, upon error identification, MAY stop
processing <fee:command> elements and return to the client a
<fee:cd> containing the <fee:objID> and a <fee:reason> element
detailing the reason for failure.
S: <fee:cd avail="0">
S: <fee:objID>example.xyz</fee:objID>
S: <fee:reason>Only 1 year registration periods are
S: valid.</fee:reason>
S: </fee:cd>
2. Partial-fail - The server, upon error identification, MAY
continue processing <fee:command> elements and return to the
client a <fee:cd> containing successfully processed <fee:command>
elements and failed <fee:command> elements. All returned failed
<fee:command> elements that MUST have a <fee:reason> element
detailing the reason for failure, and the server MAY additionally
include a <fee:reason> element at the <fee:cd> level.
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
S: valid.</fee:reason>
S: </fee:command>
S: </fee:cd>
In either failure scenario the server MUST set the <fee:cd> avail
attribute to false (0) and the server MUST process all domain names
in the client request.
4. Server Handling of Fee Information 4. Server Handling of Fee Information
Depending on server policy, a client MAY be required to include the Depending on server policy, a client MAY be required to include the
extension elements described in this document for certain transform extension elements described in this document for certain transform
commands. Servers must provide clear documentation to clients about commands. Servers must provide clear documentation to clients about
the circumstances in which this extension must be used. the circumstances in which this extension must be used.
The server MUST return avail="0" in its response to a <check> command The server MUST return avail="0" in its response to a <check> command
for any domain name in the <check> command that does not include the for any domain name in the <check> command that does not include the
skipping to change at page 11, line 10 skipping to change at page 12, line 10
This extension defines a new command called the Fee Check Command This extension defines a new command called the Fee Check Command
that defines additional elements for the EPP <check> command to that defines additional elements for the EPP <check> command to
provide fee information along with the availability information of provide fee information along with the availability information of
the EPP <check> command. the EPP <check> 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 MAY contain one <fee:check> element. The <fee:check> element MAY contain one
<fee:currency> element and MUST contain one or more <fee:command> <fee:currency> element and MUST contain one or more <fee:command>
elements. elements.
The <fee:command> element(s) contain(s) a "name" attribute, an The <fee:command> element(s) contain(s) a "name" attribute (see
OPTIONAL "phase" attribute, and an OPTIONAL "subphase" attribute. Section 3.1), an OPTIONAL "phase" attribute, and an OPTIONAL
The <fee:command> element(s) MAY have the following child elements: "subphase" attribute (see Section 3.8). The <fee:command> element(s)
MAY have the following child elements:
o An OPTIONAL <fee:period> element (as described in Section 3.3). o An OPTIONAL <fee:period> element (as described in Section 3.3).
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.23"> C: <fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
C: <fee:currency>USD</fee:currency> C: <fee:currency>USD</fee:currency>
C: <fee:command name="create"> C: <fee:command name="create">
C: <fee:period unit="y">2</fee:period> C: <fee:period unit="y">2</fee:period>
C: </fee:command> C: </fee:command>
C: <fee:command name="renew"/> C: <fee:command name="renew"/>
C: <fee:command name="transfer"/> C: <fee:command name="transfer"/>
C: <fee:command name="restore"/> C: <fee:command name="restore"/>
C: </fee:check> C: </fee:check>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
skipping to change at page 12, line 7 skipping to change at page 13, line 7
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:currency> element. The <fee:chkData> element MUST contain a <fee:currency>
element and a <fee:cd> for each element referenced in the client element and a <fee:cd> for each element referenced in the client
<check> command. <check> 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 an element referenced in o A <fee:objID> element, which MUST match an element referenced in
the client <check> command. the client <check> command.
o An OPTIONAL <fee:class> element (as described in Section 3.7).
o A <fee:command> element matching each <fee:command> (unless the o A <fee:command> element matching each <fee:command> (unless the
"avail" attribute of the <fee:cd> if false) that appeared in the "avail" attribute of the <fee:cd> if false) that appeared in the
corresponding <fee:check> of the client command. This element MAY corresponding <fee:check> of the client command. This element MAY
have the OPTIONAL "phase" and "subphase" attributes, which SHOULD have the OPTIONAL "phase" and "subphase" attributes, which SHOULD
match the same attributes in the corresponding <fee:command> match the same attributes in the corresponding <fee:command>
element of the client command if sent by the client. element of the client command if sent by the client.
The <fee:cd> element also has an OPTIONAL "avail" attribute which is The <fee:cd> element also has an OPTIONAL "avail" attribute which is
a boolean. If the value of this attribute evaluates to false, this a boolean. If the value of this attribute evaluates to false, this
indicates that the server cannot calculate the relevant fees, because indicates that the server cannot calculate the relevant fees, because
the object, command, currency, period, class or some combination is the object, command, currency, period, class or some combination is
invalid per server policy. If "avail" is false then the <fee:cd> invalid per server policy. If "avail" is false then the <fee:cd> or
element MUST contain a <fee:reason> element (as described in the <fee:command> element MUST contain a <fee:reason> element (as
Section 3.9) and the server MAY eliminate some or all of the described in Section 3.9) and the server MAY eliminate some or all of
<fee:command> element(s). 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 (as described in Section 3.3), o An OPTIONAL <fee:period> element (as described in Section 3.3),
which contains the same unit that appeared in the <fee:period> which contains the same unit that appeared in the <fee:period>
element of the command. If the value of the preceding element of the command. If the value of the preceding
<fee:command> element is "restore", this element MUST NOT be <fee:command> element is "restore", this element MUST NOT be
included, otherwise it MUST be included. If no <fee:period> included, otherwise it MUST be included. If no <fee:period>
appeared in the client command (and the command is not "restore") appeared in the client command (and the command is not "restore")
then the server MUST return its default period value. then the server MUST return its default period value.
o Zero or more <fee:fee> elements (as described in Section 3.4). o Zero or more <fee:fee> elements (as described in Section 3.4).
o Zero or more <fee:credit> elements (as described in Section 3.4). o Zero or more <fee:credit> elements (as described in Section 3.4).
o An OPTIONAL <fee:class> element (as described in Section 3.7).
o An OPTIONAL <fee:reason> element (as described in Section 3.9). o An OPTIONAL <fee:reason> element (as described in Section 3.9).
If the "avail" attribute of the <fee:cd> element is true and if no If the "avail" attribute of the <fee:cd> element is true and if no
<fee:fee> elements are present in a <fee:command> element, this <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 is true, then the <fee:command> element MUST If the "avail" attribute is true, then the <fee:command> element MUST
NOT contain a <fee:reason> element. NOT contain a <fee:reason> element.
skipping to change at page 13, line 20 skipping to change at page 14, line 20
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.23" S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <fee:currency>USD</fee:currency> S: <fee:currency>USD</fee:currency>
S: <fee:cd avail="1"> S: <fee:cd avail="1">
S: <fee:objID>example.com</fee:objID> 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>
skipping to change at page 14, line 36 skipping to change at page 15, line 35
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 avail="0"> S: <fee:cd avail="0">
S: <fee:objID>example.xyz</fee:objID> S: <fee:objID>example.xyz</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:reason>Only 1 year registration periods are S: <fee:reason>Only 1 year registration periods are
S: vaild.</fee:reason> S: valid.</fee:reason>
S: </fee:command> S: </fee:command>
S: </fee:cd> S: </fee:cd>
S: </fee:chkData> S: </fee:chkData>
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>
S: </epp> 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:cd> element. There are
There are two ways in which servers may handle this element: two 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:cd> element MUST be false. corresponding <fee:cd> 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
skipping to change at page 16, line 26 skipping to change at page 17, 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.23"> S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
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>
S: </epp> S: </epp>
5.2. EPP Transform Commands 5.2. EPP Transform Commands
5.2.1. EPP <create> Command 5.2.1. EPP <create> Command
This extension adds elements to both the EPP <create> command and This extension adds elements to both the EPP <create> command and
response, when the extension has been selected during a <login> response, when the extension has been selected during a <login>
command. command.
If a <create> command is received with no <fee:create> extension and
the server requires a <fee:create> extension for the <domain:name>
the server MUST respond with a 2003 "Required parameter missing"
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 (as described in Section 3.2); o An OPTIONAL <fee:currency> element (as described in Section 3.2);
o One or more <fee:fee> elements (as described in Section 3.4). o One or more <fee:fee> elements (as described in Section 3.4).
The server MUST fail the <create> command if the <fee:fee> provided The server MUST fail the <create> command if the <fee:fee> provided
by the client is less than the server fee. by the client is less than the server fee.
skipping to change at page 18, line 28 skipping to change at page 18, line 44
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.23"> C: <fee:create xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
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 19, 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.23"> S: <fee:creData xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
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 18 skipping to change at page 20, line 18
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.23"> S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
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 22 skipping to change at page 21, line 22
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.23"> C: <fee:renew xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
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 22, 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.23"> S: <fee:renData xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
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 30 skipping to change at page 23, line 30
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.23"> C: <fee:transfer xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
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 24, 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.23"> S: <fee:trnData xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
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 32 skipping to change at page 25, line 32
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.23"> C: <fee:update xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
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.23"> S: <fee:updData xmlns:fee="urn:ietf:params:xml:ns:fee-0.25">
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 26, 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.23" xmlns:fee="urn:ietf:params:xml:ns:fee-0.25"
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.23" targetNamespace="urn:ietf:params:xml:ns:fee-0.25"
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 52 skipping to change at page 27, line 52
<sequence> <sequence>
<element name="currency" type="fee:currencyType" /> <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="command" type="fee:commandType" <element name="class" type="token" minOccurs="0" />
<element name="command" type="fee:commandDataType"
minOccurs="0" maxOccurs="unbounded" /> minOccurs="0" maxOccurs="unbounded" />
<element name="reason" type="fee:reasonType" minOccurs="0" /> <element name="reason" type="fee:reasonType" minOccurs="0" />
</sequence> </sequence>
<attribute name="avail" type="boolean" default="1" /> <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"
skipping to change at page 28, line 51 skipping to change at page 29, line 4
<simpleType name="currencyType"> <simpleType name="currencyType">
<restriction base="string"> <restriction base="string">
<pattern value="[A-Z]{3}" /> <pattern value="[A-Z]{3}" />
</restriction> </restriction>
</simpleType> </simpleType>
<complexType name="commandType"> <complexType name="commandType">
<sequence> <sequence>
<element name="period" type="domain:periodType" <element name="period" type="domain:periodType"
minOccurs="0" maxOccurs="1" /> minOccurs="0" maxOccurs="1" />
<element name="fee" type="fee:feeType"
minOccurs="0" maxOccurs="unbounded" />
<element name="credit" type="fee:creditType"
minOccurs="0" maxOccurs="unbounded" />
<element name="class" type="token" minOccurs="0" />
<element name="reason" type="fee:reasonType" minOccurs="0" />
</sequence> </sequence>
<attribute name="name" type="fee:commandEnum"/> <attribute name="name" type="fee:commandEnum"/>
<attribute name="customName" type="token"/> <attribute name="customName" type="token"/>
<attribute name="phase" type="token" /> <attribute name="phase" type="token" />
<attribute name="subphase" type="token" /> <attribute name="subphase" type="token" />
<attribute name="standard" type="boolean" default="0" />
</complexType>
<complexType name="commandDataType">
<complexContent>
<extension base="fee:commandType">
<sequence>
<element name="fee" type="fee:feeType"
minOccurs="0" maxOccurs="unbounded" />
<element name="credit" type="fee:creditType"
minOccurs="0" maxOccurs="unbounded" />
<element name="reason" type="fee:reasonType"
minOccurs="0" />
</sequence>
</extension>
</complexContent>
</complexType> </complexType>
<complexType name="reasonType"> <complexType name="reasonType">
<simpleContent> <simpleContent>
<extension base="token"> <extension base="token">
<attribute name="lang" type="language"/> <attribute name="lang" type="language" default="en"/>
</extension> </extension>
</simpleContent> </simpleContent>
</complexType> </complexType>
<simpleType name="commandEnum"> <simpleType name="commandEnum">
<restriction base="token"> <restriction base="token">
<enumeration value="create"/> <enumeration value="create"/>
<enumeration value="delete"/> <enumeration value="delete"/>
<enumeration value="renew"/> <enumeration value="renew"/>
<enumeration value="update"/> <enumeration value="update"/>
skipping to change at page 31, line 5 skipping to change at page 31, line 15
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.23 URI: ietf:params:xml:ns:fee-0.25
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 33, line 7 skipping to change at page 33, line 14
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
o Thomas Corte of Knipp Medien und Kommunikation GmbH o Thomas Corte of Knipp Medien und Kommunikation GmbH
11. Change History 11. Change History
11.1. Change from 07 to 08 11.1. Change from 08 to 09
Updated scheme to version 0.25 to allow tighter checking on
<fee:command> by splitting the client and server definitions, moved
the class element from the command to the object level and added an
optional standard attribute to the command element. Also updated
section 3.1 for clarity on name attribute; updated section 3.9 for
clarity on uses of <fee:reason>; removed second paragraph in section
5.2.1 as it was duplicative of second to last paragraph in 4.0; and
updated section 5.1.1 to add section references.
11.2. Change from 07 to 08
Updated section 3.8 and 5.1.1 to provide clarity on server processing Updated section 3.8 and 5.1.1 to provide clarity on server processing
and response of various scenarios (i.e. "quiet" period processing). and response of various scenarios (i.e. "quiet" period processing).
11.2. Change from 06 to 07 11.3. Change from 06 to 07
Updated section 3.8 and 4.0 to provide clarity on server processing Updated section 3.8 and 4.0 to provide clarity on server processing
and response of various scenarios. and response of various scenarios.
11.3. Change from 05 to 06 11.4. Change from 05 to 06
Updated scheme to version 0.23 to allow the return of no Updated scheme to version 0.23 to allow the return of no
<fee:command> element(s) if an error situation occurs. Edited <fee:command> element(s) if an error situation occurs. Edited
section 3.8 extensively after input from interim meeting and REGEXT section 3.8 extensively after input from interim meeting and REGEXT
F2F meeting at IETF-99. Added normative reference for draft-ietf- F2F meeting at IETF-99. Added normative reference for draft-ietf-
eppext-launchphase. eppext-launchphase.
11.4. Change from 04 to 05 11.5. Change from 04 to 05
Updated scheme to version 0.21 to support the lang attribute for the Updated scheme to version 0.21 to support the lang attribute for the
reason element of the objectCDType and the commandType types as well reason element of the objectCDType and the commandType types as well
as to add the update command to the commandEnum type. Updated as to add the update command to the commandEnum type. Updated
section 3.1 to include language for the custom command. Added section 3.1 to include language for the custom command. Added
section 3.9 to provide a description of the <fee:reason> element. section 3.9 to provide a description of the <fee:reason> element.
Fixed typos and added clarification text on when client fee is less Fixed typos and added clarification text on when client fee is less
than server fee in section 4. Additionally, I added description than server fee in section 4. Additionally, I added description
pointers to appropriate Section 3 definitions for element clarity pointers to appropriate Section 3 definitions for element clarity
throughout the document. throughout the document.
11.5. Change from 03 to 04 11.6. Change from 03 to 04
Updated scheme to version 0.19 to correct typos and to replace the Updated scheme to version 0.19 to correct typos and to replace the
commandTypeValue type with the commandEnum type and customName commandTypeValue type with the commandEnum type and customName
attribute for stricter validation. Updated various text for grammar attribute for stricter validation. Updated various text for grammar
and clarity. Added text to section 4 clarifying the <check> response and clarity. Added text to section 4 clarifying the <check> response
when the client provided no fee extension but the server was when the client provided no fee extension but the server was
expecting the extension. expecting the extension.
11.6. Change from 02 to 03 11.7. Change from 02 to 03
Updated scheme to version 0.17 to simplify the check command syntax. Updated scheme to version 0.17 to simplify the check command syntax.
Moved fee avail to objectCDType to allow fast failing on error Moved fee avail to objectCDType to allow fast failing on error
situations. Removed the objectCheckType as it was no longer being situations. Removed the objectCheckType as it was no longer being
used. Updated examples to reflect these scheme changes. Added used. Updated examples to reflect these scheme changes. Added
language for server failing a <create> if the <fee:fee> passed by the language for server failing a <create> if the <fee:fee> passed by the
client is less than the server fee. client is less than the server fee.
11.7. Change from 01 to 02 11.8. 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.8. Change from 00 to 01 11.9. 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.9. Change from draft-brown-00 to draft-ietf-regext-fees-00 11.10. 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
[I-D.ietf-regext-launchphase] [I-D.ietf-regext-launchphase]
Gould, J., Tan, W., and G. Brown, "Launch Phase Mapping Gould, J., Tan, W., and G. Brown, "Launch Phase Mapping
for the Extensible Provisioning Protocol (EPP)", draft- for the Extensible Provisioning Protocol (EPP)", draft-
ietf-regext-launchphase-05 (work in progress), June 2017. ietf-regext-launchphase-05 (work in progress), June 2017.
 End of changes. 49 change blocks. 
80 lines changed or deleted 141 lines changed or added

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