epp-client-base 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2467 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+ Network Working Group S. Hollenbeck
8
+ Request for Comments: 5731 VeriSign, Inc.
9
+ STD: 69 August 2009
10
+ Obsoletes: 4931
11
+ Category: Standards Track
12
+
13
+
14
+ Extensible Provisioning Protocol (EPP) Domain Name Mapping
15
+
16
+ Abstract
17
+
18
+ This document describes an Extensible Provisioning Protocol (EPP)
19
+ mapping for the provisioning and management of Internet domain names
20
+ stored in a shared central repository. Specified in XML, the mapping
21
+ defines EPP command syntax and semantics as applied to domain names.
22
+ This document obsoletes RFC 4931.
23
+
24
+ Status of This Memo
25
+
26
+ This document specifies an Internet standards track protocol for the
27
+ Internet community, and requests discussion and suggestions for
28
+ improvements. Please refer to the current edition of the "Internet
29
+ Official Protocol Standards" (STD 1) for the standardization state
30
+ and status of this protocol. Distribution of this memo is unlimited.
31
+
32
+ Copyright Notice
33
+
34
+ Copyright (c) 2009 IETF Trust and the persons identified as the
35
+ document authors. All rights reserved.
36
+
37
+ This document is subject to BCP 78 and the IETF Trust's Legal
38
+ Provisions Relating to IETF Documents in effect on the date of
39
+ publication of this document (http://trustee.ietf.org/license-info).
40
+ Please review these documents carefully, as they describe your rights
41
+ and restrictions with respect to this document.
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+ Hollenbeck Standards Track [Page 1]
59
+
60
+ RFC 5731 EPP Domain Name Mapping August 2009
61
+
62
+
63
+ Table of Contents
64
+
65
+ 1. Introduction ....................................................3
66
+ 1.1. Relationship of Domain Objects and Host Objects ............3
67
+ 1.2. Conventions Used in This Document ..........................5
68
+ 2. Object Attributes ...............................................5
69
+ 2.1. Domain and Host Names ......................................5
70
+ 2.2. Contact and Client Identifiers .............................5
71
+ 2.3. Status Values ..............................................5
72
+ 2.4. Dates and Times ............................................7
73
+ 2.5. Validity Periods ...........................................8
74
+ 2.6. Authorization Information ..................................8
75
+ 2.7. Other DNS Resource Record Attributes .......................8
76
+ 3. EPP Command Mapping .............................................9
77
+ 3.1. EPP Query Commands .........................................9
78
+ 3.1.1. EPP <check> Command .................................9
79
+ 3.1.2. EPP <info> Command .................................11
80
+ 3.1.3. EPP <transfer> Query Command .......................15
81
+ 3.2. EPP Transform Commands ....................................17
82
+ 3.2.1. EPP <create> Command ...............................18
83
+ 3.2.2. EPP <delete> Command ...............................20
84
+ 3.2.3. EPP <renew> Command ................................22
85
+ 3.2.4. EPP <transfer> Command .............................23
86
+ 3.2.5. EPP <update> Command ...............................25
87
+ 3.3. Offline Review of Requested Actions .......................28
88
+ 4. Formal Syntax ..................................................30
89
+ 5. Internationalization Considerations ............................40
90
+ 6. IANA Considerations ............................................40
91
+ 7. Security Considerations ........................................41
92
+ 8. Acknowledgements ...............................................41
93
+ 9. References .....................................................42
94
+ 9.1. Normative References ......................................42
95
+ 9.2. Informative References ....................................43
96
+ Appendix A. Changes from RFC 4931 ................................44
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+ Hollenbeck Standards Track [Page 2]
115
+
116
+ RFC 5731 EPP Domain Name Mapping August 2009
117
+
118
+
119
+ 1. Introduction
120
+
121
+ This document describes an Internet domain name mapping for version
122
+ 1.0 of the Extensible Provisioning Protocol (EPP). This mapping is
123
+ specified using the Extensible Markup Language (XML) 1.0 as described
124
+ in [W3C.REC-xml-20040204] and XML Schema notation as described in
125
+ [W3C.REC-xmlschema-1-20041028] and [W3C.REC-xmlschema-2-20041028].
126
+ This document obsoletes RFC 4931 [RFC4931].
127
+
128
+ [RFC5730] provides a complete description of EPP command and response
129
+ structures. A thorough understanding of the base protocol
130
+ specification is necessary to understand the mapping described in
131
+ this document.
132
+
133
+ XML is case sensitive. Unless stated otherwise, XML specifications
134
+ and examples provided in this document MUST be interpreted in the
135
+ character case presented to develop a conforming implementation.
136
+
137
+ 1.1. Relationship of Domain Objects and Host Objects
138
+
139
+ The EPP mapping for host objects is described in [RFC5732]. This
140
+ document assumes that domain name objects have a superordinate
141
+ relationship to subordinate host name objects. For example, domain
142
+ name "example.com" has a superordinate relationship to host name
143
+ "ns1.example.com". EPP actions (such as object transfers) that do
144
+ not preserve this relationship MUST be explicitly disallowed.
145
+
146
+ A host name object can be created in a repository for which no
147
+ superordinate domain name object exists. For example, host name
148
+ "ns1.example.com" can be created in the ".example" repository so that
149
+ DNS domains in ".example" can be delegated to the host. Such hosts
150
+ are described as "external" hosts in this specification since the
151
+ name of the host does not belong to the namespace of the repository
152
+ in which the host is being used for delegation purposes.
153
+
154
+ Whether a host is external or internal relates to the repository in
155
+ which the host is being used for delegation purposes. Whether or not
156
+ an internal host is subordinate relates to a domain within the
157
+ repository. For example, host ns1.example1.com is a subordinate host
158
+ of domain example1.com, but it is not a subordinate host of domain
159
+ example2.com. ns1.example1.com can be used as a name server for
160
+ example2.com. In this case, ns1.example1.com MUST be treated as an
161
+ internal host, subject to the rules governing operations on
162
+ subordinate hosts within the same repository.
163
+
164
+ Name server hosts for domain delegation can be specified either as
165
+ references to existing host objects or as domain attributes that
166
+ describe a host machine. A server operator MUST use one name server
167
+
168
+
169
+
170
+ Hollenbeck Standards Track [Page 3]
171
+
172
+ RFC 5731 EPP Domain Name Mapping August 2009
173
+
174
+
175
+ specification form consistently. A server operator that announces
176
+ support for host objects in an EPP greeting MUST NOT allow domain
177
+ attributes to describe a name server host machine. A server operator
178
+ that does not announce support for host objects MUST allow domain
179
+ attributes to describe a name server host machine. When domain
180
+ attributes are used to describe a name server host machine, IP
181
+ addresses SHOULD be required only as needed to generate DNS glue
182
+ records.
183
+
184
+ Name servers are specified within a <domain:ns> element. This
185
+ element MUST contain one or more <domain:hostObj> elements or one or
186
+ more <domain:hostAttr> elements. A <domain:hostObj> element contains
187
+ the fully qualified name of a known name server host object. A
188
+ <domain:hostAttr> element contains the following child elements:
189
+
190
+ - A <domain:hostName> element that contains the fully qualified name
191
+ of a host.
192
+
193
+ - Zero or more OPTIONAL <domain:hostAddr> elements that contain the
194
+ IP addresses to be associated with the host. Each element MAY
195
+ contain an "ip" attribute to identify the IP address format.
196
+ Attribute value "v4" is used to note IPv4 address format.
197
+ Attribute value "v6" is used to note IPv6 address format. If the
198
+ "ip" attribute is not specified, "v4" is the default attribute
199
+ value. IP address syntax requirements are described in Section
200
+ 2.5 of the EPP host mapping [RFC5732].
201
+
202
+ Example host-object name server elements for domain example.com:
203
+
204
+ <domain:ns>
205
+ <domain:hostObj>ns1.example.net</domain:hostObj>
206
+ <domain:hostObj>ns2.example.net</domain:hostObj>
207
+ </domain:ns>
208
+
209
+ Example host-attribute name server elements for domain example.com:
210
+
211
+ <domain:ns>
212
+ <domain:hostAttr>
213
+ <domain:hostName>ns1.example.net</domain:hostName>
214
+ <domain:hostAddr
215
+ ip="v4">192.0.2.2</domain:hostAddr>
216
+ <domain:hostAddr
217
+ ip="v6">1080:0:0:0:8:800:200C:417A</domain:hostAddr>
218
+ </domain:hostAttr>
219
+ <domain:hostAttr>
220
+ <domain:hostName>ns2.example.net</domain:hostName>
221
+ </domain:hostAttr>
222
+ </domain:ns>
223
+
224
+
225
+
226
+ Hollenbeck Standards Track [Page 4]
227
+
228
+ RFC 5731 EPP Domain Name Mapping August 2009
229
+
230
+
231
+ 1.2. Conventions Used in This Document
232
+
233
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
234
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
235
+ document are to be interpreted as described in [RFC2119].
236
+
237
+ In examples, "C:" represents lines sent by a protocol client and "S:"
238
+ represents lines returned by a protocol server. Indentation and
239
+ white space in examples are provided only to illustrate element
240
+ relationships and are not a REQUIRED feature of this protocol.
241
+
242
+ 2. Object Attributes
243
+
244
+ An EPP domain object has attributes and associated values that can be
245
+ viewed and modified by the sponsoring client or the server. This
246
+ section describes each attribute type in detail. The formal syntax
247
+ for the attribute values described here can be found in the "Formal
248
+ Syntax" section of this document and in the appropriate normative
249
+ references.
250
+
251
+ 2.1. Domain and Host Names
252
+
253
+ The syntax for domain and host names described in this document MUST
254
+ conform to [RFC0952] and [RFC1123]. At the time of this writing, RFC
255
+ 3490 [RFC3490] describes a standard to use certain ASCII name labels
256
+ to represent non-ASCII name labels. These conformance requirements
257
+ might change as a result of progressing work in developing standards
258
+ for internationalized domain names. A server MAY restrict allowable
259
+ domain names to a particular top-level domain, second-level domain,
260
+ or other domain for which the server is authoritative. The trailing
261
+ dot required when these names are stored in a DNS zone is implicit
262
+ and MUST NOT be provided when exchanging host and domain names.
263
+
264
+ 2.2. Contact and Client Identifiers
265
+
266
+ All EPP contacts are identified by a server-unique identifier.
267
+ Contact identifiers are character strings with a specified minimum
268
+ length, a specified maximum length, and a specified format. Contact
269
+ identifiers use the "clIDType" client identifier syntax described in
270
+ [RFC5730].
271
+
272
+ 2.3. Status Values
273
+
274
+ A domain object MUST always have at least one associated status
275
+ value. Status values can be set only by the client that sponsors a
276
+ domain object and by the server on which the object resides. A
277
+ client can change the status of a domain object using the EPP
278
+
279
+
280
+
281
+
282
+ Hollenbeck Standards Track [Page 5]
283
+
284
+ RFC 5731 EPP Domain Name Mapping August 2009
285
+
286
+
287
+ <update> command. Each status value MAY be accompanied by a string
288
+ of human-readable text that describes the rationale for the status
289
+ applied to the object.
290
+
291
+ A client MUST NOT alter status values set by the server. A server
292
+ MAY alter or override status values set by a client, subject to local
293
+ server policies. The status of an object MAY change as a result of
294
+ either a client-initiated transform command or an action performed by
295
+ a server operator.
296
+
297
+ Status values that can be added or removed by a client are prefixed
298
+ with "client". Corresponding status values that can be added or
299
+ removed by a server are prefixed with "server". Status values that
300
+ do not begin with either "client" or "server" are server-managed.
301
+
302
+ Status Value Descriptions:
303
+
304
+ - clientDeleteProhibited, serverDeleteProhibited
305
+
306
+ Requests to delete the object MUST be rejected.
307
+
308
+ - clientHold, serverHold
309
+
310
+ DNS delegation information MUST NOT be published for the object.
311
+
312
+ - clientRenewProhibited, serverRenewProhibited
313
+
314
+ Requests to renew the object MUST be rejected.
315
+
316
+ - clientTransferProhibited, serverTransferProhibited
317
+
318
+ Requests to transfer the object MUST be rejected.
319
+
320
+ - clientUpdateProhibited, serverUpdateProhibited
321
+
322
+ Requests to update the object (other than to remove this status)
323
+ MUST be rejected.
324
+
325
+ - inactive
326
+
327
+ Delegation information has not been associated with the object.
328
+ This is the default status when a domain object is first created
329
+ and there are no associated host objects for the DNS delegation.
330
+ This status can also be set by the server when all host-object
331
+ associations are removed.
332
+
333
+
334
+
335
+
336
+
337
+
338
+ Hollenbeck Standards Track [Page 6]
339
+
340
+ RFC 5731 EPP Domain Name Mapping August 2009
341
+
342
+
343
+ - ok
344
+
345
+ This is the normal status value for an object that has no pending
346
+ operations or prohibitions. This value is set and removed by the
347
+ server as other status values are added or removed.
348
+
349
+ - pendingCreate, pendingDelete, pendingRenew, pendingTransfer,
350
+ pendingUpdate
351
+
352
+ A transform command has been processed for the object, but the
353
+ action has not been completed by the server. Server operators can
354
+ delay action completion for a variety of reasons, such as to allow
355
+ for human review or third-party action. A transform command that
356
+ is processed, but whose requested action is pending, is noted with
357
+ response code 1001.
358
+
359
+ When the requested action has been completed, the pendingCreate,
360
+ pendingDelete, pendingRenew, pendingTransfer, or pendingUpdate status
361
+ value MUST be removed. All clients involved in the transaction MUST
362
+ be notified using a service message that the action has been
363
+ completed and that the status of the object has changed.
364
+
365
+ "ok" status MUST NOT be combined with any other status.
366
+
367
+ "pendingDelete" status MUST NOT be combined with either
368
+ "clientDeleteProhibited" or "serverDeleteProhibited" status.
369
+
370
+ "pendingRenew" status MUST NOT be combined with either
371
+ "clientRenewProhibited" or "serverRenewProhibited" status.
372
+
373
+ "pendingTransfer" status MUST NOT be combined with either
374
+ "clientTransferProhibited" or "serverTransferProhibited" status.
375
+
376
+ "pendingUpdate" status MUST NOT be combined with either
377
+ "clientUpdateProhibited" or "serverUpdateProhibited" status.
378
+
379
+ The pendingCreate, pendingDelete, pendingRenew, pendingTransfer, and
380
+ pendingUpdate status values MUST NOT be combined with each other.
381
+
382
+ Other status combinations not expressly prohibited MAY be used.
383
+
384
+ 2.4. Dates and Times
385
+
386
+ Date and time attribute values MUST be represented in Universal
387
+ Coordinated Time (UTC) using the Gregorian calendar. The extended
388
+ date-time form using upper case "T" and "Z" characters defined in
389
+
390
+
391
+
392
+
393
+
394
+ Hollenbeck Standards Track [Page 7]
395
+
396
+ RFC 5731 EPP Domain Name Mapping August 2009
397
+
398
+
399
+ [W3C.REC-xmlschema-2-20041028] MUST be used to represent date-time
400
+ values, as XML Schema does not support truncated date-time forms or
401
+ lower case "T" and "Z" characters.
402
+
403
+ 2.5. Validity Periods
404
+
405
+ A domain name object MAY have a specified validity period. If server
406
+ policy supports domain-object validity periods, the validity period
407
+ is defined when a domain object is created, and it MAY be extended by
408
+ the EPP <renew> or <transfer> commands. As a matter of server
409
+ policy, this specification does not define actions to be taken upon
410
+ expiration of a domain object's validity period.
411
+
412
+ Validity periods are measured in years or months with the appropriate
413
+ units specified using the "unit" attribute. Valid values for the
414
+ "unit" attribute are "y" for years and "m" for months. The minimum
415
+ allowable period value is one (1). The maximum allowable value is
416
+ ninety-nine decimal (99). A server MAY support a lower maximum
417
+ value.
418
+
419
+ 2.6. Authorization Information
420
+
421
+ Authorization information is associated with domain objects to
422
+ facilitate transfer operations. Authorization information is
423
+ assigned when a domain object is created, and it might be updated in
424
+ the future. This specification describes password-based
425
+ authorization information, though other mechanisms are possible.
426
+
427
+ 2.7. Other DNS Resource Record Attributes
428
+
429
+ While the DNS allows many resource record types to be associated with
430
+ a domain, this mapping only explicitly specifies elements that
431
+ describe resource records used for domain delegation and resolution.
432
+ Facilities to provision other domain-related resource record types
433
+ can be developed by extending this mapping.
434
+
435
+ The provisioning method described in this mapping separates discrete
436
+ data elements by data type. This method of data definition allows
437
+ XML Schema processors to perform basic syntax-validation tasks,
438
+ reducing ambiguity and the amount of parsing and syntax-checking work
439
+ required of protocol processors. Provisioning and extension methods
440
+ that aggregate data into opaque strings are possible, but such
441
+ methods should not be used because they impose additional parsing,
442
+ interpretation, and validation requirements on protocol processors.
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+ Hollenbeck Standards Track [Page 8]
451
+
452
+ RFC 5731 EPP Domain Name Mapping August 2009
453
+
454
+
455
+ 3. EPP Command Mapping
456
+
457
+ A detailed description of the EPP syntax and semantics can be found
458
+ in [RFC5730]. The command mappings described here are specifically
459
+ for use in provisioning and managing Internet domain names via EPP.
460
+
461
+ 3.1. EPP Query Commands
462
+
463
+ EPP provides three commands to retrieve domain information: <check>
464
+ to determine if a domain object can be provisioned within a
465
+ repository, <info> to retrieve detailed information associated with a
466
+ domain object, and <transfer> to retrieve domain-object transfer
467
+ status information.
468
+
469
+ 3.1.1. EPP <check> Command
470
+
471
+ The EPP <check> command is used to determine if an object can be
472
+ provisioned within a repository. It provides a hint that allows a
473
+ client to anticipate the success or failure of provisioning an object
474
+ using the <create> command, as object-provisioning requirements are
475
+ ultimately a matter of server policy.
476
+
477
+ In addition to the standard EPP command elements, the <check> command
478
+ MUST contain a <domain:check> element that identifies the domain
479
+ namespace. The <domain:check> element contains the following child
480
+ elements:
481
+
482
+ - One or more <domain:name> elements that contain the fully
483
+ qualified names of the domain objects to be queried.
484
+
485
+ Example <check> command:
486
+
487
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
488
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
489
+ C: <command>
490
+ C: <check>
491
+ C: <domain:check
492
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
493
+ C: <domain:name>example.com</domain:name>
494
+ C: <domain:name>example.net</domain:name>
495
+ C: <domain:name>example.org</domain:name>
496
+ C: </domain:check>
497
+ C: </check>
498
+ C: <clTRID>ABC-12345</clTRID>
499
+ C: </command>
500
+ C:</epp>
501
+
502
+
503
+
504
+
505
+
506
+ Hollenbeck Standards Track [Page 9]
507
+
508
+ RFC 5731 EPP Domain Name Mapping August 2009
509
+
510
+
511
+ When a <check> command has been processed successfully, the EPP
512
+ <resData> element MUST contain a child <domain:chkData> element that
513
+ identifies the domain namespace. The <domain:chkData> element
514
+ contains one or more <domain:cd> elements that contain the following
515
+ child elements:
516
+
517
+ - A <domain:name> element that contains the fully qualified name of
518
+ the queried domain object. This element MUST contain an "avail"
519
+ attribute whose value indicates object availability (can it be
520
+ provisioned or not) at the moment the <check> command was
521
+ completed. A value of "1" or "true" means that the object can be
522
+ provisioned. A value of "0" or "false" means that the object can
523
+ not be provisioned.
524
+
525
+ - An OPTIONAL <domain:reason> element that MAY be provided when an
526
+ object cannot be provisioned. If present, this element contains
527
+ server-specific text to help explain why the object cannot be
528
+ provisioned. This text MUST be represented in the response
529
+ language previously negotiated with the client; an OPTIONAL "lang"
530
+ attribute MAY be present to identify the language if the
531
+ negotiated value is something other than the default value of "en"
532
+ (English).
533
+
534
+ Example <check> response:
535
+
536
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
537
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
538
+ S: <response>
539
+ S: <result code="1000">
540
+ S: <msg>Command completed successfully</msg>
541
+ S: </result>
542
+ S: <resData>
543
+ S: <domain:chkData
544
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
545
+ S: <domain:cd>
546
+ S: <domain:name avail="1">example.com</domain:name>
547
+ S: </domain:cd>
548
+ S: <domain:cd>
549
+ S: <domain:name avail="0">example.net</domain:name>
550
+ S: <domain:reason>In use</domain:reason>
551
+ S: </domain:cd>
552
+ S: <domain:cd>
553
+ S: <domain:name avail="1">example.org</domain:name>
554
+ S: </domain:cd>
555
+ S: </domain:chkData>
556
+ S: </resData>
557
+ S: <trID>
558
+ S: <clTRID>ABC-12345</clTRID>
559
+
560
+
561
+
562
+ Hollenbeck Standards Track [Page 10]
563
+
564
+ RFC 5731 EPP Domain Name Mapping August 2009
565
+
566
+
567
+ S: <svTRID>54322-XYZ</svTRID>
568
+ S: </trID>
569
+ S: </response>
570
+ S:</epp>
571
+
572
+ An EPP error response MUST be returned if a <check> command cannot be
573
+ processed for any reason.
574
+
575
+ 3.1.2. EPP <info> Command
576
+
577
+ The EPP <info> command is used to retrieve information associated
578
+ with a domain object. The response to this command MAY vary
579
+ depending on the identity of the querying client, use of
580
+ authorization information, and server policy towards unauthorized
581
+ clients. If the querying client is the sponsoring client, all
582
+ available information MUST be returned. If the querying client is
583
+ not the sponsoring client but the client provides valid authorization
584
+ information, all available information MUST be returned. If the
585
+ querying client is not the sponsoring client and the client does not
586
+ provide valid authorization information, server policy determines
587
+ which OPTIONAL elements are returned.
588
+
589
+ In addition to the standard EPP command elements, the <info> command
590
+ MUST contain a <domain:info> element that identifies the domain
591
+ namespace. The <domain:info> element contains the following child
592
+ elements:
593
+
594
+ - A <domain:name> element that contains the fully qualified name of
595
+ the domain object to be queried. An OPTIONAL "hosts" attribute is
596
+ available to control return of information describing hosts
597
+ related to the domain object. A value of "all" (the default,
598
+ which MAY be absent) returns information describing both
599
+ subordinate and delegated hosts. A value of "del" returns
600
+ information describing only delegated hosts. A value of "sub"
601
+ returns information describing only subordinate hosts. A value of
602
+ "none" returns no information describing delegated or subordinate
603
+ hosts.
604
+
605
+ - An OPTIONAL <domain:authInfo> element that contains authorization
606
+ information associated with the domain object or authorization
607
+ information associated with the domain object's registrant or
608
+ associated contacts. An OPTIONAL "roid" attribute MUST be used to
609
+ identify the registrant or contact object if and only if the given
610
+ authInfo is associated with a registrant or contact object, and
611
+ not the domain object itself. If this element is not provided or
612
+ if the authorization information is invalid, server policy
613
+ determines if the command is rejected or if response information
614
+ will be returned to the client.
615
+
616
+
617
+
618
+ Hollenbeck Standards Track [Page 11]
619
+
620
+ RFC 5731 EPP Domain Name Mapping August 2009
621
+
622
+
623
+ Example <info> command without authorization information:
624
+
625
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
626
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
627
+ C: <command>
628
+ C: <info>
629
+ C: <domain:info
630
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
631
+ C: <domain:name hosts="all">example.com</domain:name>
632
+ C: </domain:info>
633
+ C: </info>
634
+ C: <clTRID>ABC-12345</clTRID>
635
+ C: </command>
636
+ C:</epp>
637
+
638
+ Example <info> command with authorization information:
639
+
640
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
641
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
642
+ C: <command>
643
+ C: <info>
644
+ C: <domain:info
645
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
646
+ C: <domain:name hosts="all">example.com</domain:name>
647
+ C: <domain:authInfo>
648
+ C: <domain:pw>2fooBAR</domain:pw>
649
+ C: </domain:authInfo>
650
+ C: </domain:info>
651
+ C: </info>
652
+ C: <clTRID>ABC-12345</clTRID>
653
+ C: </command>
654
+ C:</epp>
655
+
656
+ When an <info> command has been processed successfully, the EPP
657
+ <resData> element MUST contain a child <domain:infData> element that
658
+ identifies the domain namespace. Elements that are not OPTIONAL MUST
659
+ be returned; OPTIONAL elements are returned based on client
660
+ authorization and server policy. The <domain:infData> element
661
+ contains the following child elements:
662
+
663
+ - A <domain:name> element that contains the fully qualified name of
664
+ the domain object.
665
+
666
+ - A <domain:roid> element that contains the Repository Object
667
+ IDentifier assigned to the domain object when the object was
668
+ created.
669
+
670
+
671
+
672
+
673
+
674
+ Hollenbeck Standards Track [Page 12]
675
+
676
+ RFC 5731 EPP Domain Name Mapping August 2009
677
+
678
+
679
+ - Zero or more OPTIONAL <domain:status> elements that contain the
680
+ current status descriptors associated with the domain.
681
+
682
+ - If supported by the server, one OPTIONAL <domain:registrant>
683
+ element and one or more OPTIONAL <domain:contact> elements that
684
+ contain identifiers for the human or organizational social
685
+ information objects associated with the domain object.
686
+
687
+ - An OPTIONAL <domain:ns> element that contains the fully qualified
688
+ names of the delegated host objects or host attributes (name
689
+ servers) associated with the domain object. See Section 1.1 for a
690
+ description of the elements used to specify host objects or host
691
+ attributes.
692
+
693
+ - Zero or more OPTIONAL <domain:host> elements that contain the
694
+ fully qualified names of the subordinate host objects that exist
695
+ under this superordinate domain object.
696
+
697
+ - A <domain:clID> element that contains the identifier of the
698
+ sponsoring client.
699
+
700
+ - An OPTIONAL <domain:crID> element that contains the identifier of
701
+ the client that created the domain object.
702
+
703
+ - An OPTIONAL <domain:crDate> element that contains the date and
704
+ time of domain object creation.
705
+
706
+ - An OPTIONAL <domain:exDate> element that contains the date and
707
+ time identifying the end of the domain object's registration
708
+ period.
709
+
710
+ - An OPTIONAL <domain:upID> element that contains the identifier of
711
+ the client that last updated the domain object. This element MUST
712
+ NOT be present if the domain has never been modified.
713
+
714
+ - An OPTIONAL <domain:upDate> element that contains the date and
715
+ time of the most recent domain-object modification. This element
716
+ MUST NOT be present if the domain object has never been modified.
717
+
718
+ - An OPTIONAL <domain:trDate> element that contains the date and
719
+ time of the most recent successful domain-object transfer. This
720
+ element MUST NOT be provided if the domain object has never been
721
+ transferred.
722
+
723
+
724
+
725
+
726
+
727
+
728
+
729
+
730
+ Hollenbeck Standards Track [Page 13]
731
+
732
+ RFC 5731 EPP Domain Name Mapping August 2009
733
+
734
+
735
+ - An OPTIONAL <domain:authInfo> element that contains authorization
736
+ information associated with the domain object. This element MUST
737
+ only be returned if the querying client is the current sponsoring
738
+ client or if the client supplied valid authorization information
739
+ with the command.
740
+
741
+ Example <info> response for an authorized client:
742
+
743
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
744
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
745
+ S: <response>
746
+ S: <result code="1000">
747
+ S: <msg>Command completed successfully</msg>
748
+ S: </result>
749
+ S: <resData>
750
+ S: <domain:infData
751
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
752
+ S: <domain:name>example.com</domain:name>
753
+ S: <domain:roid>EXAMPLE1-REP</domain:roid>
754
+ S: <domain:status s="ok"/>
755
+ S: <domain:registrant>jd1234</domain:registrant>
756
+ S: <domain:contact type="admin">sh8013</domain:contact>
757
+ S: <domain:contact type="tech">sh8013</domain:contact>
758
+ S: <domain:ns>
759
+ S: <domain:hostObj>ns1.example.com</domain:hostObj>
760
+ S: <domain:hostObj>ns1.example.net</domain:hostObj>
761
+ S: </domain:ns>
762
+ S: <domain:host>ns1.example.com</domain:host>
763
+ S: <domain:host>ns2.example.com</domain:host>
764
+ S: <domain:clID>ClientX</domain:clID>
765
+ S: <domain:crID>ClientY</domain:crID>
766
+ S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
767
+ S: <domain:upID>ClientX</domain:upID>
768
+ S: <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate>
769
+ S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
770
+ S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate>
771
+ S: <domain:authInfo>
772
+ S: <domain:pw>2fooBAR</domain:pw>
773
+ S: </domain:authInfo>
774
+ S: </domain:infData>
775
+ S: </resData>
776
+ S: <trID>
777
+ S: <clTRID>ABC-12345</clTRID>
778
+ S: <svTRID>54322-XYZ</svTRID>
779
+ S: </trID>
780
+ S: </response>
781
+ S:</epp>
782
+
783
+
784
+
785
+
786
+ Hollenbeck Standards Track [Page 14]
787
+
788
+ RFC 5731 EPP Domain Name Mapping August 2009
789
+
790
+
791
+ A server with a different information-return policy MAY provide less
792
+ information in a response.
793
+
794
+ Example <info> response for an unauthorized client:
795
+
796
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
797
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
798
+ S: <response>
799
+ S: <result code="1000">
800
+ S: <msg>Command completed successfully</msg>
801
+ S: </result>
802
+ S: <resData>
803
+ S: <domain:infData
804
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
805
+ S: <domain:name>example.com</domain:name>
806
+ S: <domain:roid>EXAMPLE1-REP</domain:roid>
807
+ S: <domain:clID>ClientX</domain:clID>
808
+ S: </domain:infData>
809
+ S: </resData>
810
+ S: <trID>
811
+ S: <clTRID>ABC-12345</clTRID>
812
+ S: <svTRID>54322-XYZ</svTRID>
813
+ S: </trID>
814
+ S: </response>
815
+ S:</epp>
816
+
817
+ An EPP error response MUST be returned if an <info> command cannot be
818
+ processed for any reason.
819
+
820
+ 3.1.3. EPP <transfer> Query Command
821
+
822
+ The EPP <transfer> command provides a query operation that allows a
823
+ client to determine the real-time status of pending and completed
824
+ transfer requests. In addition to the standard EPP command elements,
825
+ the <transfer> command MUST contain an "op" attribute with value
826
+ "query", and a <domain:transfer> element that identifies the domain
827
+ namespace. The <domain:transfer> element contains the following
828
+ child elements:
829
+
830
+ - A <domain:name> element that contains the fully qualified name of
831
+ the domain object to be queried.
832
+
833
+ - An OPTIONAL <domain:authInfo> element that contains authorization
834
+ information associated with the domain object or authorization
835
+ information associated with the domain object's registrant or
836
+ associated contacts. An OPTIONAL "roid" attribute MUST be used to
837
+ identify the registrant or contact object if and only if the given
838
+ authInfo is associated with a registrant or contact object, and
839
+
840
+
841
+
842
+ Hollenbeck Standards Track [Page 15]
843
+
844
+ RFC 5731 EPP Domain Name Mapping August 2009
845
+
846
+
847
+ not the domain object itself. If this element is not provided or
848
+ if the authorization information is invalid, server policy
849
+ determines if the command is rejected or if response information
850
+ will be returned to the client.
851
+
852
+ Example <transfer> query command:
853
+
854
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
855
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
856
+ C: <command>
857
+ C: <transfer op="query">
858
+ C: <domain:transfer
859
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
860
+ C: <domain:name>example.com</domain:name>
861
+ C: <domain:authInfo>
862
+ C: <domain:pw roid="JD1234-REP">2fooBAR</domain:pw>
863
+ C: </domain:authInfo>
864
+ C: </domain:transfer>
865
+ C: </transfer>
866
+ C: <clTRID>ABC-12345</clTRID>
867
+ C: </command>
868
+ C:</epp>
869
+
870
+ When a <transfer> query command has been processed successfully, the
871
+ EPP <resData> element MUST contain a child <domain:trnData> element
872
+ that identifies the domain namespace. The <domain:trnData> element
873
+ contains the following child elements:
874
+
875
+ - A <domain:name> element that contains the fully qualified name of
876
+ the domain object.
877
+
878
+ - A <domain:trStatus> element that contains the state of the most
879
+ recent transfer request.
880
+
881
+ - A <domain:reID> element that contains the identifier of the client
882
+ that requested the object transfer.
883
+
884
+ - A <domain:reDate> element that contains the date and time that the
885
+ transfer was requested.
886
+
887
+ - A <domain:acID> element that contains the identifier of the client
888
+ that SHOULD act upon a PENDING transfer request. For all other
889
+ status types, the value identifies the client that took the
890
+ indicated action.
891
+
892
+ - A <domain:acDate> element that contains the date and time of a
893
+ required or completed response. For a PENDING request, the value
894
+ identifies the date and time by which a response is required
895
+
896
+
897
+
898
+ Hollenbeck Standards Track [Page 16]
899
+
900
+ RFC 5731 EPP Domain Name Mapping August 2009
901
+
902
+
903
+ before an automated response action will be taken by the server.
904
+ For all other status types, the value identifies the date and time
905
+ when the request was completed.
906
+
907
+ - An OPTIONAL <domain:exDate> element that contains the end of the
908
+ domain object's validity period if the <transfer> command caused
909
+ or causes a change in the validity period.
910
+
911
+ Example <transfer> query response:
912
+
913
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
914
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
915
+ S: <response>
916
+ S: <result code="1000">
917
+ S: <msg>Command completed successfully</msg>
918
+ S: </result>
919
+ S: <resData>
920
+ S: <domain:trnData
921
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
922
+ S: <domain:name>example.com</domain:name>
923
+ S: <domain:trStatus>pending</domain:trStatus>
924
+ S: <domain:reID>ClientX</domain:reID>
925
+ S: <domain:reDate>2000-06-06T22:00:00.0Z</domain:reDate>
926
+ S: <domain:acID>ClientY</domain:acID>
927
+ S: <domain:acDate>2000-06-11T22:00:00.0Z</domain:acDate>
928
+ S: <domain:exDate>2002-09-08T22:00:00.0Z</domain:exDate>
929
+ S: </domain:trnData>
930
+ S: </resData>
931
+ S: <trID>
932
+ S: <clTRID>ABC-12345</clTRID>
933
+ S: <svTRID>54322-XYZ</svTRID>
934
+ S: </trID>
935
+ S: </response>
936
+ S:</epp>
937
+
938
+ An EPP error response MUST be returned if a <transfer> query command
939
+ cannot be processed for any reason.
940
+
941
+ 3.2. EPP Transform Commands
942
+
943
+ EPP provides five commands to transform domain objects: <create> to
944
+ create an instance of a domain object, <delete> to delete an instance
945
+ of a domain object, <renew> to extend the validity period of a domain
946
+ object, <transfer> to manage domain object sponsorship changes, and
947
+ <update> to change information associated with a domain object.
948
+
949
+
950
+
951
+
952
+
953
+
954
+ Hollenbeck Standards Track [Page 17]
955
+
956
+ RFC 5731 EPP Domain Name Mapping August 2009
957
+
958
+
959
+ Transform commands are typically processed and completed in real
960
+ time. Server operators MAY receive and process transform commands
961
+ but defer completing the requested action if human or third-party
962
+ review is required before the requested action can be completed. In
963
+ such situations the server MUST return a 1001 response code to the
964
+ client to note that the command has been received and processed but
965
+ that the requested action is pending. The server MUST also manage
966
+ the status of the object that is the subject of the command to
967
+ reflect the initiation and completion of the requested action. Once
968
+ the action has been completed, all clients involved in the
969
+ transaction MUST be notified using a service message that the action
970
+ has been completed and that the status of the object has changed.
971
+ Other notification methods MAY be used in addition to the required
972
+ service message.
973
+
974
+ Server operators SHOULD confirm that a client is authorized to
975
+ perform a transform command on a given object. Any attempt to
976
+ transform an object by an unauthorized client MUST be rejected, and
977
+ the server MUST return a 2201 response code to the client to note
978
+ that the client lacks privileges to execute the requested command.
979
+
980
+ 3.2.1. EPP <create> Command
981
+
982
+ The EPP <create> command provides a transform operation that allows a
983
+ client to create a domain object. In addition to the standard EPP
984
+ command elements, the <create> command MUST contain a <domain:create>
985
+ element that identifies the domain namespace. The <domain:create>
986
+ element contains the following child elements:
987
+
988
+ - A <domain:name> element that contains the fully qualified name of
989
+ the domain object to be created.
990
+
991
+ - An OPTIONAL <domain:period> element that contains the initial
992
+ registration period of the domain object. A server MAY define a
993
+ default initial registration period if not specified by the
994
+ client.
995
+
996
+ - An OPTIONAL <domain:ns> element that contains the fully qualified
997
+ names of the delegated host objects or host attributes (name
998
+ servers) associated with the domain object to provide resolution
999
+ services for the domain; see Section 1.1 for a description of the
1000
+ elements used to specify host objects or host attributes. A host
1001
+ object MUST be known to the server before the host object can be
1002
+ associated with a domain object.
1003
+
1004
+ - An OPTIONAL <domain:registrant> element that contains the
1005
+ identifier for the human or organizational social information
1006
+ (contact) object to be associated with the domain object as the
1007
+
1008
+
1009
+
1010
+ Hollenbeck Standards Track [Page 18]
1011
+
1012
+ RFC 5731 EPP Domain Name Mapping August 2009
1013
+
1014
+
1015
+ object registrant. This object identifier MUST be known to the
1016
+ server before the contact object can be associated with the domain
1017
+ object. The EPP mapping for contact objects is described in
1018
+ [RFC5733].
1019
+
1020
+ - Zero or more OPTIONAL <domain:contact> elements that contain the
1021
+ identifiers for other contact objects to be associated with the
1022
+ domain object. Contact object identifiers MUST be known to the
1023
+ server before the contact object can be associated with the domain
1024
+ object.
1025
+
1026
+ - A <domain:authInfo> element that contains authorization
1027
+ information to be associated with the domain object. This mapping
1028
+ includes a password-based authentication mechanism, but the schema
1029
+ allows new mechanisms to be defined in new schemas.
1030
+
1031
+ Example <create> command:
1032
+
1033
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1034
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1035
+ C: <command>
1036
+ C: <create>
1037
+ C: <domain:create
1038
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
1039
+ C: <domain:name>example.com</domain:name>
1040
+ C: <domain:period unit="y">2</domain:period>
1041
+ C: <domain:ns>
1042
+ C: <domain:hostObj>ns1.example.net</domain:hostObj>
1043
+ C: <domain:hostObj>ns2.example.net</domain:hostObj>
1044
+ C: </domain:ns>
1045
+ C: <domain:registrant>jd1234</domain:registrant>
1046
+ C: <domain:contact type="admin">sh8013</domain:contact>
1047
+ C: <domain:contact type="tech">sh8013</domain:contact>
1048
+ C: <domain:authInfo>
1049
+ C: <domain:pw>2fooBAR</domain:pw>
1050
+ C: </domain:authInfo>
1051
+ C: </domain:create>
1052
+ C: </create>
1053
+ C: <clTRID>ABC-12345</clTRID>
1054
+ C: </command>
1055
+ C:</epp>
1056
+
1057
+ When a <create> command has been processed successfully, the EPP
1058
+ <resData> element MUST contain a child <domain:creData> element that
1059
+ identifies the domain namespace. The <domain:creData> element
1060
+ contains the following child elements:
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+ Hollenbeck Standards Track [Page 19]
1067
+
1068
+ RFC 5731 EPP Domain Name Mapping August 2009
1069
+
1070
+
1071
+ - A <domain:name> element that contains the fully qualified name of
1072
+ the domain object.
1073
+
1074
+ - A <domain:crDate> element that contains the date and time of
1075
+ domain object creation.
1076
+
1077
+ - An OPTIONAL <domain:exDate> element that contains the date and
1078
+ time identifying the end of the domain object's registration
1079
+ period.
1080
+
1081
+ Example <create> response:
1082
+
1083
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1084
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1085
+ S: <response>
1086
+ S: <result code="1000">
1087
+ S: <msg>Command completed successfully</msg>
1088
+ S: </result>
1089
+ S: <resData>
1090
+ S: <domain:creData
1091
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
1092
+ S: <domain:name>example.com</domain:name>
1093
+ S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
1094
+ S: <domain:exDate>2001-04-03T22:00:00.0Z</domain:exDate>
1095
+ S: </domain:creData>
1096
+ S: </resData>
1097
+ S: <trID>
1098
+ S: <clTRID>ABC-12345</clTRID>
1099
+ S: <svTRID>54321-XYZ</svTRID>
1100
+ S: </trID>
1101
+ S: </response>
1102
+ S:</epp>
1103
+
1104
+ An EPP error response MUST be returned if a <create> command cannot
1105
+ be processed for any reason.
1106
+
1107
+ 3.2.2. EPP <delete> Command
1108
+
1109
+ The EPP <delete> command provides a transform operation that allows a
1110
+ client to delete a domain object. In addition to the standard EPP
1111
+ command elements, the <delete> command MUST contain a <domain:delete>
1112
+ element that identifies the domain namespace. The <domain:delete>
1113
+ element contains the following child elements:
1114
+
1115
+ - A <domain:name> element that contains the fully qualified name of
1116
+ the domain object to be deleted.
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+ Hollenbeck Standards Track [Page 20]
1123
+
1124
+ RFC 5731 EPP Domain Name Mapping August 2009
1125
+
1126
+
1127
+ A domain object SHOULD NOT be deleted if subordinate host objects are
1128
+ associated with the domain object. For example, if domain
1129
+ "example.com" exists and host object "ns1.example.com" also exists,
1130
+ then domain "example.com" SHOULD NOT be deleted until host
1131
+ "ns1.example.com" has either been deleted or renamed to exist in a
1132
+ different superordinate domain. A server SHOULD notify clients that
1133
+ object relationships exist by sending a 2305 error response code when
1134
+ a <delete> command is attempted and fails due to existing object
1135
+ relationships. Delegated and subordinate host objects associated
1136
+ with a domain object can be determined using the <info> query command
1137
+ for the domain object.
1138
+
1139
+ Example <delete> command:
1140
+
1141
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1142
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1143
+ C: <command>
1144
+ C: <delete>
1145
+ C: <domain:delete
1146
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
1147
+ C: <domain:name>example.com</domain:name>
1148
+ C: </domain:delete>
1149
+ C: </delete>
1150
+ C: <clTRID>ABC-12345</clTRID>
1151
+ C: </command>
1152
+ C:</epp>
1153
+
1154
+ When a <delete> command has been processed successfully, a server
1155
+ MUST respond with an EPP response with no <resData> element.
1156
+
1157
+ Example <delete> response:
1158
+
1159
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1160
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1161
+ S: <response>
1162
+ S: <result code="1000">
1163
+ S: <msg>Command completed successfully</msg>
1164
+ S: </result>
1165
+ S: <trID>
1166
+ S: <clTRID>ABC-12345</clTRID>
1167
+ S: <svTRID>54321-XYZ</svTRID>
1168
+ S: </trID>
1169
+ S: </response>
1170
+ S:</epp>
1171
+
1172
+ An EPP error response MUST be returned if a <delete> command cannot
1173
+ be processed for any reason.
1174
+
1175
+
1176
+
1177
+
1178
+ Hollenbeck Standards Track [Page 21]
1179
+
1180
+ RFC 5731 EPP Domain Name Mapping August 2009
1181
+
1182
+
1183
+ 3.2.3. EPP <renew> Command
1184
+
1185
+ The EPP <renew> command provides a transform operation that allows a
1186
+ client to extend the validity period of a domain object. In addition
1187
+ to the standard EPP command elements, the <renew> command MUST
1188
+ contain a <domain:renew> element that identifies the domain
1189
+ namespace. The <domain:renew> element contains the following child
1190
+ elements:
1191
+
1192
+ - A <domain:name> element that contains the fully qualified name of
1193
+ the domain object whose validity period is to be extended.
1194
+
1195
+ - A <domain:curExpDate> element that contains the date on which the
1196
+ current validity period ends. This value ensures that repeated
1197
+ <renew> commands do not result in multiple, unanticipated
1198
+ successful renewals.
1199
+
1200
+ - An OPTIONAL <domain:period> element that contains the number of
1201
+ units to be added to the registration period of the domain object.
1202
+ The number of units available MAY be subject to limits imposed by
1203
+ the server.
1204
+
1205
+ Example <renew> command:
1206
+
1207
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1208
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1209
+ C: <command>
1210
+ C: <renew>
1211
+ C: <domain:renew
1212
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
1213
+ C: <domain:name>example.com</domain:name>
1214
+ C: <domain:curExpDate>2000-04-03</domain:curExpDate>
1215
+ C: <domain:period unit="y">5</domain:period>
1216
+ C: </domain:renew>
1217
+ C: </renew>
1218
+ C: <clTRID>ABC-12345</clTRID>
1219
+ C: </command>
1220
+ C:</epp>
1221
+
1222
+ When a <renew> command has been processed successfully, the EPP
1223
+ <resData> element MUST contain a child <domain:renData> element that
1224
+ identifies the domain namespace. The <domain:renData> element
1225
+ contains the following child elements:
1226
+
1227
+ - A <domain:name> element that contains the fully qualified name of
1228
+ the domain object.
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+ Hollenbeck Standards Track [Page 22]
1235
+
1236
+ RFC 5731 EPP Domain Name Mapping August 2009
1237
+
1238
+
1239
+ - An OPTIONAL <domain:exDate> element that contains the date and
1240
+ time identifying the end of the domain object's registration
1241
+ period.
1242
+
1243
+ Example <renew> response:
1244
+
1245
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1246
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1247
+ S: <response>
1248
+ S: <result code="1000">
1249
+ S: <msg>Command completed successfully</msg>
1250
+ S: </result>
1251
+ S: <resData>
1252
+ S: <domain:renData
1253
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
1254
+ S: <domain:name>example.com</domain:name>
1255
+ S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
1256
+ S: </domain:renData>
1257
+ S: </resData>
1258
+ S: <trID>
1259
+ S: <clTRID>ABC-12345</clTRID>
1260
+ S: <svTRID>54322-XYZ</svTRID>
1261
+ S: </trID>
1262
+ S: </response>
1263
+ S:</epp>
1264
+
1265
+ An EPP error response MUST be returned if a <renew> command cannot be
1266
+ processed for any reason.
1267
+
1268
+ 3.2.4. EPP <transfer> Command
1269
+
1270
+ The EPP <transfer> command provides a transform operation that allows
1271
+ a client to manage requests to transfer the sponsorship of a domain
1272
+ object. In addition to the standard EPP command elements, the
1273
+ <transfer> command MUST contain a <domain:transfer> element that
1274
+ identifies the domain namespace. The <domain:transfer> element
1275
+ contains the following child elements:
1276
+
1277
+ - A <domain:name> element that contains the fully qualified name of
1278
+ the domain object for which a transfer request is to be created,
1279
+ approved, rejected, or cancelled.
1280
+
1281
+ - An OPTIONAL <domain:period> element that contains the number of
1282
+ units to be added to the registration period of the domain object
1283
+ at completion of the transfer process. This element can only be
1284
+ used when a transfer is requested, and it MUST be ignored if used
1285
+ otherwise. The number of units available MAY be subject to limits
1286
+ imposed by the server.
1287
+
1288
+
1289
+
1290
+ Hollenbeck Standards Track [Page 23]
1291
+
1292
+ RFC 5731 EPP Domain Name Mapping August 2009
1293
+
1294
+
1295
+ - A <domain:authInfo> element that contains authorization
1296
+ information associated with the domain object or authorization
1297
+ information associated with the domain object's registrant or
1298
+ associated contacts. An OPTIONAL "roid" attribute MUST be used to
1299
+ identify the registrant or contact object if and only if the given
1300
+ authInfo is associated with a registrant or contact object, and
1301
+ not the domain object itself.
1302
+
1303
+ Every EPP <transfer> command MUST contain an "op" attribute that
1304
+ identifies the transfer operation to be performed. Valid values,
1305
+ definitions, and authorizations for all attribute values are defined
1306
+ in [RFC5730].
1307
+
1308
+ Transfer of a domain object MUST implicitly transfer all host objects
1309
+ that are subordinate to the domain object. For example, if domain
1310
+ object "example.com" is transferred and host object "ns1.example.com"
1311
+ exists, the host object MUST be transferred as part of the
1312
+ "example.com" transfer process. Host objects that are subject to
1313
+ transfer when transferring a domain object are listed in the response
1314
+ to an EPP <info> command performed on the domain object.
1315
+
1316
+ Example <transfer> request command:
1317
+
1318
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1319
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1320
+ C: <command>
1321
+ C: <transfer op="request">
1322
+ C: <domain:transfer
1323
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
1324
+ C: <domain:name>example.com</domain:name>
1325
+ C: <domain:period unit="y">1</domain:period>
1326
+ C: <domain:authInfo>
1327
+ C: <domain:pw roid="JD1234-REP">2fooBAR</domain:pw>
1328
+ C: </domain:authInfo>
1329
+ C: </domain:transfer>
1330
+ C: </transfer>
1331
+ C: <clTRID>ABC-12345</clTRID>
1332
+ C: </command>
1333
+ C:</epp>
1334
+
1335
+ When a <transfer> command has been processed successfully, the EPP
1336
+ <resData> element MUST contain a child <domain:trnData> element that
1337
+ identifies the domain namespace. The <domain:trnData> element
1338
+ contains the same child elements defined for a transfer query
1339
+ response.
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+
1346
+ Hollenbeck Standards Track [Page 24]
1347
+
1348
+ RFC 5731 EPP Domain Name Mapping August 2009
1349
+
1350
+
1351
+ Example <transfer> response:
1352
+
1353
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1354
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1355
+ S: <response>
1356
+ S: <result code="1001">
1357
+ S: <msg>Command completed successfully; action pending</msg>
1358
+ S: </result>
1359
+ S: <resData>
1360
+ S: <domain:trnData
1361
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
1362
+ S: <domain:name>example.com</domain:name>
1363
+ S: <domain:trStatus>pending</domain:trStatus>
1364
+ S: <domain:reID>ClientX</domain:reID>
1365
+ S: <domain:reDate>2000-06-08T22:00:00.0Z</domain:reDate>
1366
+ S: <domain:acID>ClientY</domain:acID>
1367
+ S: <domain:acDate>2000-06-13T22:00:00.0Z</domain:acDate>
1368
+ S: <domain:exDate>2002-09-08T22:00:00.0Z</domain:exDate>
1369
+ S: </domain:trnData>
1370
+ S: </resData>
1371
+ S: <trID>
1372
+ S: <clTRID>ABC-12345</clTRID>
1373
+ S: <svTRID>54322-XYZ</svTRID>
1374
+ S: </trID>
1375
+ S: </response>
1376
+ S:</epp>
1377
+
1378
+ An EPP error response MUST be returned if a <transfer> command can
1379
+ not be processed for any reason.
1380
+
1381
+ 3.2.5. EPP <update> Command
1382
+
1383
+ The EPP <update> command provides a transform operation that allows a
1384
+ client to modify the attributes of a domain object. In addition to
1385
+ the standard EPP command elements, the <update> command MUST contain
1386
+ a <domain:update> element that identifies the domain namespace. The
1387
+ <domain:update> element contains the following child elements:
1388
+
1389
+ - A <domain:name> element that contains the fully qualified name of
1390
+ the domain object to be updated.
1391
+
1392
+ - An OPTIONAL <domain:add> element that contains attribute values to
1393
+ be added to the object.
1394
+
1395
+ - An OPTIONAL <domain:rem> element that contains attribute values to
1396
+ be removed from the object.
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+ Hollenbeck Standards Track [Page 25]
1403
+
1404
+ RFC 5731 EPP Domain Name Mapping August 2009
1405
+
1406
+
1407
+ - An OPTIONAL <domain:chg> element that contains object attribute
1408
+ values to be changed.
1409
+
1410
+ At least one <domain:add>, <domain:rem>, or <domain:chg> element MUST
1411
+ be provided if the command is not being extended. All of these
1412
+ elements MAY be omitted if an <update> extension is present. The
1413
+ <domain:add> and <domain:rem> elements contain the following child
1414
+ elements:
1415
+
1416
+ - An OPTIONAL <domain:ns> element that contains the fully qualified
1417
+ names of the delegated host objects or host attributes (name
1418
+ servers) associated with the domain object to provide resolution
1419
+ services for the domain; see Section 1.1 for a description of the
1420
+ elements used to specify host objects or host attributes. A host
1421
+ object MUST be known to the server before the host object can be
1422
+ associated with a domain object. If host attributes are used to
1423
+ specify name servers, note that IP address elements are not needed
1424
+ to identify a name server that is being removed. IP address
1425
+ elements can safely be absent or ignored in this situation.
1426
+
1427
+ - Zero or more <domain:contact> elements that contain the
1428
+ identifiers for contact objects to be associated with or removed
1429
+ from the domain object. Contact object identifiers MUST be known
1430
+ to the server before the contact object can be associated with the
1431
+ domain object.
1432
+
1433
+ - Zero or more <domain:status> elements that contain status values
1434
+ to be applied to or removed from the object. When specifying a
1435
+ value to be removed, only the attribute value is significant;
1436
+ element text is not required to match a value for removal.
1437
+
1438
+ A <domain:chg> element contains the following child elements:
1439
+
1440
+ - A <domain:registrant> element that contains the identifier for the
1441
+ human or organizational social information (contact) object to be
1442
+ associated with the domain object as the object registrant. This
1443
+ object identifier MUST be known to the server before the contact
1444
+ object can be associated with the domain object. An empty element
1445
+ can be used to remove registrant information.
1446
+
1447
+ - A <domain:authInfo> element that contains authorization
1448
+ information associated with the domain object. This mapping
1449
+ includes a password-based authentication mechanism, but the schema
1450
+ allows new mechanisms to be defined in new schemas. A <domain:
1451
+ null> element can be used within the <domain:authInfo> element to
1452
+ remove authorization information.
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+ Hollenbeck Standards Track [Page 26]
1459
+
1460
+ RFC 5731 EPP Domain Name Mapping August 2009
1461
+
1462
+
1463
+ Example <update> command:
1464
+
1465
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1466
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1467
+ C: <command>
1468
+ C: <update>
1469
+ C: <domain:update
1470
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
1471
+ C: <domain:name>example.com</domain:name>
1472
+ C: <domain:add>
1473
+ C: <domain:ns>
1474
+ C: <domain:hostObj>ns2.example.com</domain:hostObj>
1475
+ C: </domain:ns>
1476
+ C: <domain:contact type="tech">mak21</domain:contact>
1477
+ C: <domain:status s="clientHold"
1478
+ C: lang="en">Payment overdue.</domain:status>
1479
+ C: </domain:add>
1480
+ C: <domain:rem>
1481
+ C: <domain:ns>
1482
+ C: <domain:hostObj>ns1.example.com</domain:hostObj>
1483
+ C: </domain:ns>
1484
+ C: <domain:contact type="tech">sh8013</domain:contact>
1485
+ C: <domain:status s="clientUpdateProhibited"/>
1486
+ C: </domain:rem>
1487
+ C: <domain:chg>
1488
+ C: <domain:registrant>sh8013</domain:registrant>
1489
+ C: <domain:authInfo>
1490
+ C: <domain:pw>2BARfoo</domain:pw>
1491
+ C: </domain:authInfo>
1492
+ C: </domain:chg>
1493
+ C: </domain:update>
1494
+ C: </update>
1495
+ C: <clTRID>ABC-12345</clTRID>
1496
+ C: </command>
1497
+ C:</epp>
1498
+
1499
+ When an <update> command has been processed successfully, a server
1500
+ MUST respond with an EPP response with no <resData> element.
1501
+
1502
+ Example <update> response:
1503
+
1504
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1505
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1506
+ S: <response>
1507
+ S: <result code="1000">
1508
+ S: <msg>Command completed successfully</msg>
1509
+ S: </result>
1510
+ S: <trID>
1511
+
1512
+
1513
+
1514
+ Hollenbeck Standards Track [Page 27]
1515
+
1516
+ RFC 5731 EPP Domain Name Mapping August 2009
1517
+
1518
+
1519
+ S: <clTRID>ABC-12345</clTRID>
1520
+ S: <svTRID>54321-XYZ</svTRID>
1521
+ S: </trID>
1522
+ S: </response>
1523
+ S:</epp>
1524
+
1525
+ An EPP error response MUST be returned if an <update> command cannot
1526
+ be processed for any reason.
1527
+
1528
+ 3.3. Offline Review of Requested Actions
1529
+
1530
+ Commands are processed by a server in the order they are received
1531
+ from a client. Though an immediate response confirming receipt and
1532
+ processing of the command is produced by the server, a server
1533
+ operator MAY perform an offline review of requested transform
1534
+ commands before completing the requested action. In such situations,
1535
+ the response from the server MUST clearly note that the transform
1536
+ command has been received and processed but that the requested action
1537
+ is pending. The status of the corresponding object MUST clearly
1538
+ reflect processing of the pending action. The server MUST notify the
1539
+ client when offline processing of the action has been completed.
1540
+
1541
+ Examples describing a <create> command that requires offline review
1542
+ are included here. Note the result code and message returned in
1543
+ response to the <create> command.
1544
+
1545
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1546
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1547
+ S: <response>
1548
+ S: <result code="1001">
1549
+ S: <msg>Command completed successfully; action pending</msg>
1550
+ S: </result>
1551
+ S: <resData>
1552
+ S: <domain:creData
1553
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
1554
+ S: <domain:name>example.com</domain:name>
1555
+ S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
1556
+ S: <domain:exDate>2001-04-03T22:00:00.0Z</domain:exDate>
1557
+ S: </domain:creData>
1558
+ S: </resData>
1559
+ S: <trID>
1560
+ S: <clTRID>ABC-12345</clTRID>
1561
+ S: <svTRID>54321-XYZ</svTRID>
1562
+ S: </trID>
1563
+ S: </response>
1564
+ S:</epp>
1565
+
1566
+
1567
+
1568
+
1569
+
1570
+ Hollenbeck Standards Track [Page 28]
1571
+
1572
+ RFC 5731 EPP Domain Name Mapping August 2009
1573
+
1574
+
1575
+ The status of the domain object after returning this response MUST
1576
+ include "pendingCreate". The server operator reviews the request
1577
+ offline, and informs the client of the outcome of the review either
1578
+ by queuing a service message for retrieval via the <poll> command or
1579
+ by using an out-of-band mechanism to inform the client of the
1580
+ request.
1581
+
1582
+ The service message MUST contain text that describes the notification
1583
+ in the child <msg> element of the response <msgQ> element. In
1584
+ addition, the EPP <resData> element MUST contain a child <domain:
1585
+ panData> element that identifies the domain namespace. The <domain:
1586
+ panData> element contains the following child elements:
1587
+
1588
+ - A <domain:name> element that contains the fully qualified name of
1589
+ the domain object. The <domain:name> element contains a REQUIRED
1590
+ "paResult" attribute. A positive boolean value indicates that the
1591
+ request has been approved and completed. A negative boolean value
1592
+ indicates that the request has been denied and the requested
1593
+ action has not been taken.
1594
+
1595
+ - A <domain:paTRID> element that contains the client transaction
1596
+ identifier and server transaction identifier returned with the
1597
+ original response to process the command. The client transaction
1598
+ identifier is OPTIONAL and will only be returned if the client
1599
+ provided an identifier with the original <create> command.
1600
+
1601
+ - A <domain:paDate> element that contains the date and time
1602
+ describing when review of the requested action was completed.
1603
+
1604
+ Example "review completed" service message:
1605
+
1606
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1607
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
1608
+ S: <response>
1609
+ S: <result code="1301">
1610
+ S: <msg>Command completed successfully; ack to dequeue</msg>
1611
+ S: </result>
1612
+ S: <msgQ count="5" id="12345">
1613
+ S: <qDate>1999-04-04T22:01:00.0Z</qDate>
1614
+ S: <msg>Pending action completed successfully.</msg>
1615
+ S: </msgQ>
1616
+ S: <resData>
1617
+ S: <domain:panData
1618
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
1619
+ S: <domain:name paResult="1">example.com</domain:name>
1620
+ S: <domain:paTRID>
1621
+ S: <clTRID>ABC-12345</clTRID>
1622
+ S: <svTRID>54321-XYZ</svTRID>
1623
+
1624
+
1625
+
1626
+ Hollenbeck Standards Track [Page 29]
1627
+
1628
+ RFC 5731 EPP Domain Name Mapping August 2009
1629
+
1630
+
1631
+ S: </domain:paTRID>
1632
+ S: <domain:paDate>1999-04-04T22:00:00.0Z</domain:paDate>
1633
+ S: </domain:panData>
1634
+ S: </resData>
1635
+ S: <trID>
1636
+ S: <clTRID>BCD-23456</clTRID>
1637
+ S: <svTRID>65432-WXY</svTRID>
1638
+ S: </trID>
1639
+ S: </response>
1640
+ S:</epp>
1641
+
1642
+ 4. Formal Syntax
1643
+
1644
+ An EPP object mapping is specified in XML Schema notation. The
1645
+ formal syntax presented here is a complete schema representation of
1646
+ the object mapping suitable for automated validation of EPP XML
1647
+ instances. The BEGIN and END tags are not part of the schema; they
1648
+ are used to note the beginning and ending of the schema for URI
1649
+ registration purposes.
1650
+
1651
+ Copyright (c) 2009 IETF Trust and the persons identified as authors
1652
+ of the code. All rights reserved.
1653
+
1654
+ Redistribution and use in source and binary forms, with or without
1655
+ modification, are permitted provided that the following conditions
1656
+ are met:
1657
+
1658
+ o Redistributions of source code must retain the above copyright
1659
+ notice, this list of conditions and the following disclaimer.
1660
+
1661
+ o Redistributions in binary form must reproduce the above copyright
1662
+ notice, this list of conditions and the following disclaimer in
1663
+ the documentation and/or other materials provided with the
1664
+ distribution.
1665
+
1666
+ o Neither the name of Internet Society, IETF or IETF Trust, nor the
1667
+ names of specific contributors, may be used to endorse or promote
1668
+ products derived from this software without specific prior written
1669
+ permission.
1670
+
1671
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1672
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1673
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1674
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1675
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1676
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1677
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1678
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1679
+
1680
+
1681
+
1682
+ Hollenbeck Standards Track [Page 30]
1683
+
1684
+ RFC 5731 EPP Domain Name Mapping August 2009
1685
+
1686
+
1687
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1688
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1689
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1690
+
1691
+ BEGIN
1692
+ <?xml version="1.0" encoding="UTF-8"?>
1693
+
1694
+ <schema targetNamespace="urn:ietf:params:xml:ns:domain-1.0"
1695
+ xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
1696
+ xmlns:host="urn:ietf:params:xml:ns:host-1.0"
1697
+ xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
1698
+ xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
1699
+ xmlns="http://www.w3.org/2001/XMLSchema"
1700
+ elementFormDefault="qualified">
1701
+
1702
+ <!--
1703
+ Import common element types.
1704
+ -->
1705
+ <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>
1706
+ <import namespace="urn:ietf:params:xml:ns:epp-1.0"/>
1707
+ <import namespace="urn:ietf:params:xml:ns:host-1.0"/>
1708
+
1709
+ <annotation>
1710
+ <documentation>
1711
+ Extensible Provisioning Protocol v1.0
1712
+ domain provisioning schema.
1713
+ </documentation>
1714
+ </annotation>
1715
+
1716
+ <!--
1717
+ Child elements found in EPP commands.
1718
+ -->
1719
+ <element name="check" type="domain:mNameType"/>
1720
+ <element name="create" type="domain:createType"/>
1721
+ <element name="delete" type="domain:sNameType"/>
1722
+ <element name="info" type="domain:infoType"/>
1723
+ <element name="renew" type="domain:renewType"/>
1724
+ <element name="transfer" type="domain:transferType"/>
1725
+ <element name="update" type="domain:updateType"/>
1726
+ <!--
1727
+ Child elements of the <create> command.
1728
+ -->
1729
+ <complexType name="createType">
1730
+ <sequence>
1731
+ <element name="name" type="eppcom:labelType"/>
1732
+ <element name="period" type="domain:periodType"
1733
+ minOccurs="0"/>
1734
+ <element name="ns" type="domain:nsType"
1735
+
1736
+
1737
+
1738
+ Hollenbeck Standards Track [Page 31]
1739
+
1740
+ RFC 5731 EPP Domain Name Mapping August 2009
1741
+
1742
+
1743
+ minOccurs="0"/>
1744
+ <element name="registrant" type="eppcom:clIDType"
1745
+ minOccurs="0"/>
1746
+ <element name="contact" type="domain:contactType"
1747
+ minOccurs="0" maxOccurs="unbounded"/>
1748
+ <element name="authInfo" type="domain:authInfoType"/>
1749
+ </sequence>
1750
+ </complexType>
1751
+
1752
+ <complexType name="periodType">
1753
+ <simpleContent>
1754
+ <extension base="domain:pLimitType">
1755
+ <attribute name="unit" type="domain:pUnitType"
1756
+ use="required"/>
1757
+ </extension>
1758
+ </simpleContent>
1759
+ </complexType>
1760
+
1761
+ <simpleType name="pLimitType">
1762
+ <restriction base="unsignedShort">
1763
+ <minInclusive value="1"/>
1764
+ <maxInclusive value="99"/>
1765
+ </restriction>
1766
+ </simpleType>
1767
+
1768
+ <simpleType name="pUnitType">
1769
+ <restriction base="token">
1770
+ <enumeration value="y"/>
1771
+ <enumeration value="m"/>
1772
+ </restriction>
1773
+ </simpleType>
1774
+
1775
+ <complexType name="nsType">
1776
+ <choice>
1777
+ <element name="hostObj" type="eppcom:labelType"
1778
+ maxOccurs="unbounded"/>
1779
+ <element name="hostAttr" type="domain:hostAttrType"
1780
+ maxOccurs="unbounded"/>
1781
+ </choice>
1782
+ </complexType>
1783
+ <!--
1784
+ Name servers are either host objects or attributes.
1785
+ -->
1786
+
1787
+ <complexType name="hostAttrType">
1788
+ <sequence>
1789
+ <element name="hostName" type="eppcom:labelType"/>
1790
+ <element name="hostAddr" type="host:addrType"
1791
+
1792
+
1793
+
1794
+ Hollenbeck Standards Track [Page 32]
1795
+
1796
+ RFC 5731 EPP Domain Name Mapping August 2009
1797
+
1798
+
1799
+ minOccurs="0" maxOccurs="unbounded"/>
1800
+ </sequence>
1801
+ </complexType>
1802
+ <!--
1803
+ If attributes, addresses are optional and follow the
1804
+ structure defined in the host mapping.
1805
+ -->
1806
+
1807
+ <complexType name="contactType">
1808
+ <simpleContent>
1809
+ <extension base="eppcom:clIDType">
1810
+ <attribute name="type" type="domain:contactAttrType"/>
1811
+ </extension>
1812
+ </simpleContent>
1813
+ </complexType>
1814
+
1815
+ <simpleType name="contactAttrType">
1816
+ <restriction base="token">
1817
+ <enumeration value="admin"/>
1818
+ <enumeration value="billing"/>
1819
+ <enumeration value="tech"/>
1820
+ </restriction>
1821
+ </simpleType>
1822
+
1823
+ <complexType name="authInfoType">
1824
+ <choice>
1825
+ <element name="pw" type="eppcom:pwAuthInfoType"/>
1826
+ <element name="ext" type="eppcom:extAuthInfoType"/>
1827
+ </choice>
1828
+ </complexType>
1829
+
1830
+ <!--
1831
+ Child element of commands that require a single name.
1832
+ -->
1833
+ <complexType name="sNameType">
1834
+ <sequence>
1835
+ <element name="name" type="eppcom:labelType"/>
1836
+ </sequence>
1837
+ </complexType>
1838
+ <!--
1839
+ Child element of commands that accept multiple names.
1840
+ -->
1841
+ <complexType name="mNameType">
1842
+ <sequence>
1843
+ <element name="name" type="eppcom:labelType"
1844
+ maxOccurs="unbounded"/>
1845
+ </sequence>
1846
+ </complexType>
1847
+
1848
+
1849
+
1850
+ Hollenbeck Standards Track [Page 33]
1851
+
1852
+ RFC 5731 EPP Domain Name Mapping August 2009
1853
+
1854
+
1855
+ <!--
1856
+ Child elements of the <info> command.
1857
+ -->
1858
+ <complexType name="infoType">
1859
+ <sequence>
1860
+ <element name="name" type="domain:infoNameType"/>
1861
+ <element name="authInfo" type="domain:authInfoType"
1862
+ minOccurs="0"/>
1863
+ </sequence>
1864
+ </complexType>
1865
+
1866
+ <complexType name="infoNameType">
1867
+ <simpleContent>
1868
+ <extension base = "eppcom:labelType">
1869
+ <attribute name="hosts" type="domain:hostsType"
1870
+ default="all"/>
1871
+ </extension>
1872
+ </simpleContent>
1873
+ </complexType>
1874
+
1875
+ <simpleType name="hostsType">
1876
+ <restriction base="token">
1877
+ <enumeration value="all"/>
1878
+ <enumeration value="del"/>
1879
+ <enumeration value="none"/>
1880
+ <enumeration value="sub"/>
1881
+ </restriction>
1882
+ </simpleType>
1883
+
1884
+ <!--
1885
+ Child elements of the <renew> command.
1886
+ -->
1887
+ <complexType name="renewType">
1888
+ <sequence>
1889
+ <element name="name" type="eppcom:labelType"/>
1890
+ <element name="curExpDate" type="date"/>
1891
+ <element name="period" type="domain:periodType"
1892
+ minOccurs="0"/>
1893
+ </sequence>
1894
+ </complexType>
1895
+
1896
+ <!--
1897
+ Child elements of the <transfer> command.
1898
+ -->
1899
+ <complexType name="transferType">
1900
+ <sequence>
1901
+ <element name="name" type="eppcom:labelType"/>
1902
+ <element name="period" type="domain:periodType"
1903
+
1904
+
1905
+
1906
+ Hollenbeck Standards Track [Page 34]
1907
+
1908
+ RFC 5731 EPP Domain Name Mapping August 2009
1909
+
1910
+
1911
+ minOccurs="0"/>
1912
+ <element name="authInfo" type="domain:authInfoType"
1913
+ minOccurs="0"/>
1914
+ </sequence>
1915
+ </complexType>
1916
+
1917
+ <!--
1918
+ Child elements of the <update> command.
1919
+ -->
1920
+ <complexType name="updateType">
1921
+ <sequence>
1922
+ <element name="name" type="eppcom:labelType"/>
1923
+ <element name="add" type="domain:addRemType"
1924
+ minOccurs="0"/>
1925
+ <element name="rem" type="domain:addRemType"
1926
+ minOccurs="0"/>
1927
+ <element name="chg" type="domain:chgType"
1928
+ minOccurs="0"/>
1929
+ </sequence>
1930
+ </complexType>
1931
+
1932
+ <!--
1933
+ Data elements that can be added or removed.
1934
+ -->
1935
+ <complexType name="addRemType">
1936
+ <sequence>
1937
+ <element name="ns" type="domain:nsType"
1938
+ minOccurs="0"/>
1939
+ <element name="contact" type="domain:contactType"
1940
+ minOccurs="0" maxOccurs="unbounded"/>
1941
+ <element name="status" type="domain:statusType"
1942
+ minOccurs="0" maxOccurs="11"/>
1943
+ </sequence>
1944
+ </complexType>
1945
+
1946
+ <!--
1947
+ Data elements that can be changed.
1948
+ -->
1949
+ <complexType name="chgType">
1950
+ <sequence>
1951
+ <element name="registrant" type="domain:clIDChgType"
1952
+ minOccurs="0"/>
1953
+ <element name="authInfo" type="domain:authInfoChgType"
1954
+ minOccurs="0"/>
1955
+ </sequence>
1956
+ </complexType>
1957
+
1958
+
1959
+
1960
+
1961
+
1962
+ Hollenbeck Standards Track [Page 35]
1963
+
1964
+ RFC 5731 EPP Domain Name Mapping August 2009
1965
+
1966
+
1967
+ <!--
1968
+ Allow the registrant value to be nullified by changing the
1969
+ minLength restriction to "0".
1970
+ -->
1971
+ <simpleType name="clIDChgType">
1972
+ <restriction base="token">
1973
+ <minLength value="0"/>
1974
+ <maxLength value="16"/>
1975
+ </restriction>
1976
+ </simpleType>
1977
+
1978
+ <!--
1979
+ Allow the authInfo value to be nullified by including an
1980
+ empty element within the choice.
1981
+ -->
1982
+ <complexType name="authInfoChgType">
1983
+ <choice>
1984
+ <element name="pw" type="eppcom:pwAuthInfoType"/>
1985
+ <element name="ext" type="eppcom:extAuthInfoType"/>
1986
+ <element name="null"/>
1987
+ </choice>
1988
+ </complexType>
1989
+
1990
+ <!--
1991
+ Child response elements.
1992
+ -->
1993
+ <element name="chkData" type="domain:chkDataType"/>
1994
+ <element name="creData" type="domain:creDataType"/>
1995
+ <element name="infData" type="domain:infDataType"/>
1996
+ <element name="panData" type="domain:panDataType"/>
1997
+ <element name="renData" type="domain:renDataType"/>
1998
+ <element name="trnData" type="domain:trnDataType"/>
1999
+
2000
+ <!--
2001
+ <check> response elements.
2002
+ -->
2003
+ <complexType name="chkDataType">
2004
+ <sequence>
2005
+ <element name="cd" type="domain:checkType"
2006
+ maxOccurs="unbounded"/>
2007
+ </sequence>
2008
+ </complexType>
2009
+
2010
+ <complexType name="checkType">
2011
+ <sequence>
2012
+ <element name="name" type="domain:checkNameType"/>
2013
+ <element name="reason" type="eppcom:reasonType"
2014
+ minOccurs="0"/>
2015
+
2016
+
2017
+
2018
+ Hollenbeck Standards Track [Page 36]
2019
+
2020
+ RFC 5731 EPP Domain Name Mapping August 2009
2021
+
2022
+
2023
+ </sequence>
2024
+ </complexType>
2025
+
2026
+ <complexType name="checkNameType">
2027
+ <simpleContent>
2028
+ <extension base="eppcom:labelType">
2029
+ <attribute name="avail" type="boolean"
2030
+ use="required"/>
2031
+ </extension>
2032
+ </simpleContent>
2033
+ </complexType>
2034
+
2035
+ <!--
2036
+ <create> response elements.
2037
+ -->
2038
+ <complexType name="creDataType">
2039
+ <sequence>
2040
+ <element name="name" type="eppcom:labelType"/>
2041
+ <element name="crDate" type="dateTime"/>
2042
+ <element name="exDate" type="dateTime"
2043
+ minOccurs="0"/>
2044
+ </sequence>
2045
+ </complexType>
2046
+
2047
+ <!--
2048
+ <info> response elements.
2049
+ -->
2050
+
2051
+ <complexType name="infDataType">
2052
+ <sequence>
2053
+ <element name="name" type="eppcom:labelType"/>
2054
+ <element name="roid" type="eppcom:roidType"/>
2055
+ <element name="status" type="domain:statusType"
2056
+ minOccurs="0" maxOccurs="11"/>
2057
+ <element name="registrant" type="eppcom:clIDType"
2058
+ minOccurs="0"/>
2059
+ <element name="contact" type="domain:contactType"
2060
+ minOccurs="0" maxOccurs="unbounded"/>
2061
+ <element name="ns" type="domain:nsType"
2062
+ minOccurs="0"/>
2063
+ <element name="host" type="eppcom:labelType"
2064
+ minOccurs="0" maxOccurs="unbounded"/>
2065
+ <element name="clID" type="eppcom:clIDType"/>
2066
+ <element name="crID" type="eppcom:clIDType"
2067
+ minOccurs="0"/>
2068
+ <element name="crDate" type="dateTime"
2069
+ minOccurs="0"/>
2070
+ <element name="upID" type="eppcom:clIDType"
2071
+
2072
+
2073
+
2074
+ Hollenbeck Standards Track [Page 37]
2075
+
2076
+ RFC 5731 EPP Domain Name Mapping August 2009
2077
+
2078
+
2079
+ minOccurs="0"/>
2080
+ <element name="upDate" type="dateTime"
2081
+ minOccurs="0"/>
2082
+ <element name="exDate" type="dateTime"
2083
+ minOccurs="0"/>
2084
+ <element name="trDate" type="dateTime"
2085
+ minOccurs="0"/>
2086
+ <element name="authInfo" type="domain:authInfoType"
2087
+ minOccurs="0"/>
2088
+ </sequence>
2089
+ </complexType>
2090
+
2091
+ <!--
2092
+ Status is a combination of attributes and an optional
2093
+ human-readable message that may be expressed in languages other
2094
+ than English.
2095
+ -->
2096
+ <complexType name="statusType">
2097
+ <simpleContent>
2098
+ <extension base="normalizedString">
2099
+ <attribute name="s" type="domain:statusValueType"
2100
+ use="required"/>
2101
+ <attribute name="lang" type="language"
2102
+ default="en"/>
2103
+ </extension>
2104
+ </simpleContent>
2105
+ </complexType>
2106
+
2107
+ <simpleType name="statusValueType">
2108
+ <restriction base="token">
2109
+ <enumeration value="clientDeleteProhibited"/>
2110
+ <enumeration value="clientHold"/>
2111
+ <enumeration value="clientRenewProhibited"/>
2112
+ <enumeration value="clientTransferProhibited"/>
2113
+ <enumeration value="clientUpdateProhibited"/>
2114
+ <enumeration value="inactive"/>
2115
+ <enumeration value="ok"/>
2116
+ <enumeration value="pendingCreate"/>
2117
+ <enumeration value="pendingDelete"/>
2118
+ <enumeration value="pendingRenew"/>
2119
+ <enumeration value="pendingTransfer"/>
2120
+ <enumeration value="pendingUpdate"/>
2121
+ <enumeration value="serverDeleteProhibited"/>
2122
+ <enumeration value="serverHold"/>
2123
+ <enumeration value="serverRenewProhibited"/>
2124
+ <enumeration value="serverTransferProhibited"/>
2125
+ <enumeration value="serverUpdateProhibited"/>
2126
+ </restriction>
2127
+
2128
+
2129
+
2130
+ Hollenbeck Standards Track [Page 38]
2131
+
2132
+ RFC 5731 EPP Domain Name Mapping August 2009
2133
+
2134
+
2135
+ </simpleType>
2136
+
2137
+ <!--
2138
+ Pending action notification response elements.
2139
+ -->
2140
+ <complexType name="panDataType">
2141
+ <sequence>
2142
+ <element name="name" type="domain:paNameType"/>
2143
+ <element name="paTRID" type="epp:trIDType"/>
2144
+ <element name="paDate" type="dateTime"/>
2145
+ </sequence>
2146
+ </complexType>
2147
+
2148
+ <complexType name="paNameType">
2149
+ <simpleContent>
2150
+ <extension base="eppcom:labelType">
2151
+ <attribute name="paResult" type="boolean"
2152
+ use="required"/>
2153
+ </extension>
2154
+ </simpleContent>
2155
+ </complexType>
2156
+
2157
+ <!--
2158
+ <renew> response elements.
2159
+ -->
2160
+ <complexType name="renDataType">
2161
+ <sequence>
2162
+ <element name="name" type="eppcom:labelType"/>
2163
+ <element name="exDate" type="dateTime"
2164
+ minOccurs="0"/>
2165
+ </sequence>
2166
+ </complexType>
2167
+
2168
+ <!--
2169
+ <transfer> response elements.
2170
+ -->
2171
+ <complexType name="trnDataType">
2172
+ <sequence>
2173
+ <element name="name" type="eppcom:labelType"/>
2174
+ <element name="trStatus" type="eppcom:trStatusType"/>
2175
+ <element name="reID" type="eppcom:clIDType"/>
2176
+ <element name="reDate" type="dateTime"/>
2177
+ <element name="acID" type="eppcom:clIDType"/>
2178
+ <element name="acDate" type="dateTime"/>
2179
+ <element name="exDate" type="dateTime"
2180
+ minOccurs="0"/>
2181
+ </sequence>
2182
+ </complexType>
2183
+
2184
+
2185
+
2186
+ Hollenbeck Standards Track [Page 39]
2187
+
2188
+ RFC 5731 EPP Domain Name Mapping August 2009
2189
+
2190
+
2191
+ <!--
2192
+ End of schema.
2193
+ -->
2194
+ </schema>
2195
+ END
2196
+
2197
+ 5. Internationalization Considerations
2198
+
2199
+ EPP is represented in XML, which provides native support for encoding
2200
+ information using the Unicode character set and its more compact
2201
+ representations including UTF-8. Conformant XML processors recognize
2202
+ both UTF-8 and UTF-16 [RFC2781]. Though XML includes provisions to
2203
+ identify and use other character encodings through use of an
2204
+ "encoding" attribute in an <?xml?> declaration, use of UTF-8 is
2205
+ RECOMMENDED in environments where parser encoding support
2206
+ incompatibility exists.
2207
+
2208
+ All date-time values presented via EPP MUST be expressed in Universal
2209
+ Coordinated Time using the Gregorian calendar. XML Schema allows use
2210
+ of time zone identifiers to indicate offsets from the zero meridian,
2211
+ but this option MUST NOT be used with EPP. The extended date-time
2212
+ form using upper case "T" and "Z" characters, defined in
2213
+ [W3C.REC-xmlschema-2-20041028], MUST be used to represent date-time
2214
+ values, as XML Schema does not support truncated date-time forms or
2215
+ lower case "T" and "Z" characters.
2216
+
2217
+ This document requires domain and host name syntax as specified in
2218
+ [RFC0952] as updated by [RFC1123]. At the time of this writing, RFC
2219
+ 3490 [RFC3490] describes a standard to use certain ASCII name labels
2220
+ to represent non-ASCII name labels. These conformance requirements
2221
+ might change as a result of progressing work in developing standards
2222
+ for internationalized domain names.
2223
+
2224
+ 6. IANA Considerations
2225
+
2226
+ This document uses URNs to describe XML namespaces and XML schemas
2227
+ conforming to a registry mechanism described in [RFC3688]. Two URI
2228
+ assignments have been registered by the IANA.
2229
+
2230
+ Registration request for the domain namespace:
2231
+
2232
+ URI: urn:ietf:params:xml:ns:domain-1.0
2233
+
2234
+ Registrant Contact: See the "Author's Address" section of this
2235
+ document.
2236
+
2237
+ XML: None. Namespace URIs do not represent an XML specification.
2238
+
2239
+
2240
+
2241
+
2242
+ Hollenbeck Standards Track [Page 40]
2243
+
2244
+ RFC 5731 EPP Domain Name Mapping August 2009
2245
+
2246
+
2247
+ Registration request for the domain XML schema:
2248
+
2249
+ URI: urn:ietf:params:xml:schema:domain-1.0
2250
+
2251
+ Registrant Contact: See the "Author's Address" section of this
2252
+ document.
2253
+
2254
+ XML: See the "Formal Syntax" section of this document.
2255
+
2256
+ 7. Security Considerations
2257
+
2258
+ Authorization information as described in Section 2.6 is REQUIRED to
2259
+ create a domain object. This information is used in some query and
2260
+ transfer operations as an additional means of determining client
2261
+ authorization to perform the command. Failure to protect
2262
+ authorization information from inadvertent disclosure can result in
2263
+ unauthorized transfer operations and unauthorized information
2264
+ release. Both client and server MUST ensure that authorization
2265
+ information is stored and exchanged with high-grade encryption
2266
+ mechanisms to provide privacy services.
2267
+
2268
+ The object mapping described in this document does not provide any
2269
+ other security services or introduce any additional considerations
2270
+ beyond those described by [RFC5730] or those caused by the protocol
2271
+ layers used by EPP.
2272
+
2273
+ 8. Acknowledgements
2274
+
2275
+ RFC 3731 is a product of the PROVREG working group, which suggested
2276
+ improvements and provided many invaluable comments. The author
2277
+ wishes to acknowledge the efforts of WG chairs Edward Lewis and Jaap
2278
+ Akkerhuis for their process and editorial contributions. RFC 4931
2279
+ and this document are individual submissions, based on the work done
2280
+ in RFC 3731.
2281
+
2282
+ Specific suggestions that have been incorporated into this document
2283
+ were provided by Joe Abley, Chris Bason, Eric Brunner-Williams,
2284
+ Jordyn Buchanan, Dave Crocker, Ayesha Damaraju, Anthony Eden, Sheer
2285
+ El-Showk, Klaus Malorny, Dan Manley, Michael Mealling, Patrick
2286
+ Mevzek, Asbjorn Steira, Bruce Tonkin, and Rick Wesson.
2287
+
2288
+
2289
+
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+ Hollenbeck Standards Track [Page 41]
2299
+
2300
+ RFC 5731 EPP Domain Name Mapping August 2009
2301
+
2302
+
2303
+ 9. References
2304
+
2305
+ 9.1. Normative References
2306
+
2307
+ [RFC0952] Harrenstien, K., Stahl, M., and E. Feinler, "DoD Internet
2308
+ host table specification", RFC 952, October 1985.
2309
+
2310
+ [RFC1123] Braden, R., "Requirements for Internet Hosts - Application
2311
+ and Support", STD 3, RFC 1123, October 1989.
2312
+
2313
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
2314
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
2315
+
2316
+ [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
2317
+ January 2004.
2318
+
2319
+ [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
2320
+ STD 69, RFC 5730, August 2009.
2321
+
2322
+ [RFC5732] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
2323
+ Host Mapping", STD 69, RFC 5732, August 2009.
2324
+
2325
+ [RFC5733] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
2326
+ Contact Mapping", STD 69, RFC 5733, August 2009.
2327
+
2328
+ [W3C.REC-xml-20040204]
2329
+ Sperberg-McQueen, C., Maler, E., Yergeau, F., Paoli, J.,
2330
+ and T. Bray, "Extensible Markup Language (XML) 1.0 (Third
2331
+ Edition)", World Wide Web Consortium FirstEdition REC-xml-
2332
+ 20040204, February 2004,
2333
+ <http://www.w3.org/TR/2004/REC-xml-20040204>.
2334
+
2335
+ [W3C.REC-xmlschema-1-20041028]
2336
+ Maloney, M., Thompson, H., Mendelsohn, N., and D. Beech,
2337
+ "XML Schema Part 1: Structures Second Edition", World Wide
2338
+ Web Consortium Recommendation REC-xmlschema-1-20041028,
2339
+ October 2004,
2340
+ <http://www.w3.org/TR/2004/REC-xmlschema-1-20041028>.
2341
+
2342
+ [W3C.REC-xmlschema-2-20041028]
2343
+ Malhotra, A. and P. Biron, "XML Schema Part 2: Datatypes
2344
+ Second Edition", World Wide Web Consortium
2345
+ Recommendation REC-xmlschema-2-20041028, October 2004,
2346
+ <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>.
2347
+
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+ Hollenbeck Standards Track [Page 42]
2355
+
2356
+ RFC 5731 EPP Domain Name Mapping August 2009
2357
+
2358
+
2359
+ 9.2. Informative References
2360
+
2361
+ [RFC2781] Hoffman, P. and F. Yergeau, "UTF-16, an encoding of ISO
2362
+ 10646", RFC 2781, February 2000.
2363
+
2364
+ [RFC3490] Faltstrom, P., Hoffman, P., and A. Costello,
2365
+ "Internationalizing Domain Names in Applications (IDNA)",
2366
+ RFC 3490, March 2003.
2367
+
2368
+ [RFC4931] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
2369
+ Domain Name Mapping", RFC 4931, May 2007.
2370
+
2371
+
2372
+
2373
+
2374
+
2375
+
2376
+
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+
2395
+
2396
+
2397
+
2398
+
2399
+
2400
+
2401
+
2402
+
2403
+
2404
+
2405
+
2406
+
2407
+
2408
+
2409
+
2410
+ Hollenbeck Standards Track [Page 43]
2411
+
2412
+ RFC 5731 EPP Domain Name Mapping August 2009
2413
+
2414
+
2415
+ Appendix A. Changes from RFC 4931
2416
+
2417
+ 1. Changed "This document obsoletes RFC 3731" to "This document
2418
+ obsoletes RFC 4931".
2419
+
2420
+ 2. Replaced references to RFC 3731 with references to 4931.
2421
+
2422
+ 3. Replaced references to RFC 4930 with references to 5730.
2423
+
2424
+ 4. Replaced references to RFC 4932 with references to 5732.
2425
+
2426
+ 5. Replaced references to RFC 4933 with references to 5733.
2427
+
2428
+ 6. Updated description of inactive status in Section 2.3.
2429
+
2430
+ 7. Fixed example host names in the Section 1.1 and Section 3.2.1
2431
+ examples.
2432
+
2433
+ 8. Changed "but such methods SHOULD NOT be used" to "but such
2434
+ methods should not be used" in Section 2.7.
2435
+
2436
+ 9. Added "Other notification methods MAY be used in addition to the
2437
+ required service message" in Section 3.2.
2438
+
2439
+ 10. Added 2201 response code text in Section 3.2.
2440
+
2441
+ 11. Added BSD license text to XML schema section.
2442
+
2443
+
2444
+ Author's Address
2445
+
2446
+ Scott Hollenbeck
2447
+ VeriSign, Inc.
2448
+ 21345 Ridgetop Circle
2449
+ Dulles, VA 20166-6503
2450
+ US
2451
+
2452
+ EMail: shollenbeck@verisign.com
2453
+
2454
+
2455
+
2456
+
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+
2466
+ Hollenbeck Standards Track [Page 44]
2467
+