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/ |