draft-ietf-regext-org-ext-09.txt   draft-ietf-regext-org-ext-10.txt 
Internet Engineering Task Force L. Zhou Internet Engineering Task Force L. Zhou
Internet-Draft CNNIC Internet-Draft CNNIC
Intended status: Standards Track N. Kong Intended status: Standards Track N. Kong
Expires: February 25, 2019 Consultant Expires: June 3, 2019 Consultant
J. Wei J. Wei
J. Yao J. Yao
CNNIC CNNIC
J. Gould J. Gould
Verisign, Inc. Verisign, Inc.
August 24, 2018 November 30, 2018
Organization Extension for the Extensible Provisioning Protocol (EPP) Organization Extension for the Extensible Provisioning Protocol (EPP)
draft-ietf-regext-org-ext-09 draft-ietf-regext-org-ext-10
Abstract Abstract
This document describes an extension to EPP object mappings, which is This document describes an extension to Extensible Provisioning
designed to support assigning an organization to any existing object Protocol (EPP) object mappings, which is designed to support
(domain, host, contact) as well as any future objects. assigning an organization to any existing object (domain, host,
contact) as well as any future objects.
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.
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 February 25, 2019. This Internet-Draft will expire on June 3, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 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
skipping to change at page 2, line 27 skipping to change at page 2, line 28
4.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 4 4.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 4
4.1.2. EPP <info> Command . . . . . . . . . . . . . . . . . 4 4.1.2. EPP <info> Command . . . . . . . . . . . . . . . . . 4
4.1.3. EPP <transfer> Query Command . . . . . . . . . . . . 7 4.1.3. EPP <transfer> Query Command . . . . . . . . . . . . 7
4.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 8 4.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 8
4.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 8 4.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 8
4.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 10 4.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 10
4.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 10 4.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 10
4.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 11 4.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 11
4.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 11 4.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 11
5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 15 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 15
6. Internationalization Considerations . . . . . . . . . . . . . 17 6. Internationalization Considerations . . . . . . . . . . . . . 18
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18
7.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 18 7.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 18
7.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 18 7.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 18
8. Implementation Status . . . . . . . . . . . . . . . . . . . . 19 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 19
8.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 19 8.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 19
8.2. CNNIC Implementation . . . . . . . . . . . . . . . . . . 20 8.2. CNNIC Implementation . . . . . . . . . . . . . . . . . . 20
9. Security Considerations . . . . . . . . . . . . . . . . . . . 20 9. Security Considerations . . . . . . . . . . . . . . . . . . . 20
10. Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . 20 10. Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . 20
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 20
11.1. Normative References . . . . . . . . . . . . . . . . . . 20 11.1. Normative References . . . . . . . . . . . . . . . . . . 20
11.2. Informative References . . . . . . . . . . . . . . . . . 21 11.2. Informative References . . . . . . . . . . . . . . . . . 22
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 22 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 22
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25
1. Introduction 1. Introduction
In the business model of domain registration, we usually have 3 roles In the business model of domain registration, we usually have three
of entities: a registrant, a registrar and a registry. There may be roles of entities: a registrant, a registrar and a registry. There
other roles of entities involved in the domain registration process may be other roles of entities involved in the domain registration
which are not formally defined, such as resellers, DNS service process which are not formally defined yet, such as resellers, DNS
operators, privacy proxies, etc. service operators, privacy proxies, etc.
A domain reseller is an individual or a company that acts as an agent A domain reseller is an individual or a company that acts as an agent
for accredited registrars. A third-party DNS service operator is for accredited registrars. A third-party DNS service operator is
responsible for a zone where the operator is neither the registrant responsible for a zone where the operator is neither the registrant
nor the registrar of record for the delegation. A privacy proxy is nor the registrar of record for the delegation. A privacy proxy is
an entity used for domain registrations to protect the private an entity used for domain registrations to protect the private
information of the individuals and organizations. These kind of information of the individuals and organizations. These kind of
entities are defined as "organizations" with different role types in entities are defined as "organizations" with different role types in
this document. this document.
In order to facilitate provisioning and management of organization In order to facilitate provisioning and management of organization
information in a shared central repository, this document proposes an information in a shared central repository, this document proposes an
organization extension mapping for any EPP object like domain names organization extension mapping for any Extensible Provisioning
in [RFC5731], hosts in [RFC5732] and contacts in [RFC5733]. The Protocol (EPP) object like domain names in [RFC5731], hosts in
examples provided in this document are used for the domain object for [RFC5732] and contacts in [RFC5733]. The examples provided in this
illustration purpose. The host and contact object could be extended document are used for the domain object for illustration purpose.
in the same way with the domain object. The host and contact object could be extended in the same way with
the domain object.
An organization mapping object defined in [ID.draft-ietf-regext-org] Organization object identifiers defined in [ID.draft-ietf-regext-org]
SHOULD be created first. The organization information specified in MUST be known to the server before the organization object can be
this document MUST reference the existing organization identifier. associated with the EPP object.
This document is specified using the XML 1.0 as described in This document is specified using the XML 1.0 as described in
[W3C.REC-xml-20040204] and XML Schema notation as described in [W3C.REC-xml-20040204] and XML Schema notation as described in
[W3C.REC-xmlschema-1-20041028] and [W3C.REC-xmlschema-2-20041028]. [W3C.REC-xmlschema-1-20041028] and [W3C.REC-xmlschema-2-20041028].
2. Conventions Used in This Document 2. Conventions Used in This Document
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 BCP 14 document are to be interpreted as described in BCP 14
[RFC2119][RFC8174] when, and only when, they appear in all capitals, [RFC2119][RFC8174] when, and only when, they appear in all capitals,
as shown here. as shown here.
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 specification. relationships and are not a required feature of this specification.
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 to develop a conforming implementation. character case.
The XML namespace prefix "orgext" is used, but implementations MUST The XML namespace prefix "orgext" is used for the namespace
NOT depend on it and instead employ a proper namespace-aware XML "urn:ietf:params:xml:ns:epp:orgext-1.0", but implementations MUST NOT
parser and serializer to interpret and output the XML documents. depend on it and instead employ a proper namespace-aware XML parser
and serializer to interpret and output the XML documents.
3. Object Attributes 3. Object Attributes
This extension adds additional elements to EPP object mappings like This extension adds additional elements to EPP object mappings like
the EPP domain name mapping [RFC5731]. Only the new elements are the EPP domain name mapping [RFC5731]. Only the new elements are
described here. described here.
3.1. Organization Identifier 3.1. Organization Identifier
Organization identifier provides the ID of an organization. Its Organization identifier provides the ID of an organization. Its
corresponding element is <orgext:id> which refers to the <org:id> corresponding element is <orgext:id> which refers to the <org:id>
element defined in [ID.draft-ietf-regext-org]. All organization element defined in [ID.draft-ietf-regext-org]. All organization
objects are identified by a server-unique identifier. objects are identified by a server-unique identifier. A "role"
attribute is used to represent the relationship that the organization
has to the EPP object. Any given object MUST have at most one
associated organization ID for any given role value.
4. EPP Command Mapping 4. EPP Command Mapping
A detailed description of the EPP syntax and semantics can be found A detailed description of the EPP syntax and semantics can be found
in the EPP core protocol specification [RFC5730]. The command in the EPP core protocol specification [RFC5730]. The command
mappings described here are specifically for assigning organizations mappings described here are specifically for assigning organizations
to EPP objects. to EPP objects.
4.1. EPP Query Commands 4.1. EPP Query Commands
skipping to change at page 4, line 48 skipping to change at page 4, line 51
4.1.2. EPP <info> Command 4.1.2. EPP <info> Command
This extension does not add any elements to the EPP <info> command This extension does not add any elements to the EPP <info> command
described in the EPP object mapping. However, additional elements described in the EPP object mapping. However, additional elements
are defined for the <info> response in the EPP object mapping. are defined for the <info> response in the EPP object mapping.
When an <info> command has been processed successfully, the EPP When an <info> command has been processed successfully, the EPP
<resData> element MUST contain child elements as described in the EPP <resData> element MUST contain child elements as described in the EPP
object extensions. In addition, the EPP <extension> element SHOULD object extensions. In addition, the EPP <extension> element SHOULD
contain a child <orgext:infData> element. This element or its contain a child <orgext:infData> element. This element or its
ancestor element MUST identify the extension namespace if the object ancestor element MUST identify the extension namespace
has data associated with this extension and based on server policy. "urn:ietf:params:xml:ns:epp:orgext-1.0" if the object has data
The <orgext:infData> element contains the following child elements: associated with this extension and based on server policy. The
<orgext:infData> element contains the following child elements:
o Zero or more <orgext:id> elements are allowed that contain the o Zero or more <orgext:id> elements are allowed that contain the
identifier of the organization. The "role" attribute is used to identifier of the organization, as defined in Section 3.1. The
represent the relationship that the organization has to the "role" attribute is used to represent the relationship that the
object. See Section 7.3 in [ID.draft-ietf-regext-org] for a list organization has to the object. See Section 7.3 in
of values. [ID.draft-ietf-regext-org] for a list of values.
Example <info> response for an authorized client with multiple Example <info> response for an authorized client with multiple
organizations: organizations:
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 lang="en-US">Command completed successfully</msg> S: <msg lang="en-US">Command completed successfully</msg>
S: </result> S: </result>
skipping to change at page 6, line 36 skipping to change at page 6, line 36
S: <domain:crDate>2015-02-06T04:01:21.0Z</domain:crDate> S: <domain:crDate>2015-02-06T04:01:21.0Z</domain:crDate>
S: <domain:exDate>2018-02-06T04:01:21.0Z</domain:exDate> S: <domain:exDate>2018-02-06T04:01:21.0Z</domain:exDate>
S: <domain:authInfo> S: <domain:authInfo>
S: <domain:pw>2fooBAR</domain:pw> S: <domain:pw>2fooBAR</domain:pw>
S: </domain:authInfo> S: </domain:authInfo>
S: </domain:infData> S: </domain:infData>
S: </resData> S: </resData>
S: <extension> S: <extension>
S: <orgext:infData S: <orgext:infData
S: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0"> S: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
S: <orgext:id role="reseller">myreseller</orgext:id> S: <orgext:id role="reseller">reseller1523</orgext:id>
S: <orgext:id role="privacyproxy">myproxy</orgext:id> S: <orgext:id role="privacyproxy">proxy2935</orgext:id>
S: </orgext:infData> S: </orgext:infData>
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ngcl-IvJjzMZc</clTRID> S: <clTRID>ngcl-IvJjzMZc</clTRID>
S: <svTRID>test142AWQONJZ</svTRID> S: <svTRID>test142AWQONJZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
S:</epp> S:</epp>
Example <info> response for an authorized client with no Example <info> response for an authorized client with no
skipping to change at page 8, line 24 skipping to change at page 8, line 24
This extension defines additional elements for the EPP <create> This extension defines additional elements for the EPP <create>
command described in the EPP object extensions. No additional command described in the EPP object extensions. No additional
elements are defined for the EPP <create> response. elements are defined for the EPP <create> response.
The EPP <create> command provides a transform operation that allows a The EPP <create> command provides a transform operation that allows a
client to create an object. In addition to the EPP command elements client to create an object. In addition to the EPP command elements
described in the EPP object extensions, the command MUST contain an described in the EPP object extensions, the command MUST contain an
<extension> element, and the <extension> element MUST contain a child <extension> element, and the <extension> element MUST contain a child
<orgext:create> element. This element or its ancestor element MUST <orgext:create> element. This element or its ancestor element MUST
identify the extension namespace if the client wants to associate identify the extension namespace "urn:ietf:params:xml:ns:epp:orgext-
data defined in this extension to the object. The <orgext:create> 1.0" if the client wants to associate data defined in this extension
element contains the following child elements: to the object. The <orgext:create> element contains the following
child elements:
o One or more <orgext:id> elements that contain the identifier of o One or more <orgext:id> elements that contain the identifier of
the organization. The "role" attribute is used to represent the the organization, as defined in Section 3.1. The "role" attribute
relationship that the organization has to the object. See is used to represent the relationship that the organization has to
Section 7.3 in [ID.draft-ietf-regext-org] for a list of values. the object. See Section 7.3 in [ID.draft-ietf-regext-org] for a
list of values.
Example <create> Command with only one organization: Example <create> Command with only one organization:
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: <create> C: <create>
C: <domain:create C: <domain:create
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>
skipping to change at page 9, line 28 skipping to change at page 9, line 28
C: <domain:contact type="billing">sh8013</domain:contact> C: <domain:contact type="billing">sh8013</domain:contact>
C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="admin">sh8013</domain:contact>
C: <domain:authInfo> C: <domain:authInfo>
C: <domain:pw>fooBAR</domain:pw> C: <domain:pw>fooBAR</domain:pw>
C: </domain:authInfo> C: </domain:authInfo>
C: </domain:create> C: </domain:create>
C: </create> C: </create>
C: <extension> C: <extension>
C: <orgext:create C: <orgext:create
C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0"> C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
C: <orgext:id role="reseller">myreseller</orgext:id> C: <orgext:id role="reseller">reseller1523</orgext:id>
C: </orgext:create> C: </orgext: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> Command with multiple organizations: Example <create> Command with multiple organizations:
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">
skipping to change at page 10, line 28 skipping to change at page 10, line 28
C: <domain:contact type="billing">sh8013</domain:contact> C: <domain:contact type="billing">sh8013</domain:contact>
C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="admin">sh8013</domain:contact>
C: <domain:authInfo> C: <domain:authInfo>
C: <domain:pw>fooBAR</domain:pw> C: <domain:pw>fooBAR</domain:pw>
C: </domain:authInfo> C: </domain:authInfo>
C: </domain:create> C: </domain:create>
C: </create> C: </create>
C: <extension> C: <extension>
C: <orgext:create C: <orgext:create
C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0"> C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
C: <orgext:id role="reseller">myreseller</orgext:id> C: <orgext:id role="reseller">reseller1523</orgext:id>
C: <orgext:id role="privacyproxy">myproxy</orgext:id> C: <orgext:id role="privacyproxy">proxy2935</orgext:id>
C: </orgext:create> C: </orgext:create>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C:</epp> C:</epp>
When a <create> command has been processed successfully, the EPP When a <create> command has been processed successfully, the EPP
response is as described in the EPP object extension. response is as described in the EPP object extension.
An EPP error response MUST be returned if a <create> command cannot An EPP error response MUST be returned if a <create> command cannot
skipping to change at page 11, line 25 skipping to change at page 11, line 25
This extension defines additional elements for the EPP <update> This extension defines additional elements for the EPP <update>
command described in the EPP domain mapping [RFC5731], host mapping command described in the EPP domain mapping [RFC5731], host mapping
[RFC5732] and contact mapping [RFC5733]. No additional elements are [RFC5732] and contact mapping [RFC5733]. No additional elements are
defined for the EPP <update> response. defined for the EPP <update> response.
The EPP <update> command provides a transform operation that allows a The EPP <update> command provides a transform operation that allows a
client to modify the attributes of an object. In addition to the EPP client to modify the attributes of an object. In addition to the EPP
<update> command elements, the command MUST contain an <extension> <update> command elements, the command MUST contain an <extension>
element, and the <extension> element MUST contain a child element, and the <extension> element MUST contain a child
<orgext:update> element. This element or its ancestor element MUST <orgext:update> element. This element or its ancestor element MUST
identify the extension namespace if the client wants to update the identify the extension namespace "urn:ietf:params:xml:ns:epp:orgext-
object with data defined in this extension. The <orgext:update> 1.0" if the client wants to update the object with data defined in
element contains the following child elements: this extension. The <orgext:update> element contains the following
child elements:
o An OPTIONAL <orgext:add> element that contains attribute values to o An OPTIONAL <orgext:add> element that contains one or more
be added to the object. <orgext:id> elements, as defined in Section 3.1, that add non-
existent organization roles to the object. The <orgext:id>
element MUST have a non-empty organization identifier value. The
server SHOULD validate that the <orgext:id> element role does not
exist.
o An OPTIONAL <orgext:rem> element that contains attribute values to o An OPTIONAL <orgext:rem> element that contains one or more
be removed from the object. <orgext:id> elements, as defined in Section 3.1, that remove
organization roles from the object. The <orgext:id> element MAY
have an empty organization identifier value. The server SHOULD
validate the existence of the <orgext:id> element role and the
organization identifier if provided.
o An OPTIONAL <orgext:chg> element that contains attribute values to o An OPTIONAL <orgext:chg> element that contains one or more
be changed. <orgext:id> elements, as defined in Section 3.1, that change
organization role identifiers for the object. The existing
organization identifier value will be replaced for the defined
role. The server SHOULD validate the existence of the <orgext:id>
element role.
At least one <orgext:add>, <orgext:rem> or <orgext:chg> element MUST At least one <orgext:add>, <orgext:rem> or <orgext:chg> element MUST
be provided. The <orgext:add>, <orgext:rem> and <orgext:chg> be provided.
elements contain the following child element:
o One or more <orgext:id> elements that contain the identifier of
the organization. The "role" attribute is used to represent the
relationship that the organization has to the object. See
Section 7.3 in [ID.draft-ietf-regext-org] for a list of values.
Example <update> command, adding a reseller: Example <update> command, adding a reseller:
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: <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:update> C: </domain:update>
C: </update> C: </update>
C: <extension> C: <extension>
C: <orgext:update C: <orgext:update
C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0"> C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
C: <orgext:add> C: <orgext:add>
C: <orgext:id role="reseller">myreseller</orgext:id> C: <orgext:id role="reseller">reseller1523</orgext:id>
C: </orgext:add> C: </orgext:add>
C: </orgext:update> C: </orgext: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> command, adding multiple organizations: Example <update> command, adding multiple organizations:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
skipping to change at page 12, line 41 skipping to change at page 12, line 43
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:update> C: </domain:update>
C: </update> C: </update>
C: <extension> C: <extension>
C: <orgext:update C: <orgext:update
C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0"> C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
C: <orgext:add> C: <orgext:add>
C: <orgext:id role="reseller">myreseller</orgext:id> C: <orgext:id role="reseller">reseller1523</orgext:id>
C: <orgext:id role="privacyproxy">myproxy</orgext:id> C: <orgext:id role="privacyproxy">proxy2935</orgext:id>
C: </orgext:add> C: </orgext:add>
C: </orgext:update> C: </orgext: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> command, removing a reseller: Example <update> command, removing a reseller:
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: <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:update> C: </domain:update>
skipping to change at page 14, line 18 skipping to change at page 14, line 19
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:update> C: </domain:update>
C: </update> C: </update>
C: <extension> C: <extension>
C: <orgext:update C: <orgext:update
C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0"> C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
C: <orgext:chg> C: <orgext:chg>
C: <orgext:id role="reseller">myreseller</orgext:id> C: <orgext:id role="reseller">reseller1523</orgext:id>
C: </orgext:chg> C: </orgext:chg>
C: </orgext:update> C: </orgext: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> command, updating multiple organization identifiers: Example <update> command, updating multiple organization identifiers:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
skipping to change at page 14, line 41 skipping to change at page 14, line 42
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:update> C: </domain:update>
C: </update> C: </update>
C: <extension> C: <extension>
C: <orgext:update C: <orgext:update
C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0"> C: xmlns:orgext="urn:ietf:params:xml:ns:epp:orgext-1.0">
C: <orgext:chg> C: <orgext:chg>
C: <orgext:id role="reseller">myreseller</orgext:id> C: <orgext:id role="reseller">reseller1523</orgext:id>
C: <orgext:id role="privacyproxy">myproxy</orgext:id> C: <orgext:id role="privacyproxy">proxy2935</orgext:id>
C: </orgext:chg> C: </orgext:chg>
C: </orgext:update> C: </orgext:update>
C: </extension> C: </extension>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C:</epp> C:</epp>
When an extended <update> command has been processed successfully, When an extended <update> command has been processed successfully,
the EPP response is as described in the EPP object extension. the EPP response is as described in the EPP object extension.
An EPP error response MUST be returned if an <update> command cannot An EPP error response MUST be returned if an <update> command cannot
be processed for any reason. An attempt to add one organization ID be processed for any reason. An attempt to add one organization ID
or multiple organization IDs with a particular role value when at or multiple organization IDs with a particular role value when at
least one of them already exists does not change the object at all. least one of them already exists does not change the object at all.
A server SHOULD notify clients that object relationships exist by A server SHOULD notify clients that object relationships exist by
sending a 2305 error response code. An attempt to remove an sending a 2305 error response code. An attempt to remove an
organization ID or multiple organization IDs with a particular role organization ID or multiple organization IDs with a particular role
skipping to change at page 18, line 45 skipping to change at page 19, line 4
XML: See the "Formal Syntax" section of this document. XML: See the "Formal Syntax" section of this document.
7.2. EPP Extension Registry 7.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
details of the registration are as follows: details of the registration are as follows:
Name of Extension: Organization Extension for the Extensible Name of Extension: Organization Extension for the Extensible
Provisioning Protocol (EPP) Provisioning Protocol (EPP)
Document status: Standards Track
Reference: RFCXXXX (please replace "XXXX" with the RFC number for
this document after a number is assigned by the RFC Editor)
Registrant Name and Email Address: IESG, iesg@ietf.org Registrant Name and Email Address: IESG, iesg@ietf.org
TLDs: Any TLDs: Any
IPR Disclosure: None IPR Disclosure: None
Status: Active Status: Active
Notes: None Notes: None
8. Implementation Status 8. Implementation Status
Note to RFC Editor: Please remove this section and the reference to Note to RFC Editor: Please remove this section and the reference to
[RFC7942] before publication. This section records the status of [RFC7942] before publication. This section records the status of
known implementations of the protocol defined by this specification known implementations of the protocol defined by this specification
at the time of posting of this Internet-Draft, and is based on a at the time of posting of this Internet-Draft, and is based on a
skipping to change at page 24, line 31 skipping to change at page 24, line 39
* Updated error codes of <update> response. * Updated error codes of <update> response.
* Modified XML namespace and schema. * Modified XML namespace and schema.
Organization WG document-09: Organization WG document-09:
* Modified XML namespace and schema. * Modified XML namespace and schema.
* Changed "Exactly one" to "At least one" in section 4.2.5. * Changed "Exactly one" to "At least one" in section 4.2.5.
Organization WG document-10:
* Updated the reseller id and dns proxy id in the document.
* Updated the full xml namespace.
* Updated the text of EPP <orgext:add>, <orgext:rem> and
<orgext:chg>.
* Added "Document satus" and "Reference" in section "EPP
Extension Registry".
Authors' Addresses Authors' Addresses
Linlin Zhou Linlin Zhou
CNNIC CNNIC
4 South 4th Street, Zhongguancun, Haidian District 4 South 4th Street, Zhongguancun, Haidian District
Beijing, Beijing 100190 Beijing, Beijing 100190
China China
Email: zhoulinlin@cnnic.cn Email: zhoulinlin@cnnic.cn
 End of changes. 35 change blocks. 
70 lines changed or deleted 101 lines changed or added

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