epp-client-base 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1627 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+ Network Working Group S. Hollenbeck
8
+ Request for Comments: 5732 VeriSign, Inc.
9
+ STD: 69 August 2009
10
+ Obsoletes: 4932
11
+ Category: Standards Track
12
+
13
+
14
+ Extensible Provisioning Protocol (EPP) Host Mapping
15
+
16
+ Abstract
17
+
18
+ This document describes an Extensible Provisioning Protocol (EPP)
19
+ mapping for the provisioning and management of Internet host names
20
+ stored in a shared central repository. Specified in XML, the mapping
21
+ defines EPP command syntax and semantics as applied to host names.
22
+ This document obsoletes RFC 4932.
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 5732 EPP Host Mapping August 2009
61
+
62
+
63
+ Table of Contents
64
+
65
+ 1. Introduction ....................................................3
66
+ 1.1. Relationship of Host Objects and Domain Objects ............3
67
+ 1.2. Conventions Used in This Document ..........................4
68
+ 2. Object Attributes ...............................................4
69
+ 2.1. Host Names .................................................4
70
+ 2.2. Client Identifiers .........................................4
71
+ 2.3. Status Values ..............................................4
72
+ 2.4. Dates and Times ............................................6
73
+ 2.5. IP Addresses ...............................................6
74
+ 3. EPP Command Mapping .............................................6
75
+ 3.1. EPP Query Commands .........................................7
76
+ 3.1.1. EPP <check> Command .................................7
77
+ 3.1.2. EPP <info> Command ..................................9
78
+ 3.1.3. EPP <transfer> Query Command .......................11
79
+ 3.2. EPP Transform Commands ....................................11
80
+ 3.2.1. EPP <create> Command ...............................12
81
+ 3.2.2. EPP <delete> Command ...............................13
82
+ 3.2.3. EPP <renew> Command ................................15
83
+ 3.2.4. EPP <transfer> Command .............................15
84
+ 3.2.5. EPP <update> Command ...............................15
85
+ 3.3. Offline Review of Requested Actions .......................17
86
+ 4. Formal Syntax ..................................................19
87
+ 5. Internationalization Considerations ............................25
88
+ 6. IANA Considerations ............................................25
89
+ 7. Security Considerations ........................................26
90
+ 8. Acknowledgements ...............................................26
91
+ 9. References .....................................................26
92
+ 9.1. Normative References ......................................26
93
+ 9.2. Informative References ....................................27
94
+ Appendix A. Changes from RFC 4932 ................................29
95
+
96
+
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 5732 EPP Host Mapping August 2009
117
+
118
+
119
+ 1. Introduction
120
+
121
+ This document describes an Internet host name mapping for version 1.0
122
+ 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 4932 [RFC4932].
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 Host Objects and Domain Objects
138
+
139
+ This document assumes that host name objects have a subordinate
140
+ relationship to a superordinate domain name object. For example,
141
+ host name "ns1.example.com" has a subordinate relationship to domain
142
+ name "example.com". EPP actions (such as object transfers) that do
143
+ not preserve this relationship MUST be explicitly disallowed.
144
+
145
+ A host name object can be created in a repository for which no
146
+ superordinate domain name object exists. For example, host name
147
+ "ns1.example.com" can be created in the ".example" repository so that
148
+ DNS domains in ".example" can be delegated to the host. Such hosts
149
+ are described as "external" hosts in this specification since the
150
+ name of the host does not belong to the namespace of the repository
151
+ in which the host is being used for delegation purposes.
152
+
153
+ Whether a host is external or internal relates to the repository in
154
+ which the host is being used for delegation purposes. An internal
155
+ host is subordinate if the name of the host belongs to the domain
156
+ within the repository in which the host is being used for delegation
157
+ purposes. 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
+
165
+
166
+
167
+
168
+
169
+
170
+ Hollenbeck Standards Track [Page 3]
171
+
172
+ RFC 5732 EPP Host Mapping August 2009
173
+
174
+
175
+ 1.2. Conventions Used in This Document
176
+
177
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
178
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
179
+ document are to be interpreted as described in [RFC2119].
180
+
181
+ In examples, "C:" represents lines sent by a protocol client and "S:"
182
+ represents lines returned by a protocol server. Indentation and
183
+ white space in examples are provided only to illustrate element
184
+ relationships and are not a REQUIRED feature of this protocol.
185
+
186
+ 2. Object Attributes
187
+
188
+ An EPP host object has attributes and associated values that can be
189
+ viewed and modified by the sponsoring client or the server. This
190
+ section describes each attribute type in detail. The formal syntax
191
+ for the attribute values described here can be found in the "Formal
192
+ Syntax" section of this document and in the appropriate normative
193
+ references.
194
+
195
+ 2.1. Host Names
196
+
197
+ The syntax for host names described in this document MUST conform to
198
+ [RFC0952] as updated by [RFC1123]. At the time of this writing, RFC
199
+ 3490 [RFC3490] describes a standard to use certain ASCII name labels
200
+ to represent non-ASCII name labels. These conformance requirements
201
+ might change in the future as a result of progressing work in
202
+ developing standards for internationalized host names.
203
+
204
+ 2.2. Client Identifiers
205
+
206
+ All EPP clients are identified by a server-unique identifier. Client
207
+ identifiers conform to the "clIDType" syntax described in [RFC5730].
208
+
209
+ 2.3. Status Values
210
+
211
+ A host object MUST always have at least one associated status value.
212
+ Status values MAY be set only by the client that sponsors a host
213
+ object and by the server on which the object resides. A client can
214
+ change the status of a host object using the EPP <update> command.
215
+ Each status value MAY be accompanied by a string of human-readable
216
+ text that describes the rationale for the status applied to the
217
+ object.
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+ Hollenbeck Standards Track [Page 4]
227
+
228
+ RFC 5732 EPP Host Mapping August 2009
229
+
230
+
231
+ A client MUST NOT alter status values set by the server. A server
232
+ MAY alter or override status values set by a client, subject to local
233
+ server policies. The status of an object MAY change as a result of
234
+ either a client-initiated transform command or an action performed by
235
+ a server operator.
236
+
237
+ Status values that can be added or removed by a client are prefixed
238
+ with "client". Corresponding status values that can be added or
239
+ removed by a server are prefixed with "server". Status values that
240
+ do not begin with either "client" or "server" are server-managed.
241
+
242
+ Status Value Descriptions:
243
+
244
+ - clientDeleteProhibited, serverDeleteProhibited
245
+
246
+ Requests to delete the object MUST be rejected.
247
+
248
+ - clientUpdateProhibited, serverUpdateProhibited
249
+
250
+ Requests to update the object (other than to remove this status)
251
+ MUST be rejected.
252
+
253
+ - linked
254
+
255
+ The host object has at least one active association with another
256
+ object, such as a domain object. Servers SHOULD provide services
257
+ to determine existing object associations.
258
+
259
+ - ok
260
+
261
+ This is the normal status value for an object that has no pending
262
+ operations or prohibitions. This value is set and removed by the
263
+ server as other status values are added or removed.
264
+
265
+ - pendingCreate, pendingDelete, pendingTransfer, pendingUpdate
266
+
267
+ A transform command has been processed for the object (or in the
268
+ case of a <transfer> command, for the host object's superordinate
269
+ domain object), but the action has not been completed by the
270
+ server. Server operators can delay action completion for a
271
+ variety of reasons, such as to allow for human review or third-
272
+ party action. A transform command that is processed, but whose
273
+ requested action is pending, is noted with response code 1001.
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+ Hollenbeck Standards Track [Page 5]
283
+
284
+ RFC 5732 EPP Host Mapping August 2009
285
+
286
+
287
+ When the requested action has been completed, the pendingCreate,
288
+ pendingDelete, pendingTransfer, or pendingUpdate status value MUST be
289
+ removed. All clients involved in the transaction MUST be notified
290
+ using a service message that the action has been completed and that
291
+ the status of the object has changed.
292
+
293
+ "ok" status MAY only be combined with "linked" status.
294
+
295
+ "linked" status MAY be combined with any status.
296
+
297
+ "pendingDelete" status MUST NOT be combined with either
298
+ "clientDeleteProhibited" or "serverDeleteProhibited" status.
299
+
300
+ "pendingUpdate" status MUST NOT be combined with either
301
+ "clientUpdateProhibited" or "serverUpdateProhibited" status.
302
+
303
+ The pendingCreate, pendingDelete, pendingTransfer, and pendingUpdate
304
+ status values MUST NOT be combined with each other.
305
+
306
+ Other status combinations not expressly prohibited MAY be used.
307
+
308
+ 2.4. Dates and Times
309
+
310
+ Date and time attribute values MUST be represented in Universal
311
+ Coordinated Time (UTC) using the Gregorian calendar. The extended
312
+ date-time form using upper case "T" and "Z" characters defined in
313
+ [W3C.REC-xmlschema-2-20041028] MUST be used to represent date-time
314
+ values, as XML Schema does not support truncated date-time forms or
315
+ lower case "T" and "Z" characters.
316
+
317
+ 2.5. IP Addresses
318
+
319
+ The syntax for IPv4 addresses described in this document MUST conform
320
+ to [RFC0791]. The syntax for IPv6 addresses described in this
321
+ document MUST conform to [RFC4291]. Practical considerations for
322
+ publishing IPv6 address information in zone files are documented in
323
+ [RFC2874] and [RFC3596]. A server MAY reject IP addresses that have
324
+ not been allocated for public use by IANA. When a host object is
325
+ provisioned for use as a DNS name server, IP addresses SHOULD be
326
+ required only as needed to generate DNS glue records.
327
+
328
+ 3. EPP Command Mapping
329
+
330
+ A detailed description of the EPP syntax and semantics can be found
331
+ in [RFC5730]. The command mappings described here are specifically
332
+ for use in provisioning and managing Internet host names via EPP.
333
+
334
+
335
+
336
+
337
+
338
+ Hollenbeck Standards Track [Page 6]
339
+
340
+ RFC 5732 EPP Host Mapping August 2009
341
+
342
+
343
+ 3.1. EPP Query Commands
344
+
345
+ EPP provides two commands to retrieve host information: <check> to
346
+ determine if a host object can be provisioned within a repository,
347
+ and <info> to retrieve detailed information associated with a host
348
+ object.
349
+
350
+ 3.1.1. EPP <check> Command
351
+
352
+ The EPP <check> command is used to determine if an object can be
353
+ provisioned within a repository. It provides a hint that allows a
354
+ client to anticipate the success or failure of provisioning an object
355
+ using the <create> command, as object-provisioning requirements are
356
+ ultimately a matter of server policy.
357
+
358
+ In addition to the standard EPP command elements, the <check> command
359
+ MUST contain a <host:check> element that identifies the host
360
+ namespace. The <host:check> element contains the following child
361
+ elements:
362
+
363
+ - One or more <host:name> elements that contain the fully qualified
364
+ names of the host objects to be queried.
365
+
366
+ Example <check> command:
367
+
368
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
369
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
370
+ C: <command>
371
+ C: <check>
372
+ C: <host:check
373
+ C: xmlns:host="urn:ietf:params:xml:ns:host-1.0">
374
+ C: <host:name>ns1.example.com</host:name>
375
+ C: <host:name>ns2.example.com</host:name>
376
+ C: <host:name>ns3.example.com</host:name>
377
+ C: </host:check>
378
+ C: </check>
379
+ C: <clTRID>ABC-12345</clTRID>
380
+ C: </command>
381
+ C:</epp>
382
+
383
+ When a <check> command has been processed successfully, the EPP
384
+ <resData> element MUST contain a child <host:chkData> element that
385
+ identifies the host namespace. The <host:chkData> element contains
386
+ one or more <host:cd> elements that contain the following child
387
+ elements:
388
+
389
+
390
+
391
+
392
+
393
+
394
+ Hollenbeck Standards Track [Page 7]
395
+
396
+ RFC 5732 EPP Host Mapping August 2009
397
+
398
+
399
+ - A <host:name> element that contains the fully qualified name of
400
+ the queried host object. This element MUST contain an "avail"
401
+ attribute whose value indicates object availability (can it be
402
+ provisioned or not) at the moment the <check> command was
403
+ completed. A value of "1" or "true" means that the object can be
404
+ provisioned. A value of "0" or "false" means that the object
405
+ cannot be provisioned.
406
+
407
+ - An OPTIONAL <host:reason> element that MAY be provided when an
408
+ object cannot be provisioned. If present, this element contains
409
+ server-specific text to help explain why the object cannot be
410
+ provisioned. This text MUST be represented in the response
411
+ language previously negotiated with the client; an OPTIONAL "lang"
412
+ attribute MAY be present to identify the language if the
413
+ negotiated value is something other than the default value of "en"
414
+ (English).
415
+
416
+ Example <check> response:
417
+
418
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
419
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
420
+ S: <response>
421
+ S: <result code="1000">
422
+ S: <msg>Command completed successfully</msg>
423
+ S: </result>
424
+ S: <resData>
425
+ S: <host:chkData
426
+ S: xmlns:host="urn:ietf:params:xml:ns:host-1.0">
427
+ S: <host:cd>
428
+ S: <host:name avail="1">ns1.example.com</host:name>
429
+ S: </host:cd>
430
+ S: <host:cd>
431
+ S: <host:name avail="0">ns2.example2.com</host:name>
432
+ S: <host:reason>In use</host:reason>
433
+ S: </host:cd>
434
+ S: <host:cd>
435
+ S: <host:name avail="1">ns3.example3.com</host:name>
436
+ S: </host:cd>
437
+ S: </host:chkData>
438
+ S: </resData>
439
+ S: <trID>
440
+ S: <clTRID>ABC-12345</clTRID>
441
+ S: <svTRID>54322-XYZ</svTRID>
442
+ S: </trID>
443
+ S: </response>
444
+ S:</epp>
445
+
446
+
447
+
448
+
449
+
450
+ Hollenbeck Standards Track [Page 8]
451
+
452
+ RFC 5732 EPP Host Mapping August 2009
453
+
454
+
455
+ An EPP error response MUST be returned if a <check> command cannot be
456
+ processed for any reason.
457
+
458
+ 3.1.2. EPP <info> Command
459
+
460
+ The EPP <info> command is used to retrieve information associated
461
+ with a host object. In addition to the standard EPP command
462
+ elements, the <info> command MUST contain a <host:info> element that
463
+ identifies the host namespace. The <host:info> element contains the
464
+ following child elements:
465
+
466
+ - A <host:name> element that contains the fully qualified name of
467
+ the host object for which information is requested.
468
+
469
+ Example <info> command:
470
+
471
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
472
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
473
+ C: <command>
474
+ C: <info>
475
+ C: <host:info
476
+ C: xmlns:host="urn:ietf:params:xml:ns:host-1.0">
477
+ C: <host:name>ns1.example.com</host:name>
478
+ C: </host:info>
479
+ C: </info>
480
+ C: <clTRID>ABC-12345</clTRID>
481
+ C: </command>
482
+ C:</epp>
483
+
484
+ When an <info> command has been processed successfully, the EPP
485
+ <resData> element MUST contain a child <host:infData> element that
486
+ identifies the host namespace. The <host:infData> element contains
487
+ the following child elements:
488
+
489
+ - A <host:name> element that contains the fully qualified name of
490
+ the host object.
491
+
492
+ - A <host:roid> element that contains the Repository Object
493
+ IDentifier assigned to the host object when the object was
494
+ created.
495
+
496
+ - One or more <host:status> elements that describe the status of the
497
+ host object.
498
+
499
+ - Zero or more <host:addr> elements that contain the IP addresses
500
+ associated with the host object.
501
+
502
+
503
+
504
+
505
+
506
+ Hollenbeck Standards Track [Page 9]
507
+
508
+ RFC 5732 EPP Host Mapping August 2009
509
+
510
+
511
+ - A <host:clID> element that contains the identifier of the
512
+ sponsoring client.
513
+
514
+ - A <host:crID> element that contains the identifier of the client
515
+ that created the host object.
516
+
517
+ - A <host:crDate> element that contains the date and time of host-
518
+ object creation.
519
+
520
+ - A <host:upID> element that contains the identifier of the client
521
+ that last updated the host object. This element MUST NOT be
522
+ present if the host object has never been modified.
523
+
524
+ - A <host:upDate> element that contains the date and time of the
525
+ most recent host-object modification. This element MUST NOT be
526
+ present if the host object has never been modified.
527
+
528
+ - A <host:trDate> element that contains the date and time of the
529
+ most recent successful host-object transfer. This element MUST
530
+ NOT be provided if the host object has never been transferred.
531
+ Note that host objects MUST NOT be transferred directly; host
532
+ objects MUST be transferred implicitly when the host object's
533
+ superordinate domain object is transferred. Host objects that are
534
+ subject to transfer when transferring a domain object are listed
535
+ in the response to an EPP <info> command performed on the domain
536
+ object.
537
+
538
+ Example <info> response:
539
+
540
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
541
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
542
+ S: <response>
543
+ S: <result code="1000">
544
+ S: <msg>Command completed successfully</msg>
545
+ S: </result>
546
+ S: <resData>
547
+ S: <host:infData
548
+ S: xmlns:host="urn:ietf:params:xml:ns:host-1.0">
549
+ S: <host:name>ns1.example.com</host:name>
550
+ S: <host:roid>NS1_EXAMPLE1-REP</host:roid>
551
+ S: <host:status s="linked"/>
552
+ S: <host:status s="clientUpdateProhibited"/>
553
+ S: <host:addr ip="v4">192.0.2.2</host:addr>
554
+ S: <host:addr ip="v4">192.0.2.29</host:addr>
555
+ S: <host:addr ip="v6">1080:0:0:0:8:800:200C:417A</host:addr>
556
+ S: <host:clID>ClientY</host:clID>
557
+ S: <host:crID>ClientX</host:crID>
558
+ S: <host:crDate>1999-04-03T22:00:00.0Z</host:crDate>
559
+
560
+
561
+
562
+ Hollenbeck Standards Track [Page 10]
563
+
564
+ RFC 5732 EPP Host Mapping August 2009
565
+
566
+
567
+ S: <host:upID>ClientX</host:upID>
568
+ S: <host:upDate>1999-12-03T09:00:00.0Z</host:upDate>
569
+ S: <host:trDate>2000-04-08T09:00:00.0Z</host:trDate>
570
+ S: </host:infData>
571
+ S: </resData>
572
+ S: <trID>
573
+ S: <clTRID>ABC-12345</clTRID>
574
+ S: <svTRID>54322-XYZ</svTRID>
575
+ S: </trID>
576
+ S: </response>
577
+ S:</epp>
578
+
579
+ An EPP error response MUST be returned if an <info> command cannot be
580
+ processed for any reason.
581
+
582
+ 3.1.3. EPP <transfer> Query Command
583
+
584
+ Transfer semantics do not directly apply to host objects, so there is
585
+ no mapping defined for the EPP <transfer> query command.
586
+
587
+ 3.2. EPP Transform Commands
588
+
589
+ EPP provides three commands to transform host objects: <create> to
590
+ create an instance of a host object, <delete> to delete an instance
591
+ of a host object, and <update> to change information associated with
592
+ a host object. This document does not define host-object mappings
593
+ for the EPP <renew> and <transfer> commands.
594
+
595
+ Transform commands are typically processed and completed in real
596
+ time. Server operators MAY receive and process transform commands
597
+ but defer completing the requested action if human or third-party
598
+ review is required before the requested action can be completed. In
599
+ such situations, the server MUST return a 1001 response code to the
600
+ client to note that the command has been received and processed but
601
+ that the requested action is pending. The server MUST also manage
602
+ the status of the object that is the subject of the command to
603
+ reflect the initiation and completion of the requested action. Once
604
+ the action has been completed, all clients involved in the
605
+ transaction MUST be notified using a service message that the action
606
+ has been completed and that the status of the object has changed.
607
+ Other notification methods MAY be used in addition to the required
608
+ service message.
609
+
610
+ Server operators SHOULD confirm that a client is authorized to
611
+ perform a transform command on a given object. Any attempt to
612
+ transform an object by an unauthorized client MUST be rejected, and
613
+ the server MUST return a 2201 response code to the client to note
614
+ that the client lacks privileges to execute the requested command.
615
+
616
+
617
+
618
+ Hollenbeck Standards Track [Page 11]
619
+
620
+ RFC 5732 EPP Host Mapping August 2009
621
+
622
+
623
+ 3.2.1. EPP <create> Command
624
+
625
+ The EPP <create> command provides a transform operation that allows a
626
+ client to create a host object. In addition to the standard EPP
627
+ command elements, the <create> command MUST contain a <host:create>
628
+ element that identifies the host namespace. The <host:create>
629
+ element contains the following child elements:
630
+
631
+ - A <host:name> element that contains the fully qualified name of
632
+ the host object to be created.
633
+
634
+ - Zero or more <host:addr> elements that contain the IP addresses to
635
+ be associated with the host. Each element MAY contain an "ip"
636
+ attribute to identify the IP address format. Attribute value "v4"
637
+ is used to note IPv4 address format. Attribute value "v6" is used
638
+ to note IPv6 address format. If the "ip" attribute is not
639
+ specified, "v4" is the default attribute value.
640
+
641
+ Hosts can be provisioned for use as name servers in the Domain Name
642
+ System (DNS), described in [RFC1034] and [RFC1035]. Hosts
643
+ provisioned as name servers might be subject to server-operator
644
+ policies that require or prohibit specification of IP addresses,
645
+ depending on the name of the host and the namespace in which the
646
+ server will be used as a name server. When provisioned for use as a
647
+ name server, IP addresses are REQUIRED only as needed to produce DNS
648
+ glue records. For example, if the server is authoritative for the
649
+ "com" namespace and the name of the server is "ns1.example.net", the
650
+ server is not required to produce DNS glue records for the name
651
+ server, and IP addresses for the server are not required by the DNS.
652
+
653
+ If the host name exists in a namespace for which the server is
654
+ authoritative, then the superordinate domain of the host MUST be
655
+ known to the server before the host object can be created.
656
+
657
+ Example <create> command:
658
+
659
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
660
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
661
+ C: <command>
662
+ C: <create>
663
+ C: <host:create
664
+ C: xmlns:host="urn:ietf:params:xml:ns:host-1.0">
665
+ C: <host:name>ns1.example.com</host:name>
666
+ C: <host:addr ip="v4">192.0.2.2</host:addr>
667
+ C: <host:addr ip="v4">192.0.2.29</host:addr>
668
+ C: <host:addr ip="v6">1080:0:0:0:8:800:200C:417A</host:addr>
669
+ C: </host:create>
670
+ C: </create>
671
+
672
+
673
+
674
+ Hollenbeck Standards Track [Page 12]
675
+
676
+ RFC 5732 EPP Host Mapping August 2009
677
+
678
+
679
+ C: <clTRID>ABC-12345</clTRID>
680
+ C: </command>
681
+ C:</epp>
682
+
683
+ When a <create> command has been processed successfully, the EPP
684
+ <resData> element MUST contain a child <host:creData> element that
685
+ identifies the host namespace. The <host:creData> element contains
686
+ the following child elements:
687
+
688
+ - A <host:name> element that contains the fully qualified name of
689
+ the host object.
690
+
691
+ - A <host:crDate> element that contains the date and time of host-
692
+ object creation.
693
+
694
+ Example <create> response:
695
+
696
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
697
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
698
+ S: <response>
699
+ S: <result code="1000">
700
+ S: <msg>Command completed successfully</msg>
701
+ S: </result>
702
+ S: <resData>
703
+ S: <host:creData
704
+ S: xmlns:host="urn:ietf:params:xml:ns:host-1.0">
705
+ S: <host:name>ns1.example.com</host:name>
706
+ S: <host:crDate>1999-04-03T22:00:00.0Z</host:crDate>
707
+ S: </host:creData>
708
+ S: </resData>
709
+ S: <trID>
710
+ S: <clTRID>ABC-12345</clTRID>
711
+ S: <svTRID>54322-XYZ</svTRID>
712
+ S: </trID>
713
+ S: </response>
714
+ S:</epp>
715
+
716
+ An EPP error response MUST be returned if a <create> command cannot
717
+ be processed for any reason.
718
+
719
+ 3.2.2. EPP <delete> Command
720
+
721
+ The EPP <delete> command provides a transform operation that allows a
722
+ client to delete a host object. In addition to the standard EPP
723
+ command elements, the <delete> command MUST contain a <host:delete>
724
+ element that identifies the host namespace. The <host:delete>
725
+ element contains the following child elements:
726
+
727
+
728
+
729
+
730
+ Hollenbeck Standards Track [Page 13]
731
+
732
+ RFC 5732 EPP Host Mapping August 2009
733
+
734
+
735
+ - A <host:name> element that contains the fully qualified name of
736
+ the host object to be deleted.
737
+
738
+ A host name object SHOULD NOT be deleted if the host object is
739
+ associated with any other object. For example, if the host object is
740
+ associated with a domain object, the host object SHOULD NOT be
741
+ deleted until the existing association has been broken. Deleting a
742
+ host object without first breaking existing associations can cause
743
+ DNS resolution failure for domain objects that refer to the deleted
744
+ host object.
745
+
746
+ Example <delete> command:
747
+
748
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
749
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
750
+ C: <command>
751
+ C: <delete>
752
+ C: <host:delete
753
+ C: xmlns:host="urn:ietf:params:xml:ns:host-1.0">
754
+ C: <host:name>ns1.example.com</host:name>
755
+ C: </host:delete>
756
+ C: </delete>
757
+ C: <clTRID>ABC-12345</clTRID>
758
+ C: </command>
759
+ C:</epp>
760
+
761
+ When a <delete> command has been processed successfully, a server
762
+ MUST respond with an EPP response with no <resData> element.
763
+
764
+ Example <delete> response:
765
+
766
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
767
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
768
+ S: <response>
769
+ S: <result code="1000">
770
+ S: <msg>Command completed successfully</msg>
771
+ S: </result>
772
+ S: <trID>
773
+ S: <clTRID>ABC-12345</clTRID>
774
+ S: <svTRID>54321-XYZ</svTRID>
775
+ S: </trID>
776
+ S: </response>
777
+ S:</epp>
778
+
779
+ An EPP error response MUST be returned if a <delete> command cannot
780
+ be processed for any reason.
781
+
782
+
783
+
784
+
785
+
786
+ Hollenbeck Standards Track [Page 14]
787
+
788
+ RFC 5732 EPP Host Mapping August 2009
789
+
790
+
791
+ 3.2.3. EPP <renew> Command
792
+
793
+ Renewal semantics do not apply to host objects, so there is no
794
+ mapping defined for the EPP <renew> command.
795
+
796
+ 3.2.4. EPP <transfer> Command
797
+
798
+ Transfer semantics do not directly apply to host objects, so there is
799
+ no mapping defined for the EPP <transfer> command. Host objects are
800
+ subordinate to an existing superordinate domain object and, as such,
801
+ they are subject to transfer when a domain object is transferred.
802
+
803
+ 3.2.5. EPP <update> Command
804
+
805
+ The EPP <update> command provides a transform operation that allows a
806
+ client to modify the attributes of a host object. In addition to the
807
+ standard EPP command elements, the <update> command MUST contain a
808
+ <host:update> element that identifies the host namespace. The <host:
809
+ update> element contains the following child elements:
810
+
811
+ - A <host:name> element that contains the fully qualified name of
812
+ the host object to be updated.
813
+
814
+ - An OPTIONAL <host:add> element that contains attribute values to
815
+ be added to the object.
816
+
817
+ - An OPTIONAL <host:rem> element that contains attribute values to
818
+ be removed from the object.
819
+
820
+ - An OPTIONAL <host:chg> element that contains object attribute
821
+ values to be changed.
822
+
823
+ At least one <host:add>, <host:rem>, or <host:chg> element MUST be
824
+ provided if the command is not being extended. All of these elements
825
+ MAY be omitted if an <update> extension is present. The <host:add>
826
+ and <host:rem> elements contain the following child elements:
827
+
828
+ - One or more <host:addr> elements that contain IP addresses to be
829
+ associated with or removed from the host object. IP address
830
+ restrictions described in the <create> command mapping apply here
831
+ as well.
832
+
833
+ - One or more <host:status> elements that contain status values to
834
+ be associated with or removed from the object. When specifying a
835
+ value to be removed, only the attribute value is significant;
836
+ element text is not required to match a value for removal.
837
+
838
+
839
+
840
+
841
+
842
+ Hollenbeck Standards Track [Page 15]
843
+
844
+ RFC 5732 EPP Host Mapping August 2009
845
+
846
+
847
+ A <host:chg> element contains the following child elements:
848
+
849
+ - A <host:name> element that contains a new fully qualified host
850
+ name by which the host object will be known.
851
+
852
+ Host name changes MAY require the addition or removal of IP addresses
853
+ to be accepted by the server. IP address association MAY be subject
854
+ to server policies for provisioning hosts as name servers.
855
+
856
+ Host name changes can have an impact on associated objects that refer
857
+ to the host object. A host name change SHOULD NOT require additional
858
+ updates of associated objects to preserve existing associations, with
859
+ one exception: changing an external host object that has associations
860
+ with objects that are sponsored by a different client. Attempts to
861
+ update such hosts directly MUST fail with EPP error code 2305. The
862
+ change can be provisioned by creating a new external host with a new
863
+ name and any needed new attributes, and subsequently updating the
864
+ other objects sponsored by the client.
865
+
866
+ Example <update> command:
867
+
868
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
869
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
870
+ C: <command>
871
+ C: <update>
872
+ C: <host:update
873
+ C: xmlns:host="urn:ietf:params:xml:ns:host-1.0">
874
+ C: <host:name>ns1.example.com</host:name>
875
+ C: <host:add>
876
+ C: <host:addr ip="v4">192.0.2.22</host:addr>
877
+ C: <host:status s="clientUpdateProhibited"/>
878
+ C: </host:add>
879
+ C: <host:rem>
880
+ C: <host:addr ip="v6">1080:0:0:0:8:800:200C:417A</host:addr>
881
+ C: </host:rem>
882
+ C: <host:chg>
883
+ C: <host:name>ns2.example.com</host:name>
884
+ C: </host:chg>
885
+ C: </host:update>
886
+ C: </update>
887
+ C: <clTRID>ABC-12345</clTRID>
888
+ C: </command>
889
+ C:</epp>
890
+
891
+ When an <update> command has been processed successfully, a server
892
+ MUST respond with an EPP response with no <resData> element.
893
+
894
+
895
+
896
+
897
+
898
+ Hollenbeck Standards Track [Page 16]
899
+
900
+ RFC 5732 EPP Host Mapping August 2009
901
+
902
+
903
+ Example <update> response:
904
+
905
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
906
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
907
+ S: <response>
908
+ S: <result code="1000">
909
+ S: <msg>Command completed successfully</msg>
910
+ S: </result>
911
+ S: <trID>
912
+ S: <clTRID>ABC-12345</clTRID>
913
+ S: <svTRID>54321-XYZ</svTRID>
914
+ S: </trID>
915
+ S: </response>
916
+ S:</epp>
917
+
918
+ An EPP error response MUST be returned if an <update> command could
919
+ not be processed for any reason.
920
+
921
+ 3.3. Offline Review of Requested Actions
922
+
923
+ Commands are processed by a server in the order they are received
924
+ from a client. Though an immediate response confirming receipt and
925
+ processing of the command is produced by the server, a server
926
+ operator MAY perform an offline review of requested transform
927
+ commands before completing the requested action. In such situations,
928
+ the response from the server MUST clearly note that the transform
929
+ command has been received and processed, but the requested action is
930
+ pending. The status of the corresponding object MUST clearly reflect
931
+ processing of the pending action. The server MUST notify the client
932
+ when offline processing of the action has been completed.
933
+
934
+ Examples describing a <create> command that requires offline review
935
+ are included here. Note the result code and message returned in
936
+ response to the <create> command.
937
+
938
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
939
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
940
+ S: <response>
941
+ S: <result code="1001">
942
+ S: <msg>Command completed successfully; action pending</msg>
943
+ S: </result>
944
+ S: <resData>
945
+ S: <host:creData
946
+ S: xmlns:host="urn:ietf:params:xml:ns:host-1.0">
947
+ S: <host:name>ns1.example.com</host:name>
948
+ S: <host:crDate>1999-04-03T22:00:00.0Z</host:crDate>
949
+ S: </host:creData>
950
+ S: </resData>
951
+
952
+
953
+
954
+ Hollenbeck Standards Track [Page 17]
955
+
956
+ RFC 5732 EPP Host Mapping August 2009
957
+
958
+
959
+ S: <trID>
960
+ S: <clTRID>ABC-12345</clTRID>
961
+ S: <svTRID>54322-XYZ</svTRID>
962
+ S: </trID>
963
+ S: </response>
964
+ S:</epp>
965
+
966
+ The status of the host object after returning this response MUST
967
+ include "pendingCreate". The server operator reviews the request
968
+ offline and informs the client of the outcome of the review either by
969
+ queuing a service message for retrieval via the <poll> command or by
970
+ using an out-of-band mechanism to inform the client of the request.
971
+
972
+ The service message MUST contain text that describes the notification
973
+ in the child <msg> element of the response <msgQ> element. In
974
+ addition, the EPP <resData> element MUST contain a child <host:
975
+ panData> element that identifies the host namespace. The <host:
976
+ panData> element contains the following child elements:
977
+
978
+ - A <host:name> element that contains the fully qualified name of
979
+ the host object. The <host:name> element contains a REQUIRED
980
+ "paResult" attribute. A positive boolean value indicates that the
981
+ request has been approved and completed. A negative boolean value
982
+ indicates that the request has been denied and the requested
983
+ action has not been taken.
984
+
985
+ - A <host:paTRID> element that contains the client transaction
986
+ identifier and server transaction identifier returned with the
987
+ original response to process the command. The client transaction
988
+ identifier is OPTIONAL and will only be returned if the client
989
+ provided an identifier with the original <create> command.
990
+
991
+ - A <host:paDate> element that contains the date and time describing
992
+ when review of the requested action was completed.
993
+
994
+ Example "review completed" service message:
995
+
996
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
997
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
998
+ S: <response>
999
+ S: <result code="1301">
1000
+ S: <msg>Command completed successfully; ack to dequeue</msg>
1001
+ S: </result>
1002
+ S: <msgQ count="5" id="12345">
1003
+ S: <qDate>1999-04-04T22:01:00.0Z</qDate>
1004
+ S: <msg>Pending action completed successfully.</msg>
1005
+ S: </msgQ>
1006
+ S: <resData>
1007
+
1008
+
1009
+
1010
+ Hollenbeck Standards Track [Page 18]
1011
+
1012
+ RFC 5732 EPP Host Mapping August 2009
1013
+
1014
+
1015
+ S: <host:panData
1016
+ S: xmlns:host="urn:ietf:params:xml:ns:host-1.0">
1017
+ S: <host:name paResult="1">ns1.example.com</host:name>
1018
+ S: <host:paTRID>
1019
+ S: <clTRID>ABC-12345</clTRID>
1020
+ S: <svTRID>54322-XYZ</svTRID>
1021
+ S: </host:paTRID>
1022
+ S: <host:paDate>1999-04-04T22:00:00.0Z</host:paDate>
1023
+ S: </host:panData>
1024
+ S: </resData>
1025
+ S: <trID>
1026
+ S: <clTRID>BCD-23456</clTRID>
1027
+ S: <svTRID>65432-WXY</svTRID>
1028
+ S: </trID>
1029
+ S: </response>
1030
+ S:</epp>
1031
+
1032
+ 4. Formal Syntax
1033
+
1034
+ An EPP object mapping is specified in XML Schema notation. The
1035
+ formal syntax presented here is a complete schema representation of
1036
+ the object mapping suitable for automated validation of EPP XML
1037
+ instances. The BEGIN and END tags are not part of the schema; they
1038
+ are used to note the beginning and ending of the schema for URI
1039
+ registration purposes.
1040
+
1041
+ Copyright (c) 2009 IETF Trust and the persons identified as authors
1042
+ of the code. All rights reserved.
1043
+
1044
+ Redistribution and use in source and binary forms, with or without
1045
+ modification, are permitted provided that the following conditions
1046
+ are met:
1047
+
1048
+ o Redistributions of source code must retain the above copyright
1049
+ notice, this list of conditions and the following disclaimer.
1050
+
1051
+ o Redistributions in binary form must reproduce the above copyright
1052
+ notice, this list of conditions and the following disclaimer in
1053
+ the documentation and/or other materials provided with the
1054
+ distribution.
1055
+
1056
+ o Neither the name of Internet Society, IETF or IETF Trust, nor the
1057
+ names of specific contributors, may be used to endorse or promote
1058
+ products derived from this software without specific prior written
1059
+ permission.
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+ Hollenbeck Standards Track [Page 19]
1067
+
1068
+ RFC 5732 EPP Host Mapping August 2009
1069
+
1070
+
1071
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1072
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1073
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1074
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1075
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1076
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1077
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1078
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1079
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1080
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1081
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1082
+
1083
+ BEGIN
1084
+ <?xml version="1.0" encoding="UTF-8"?>
1085
+
1086
+ <schema targetNamespace="urn:ietf:params:xml:ns:host-1.0"
1087
+ xmlns:host="urn:ietf:params:xml:ns:host-1.0"
1088
+ xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
1089
+ xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
1090
+ xmlns="http://www.w3.org/2001/XMLSchema"
1091
+ elementFormDefault="qualified">
1092
+
1093
+ <!--
1094
+ Import common element types.
1095
+ -->
1096
+ <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>
1097
+ <import namespace="urn:ietf:params:xml:ns:epp-1.0"/>
1098
+
1099
+ <annotation>
1100
+ <documentation>
1101
+ Extensible Provisioning Protocol v1.0
1102
+ host provisioning schema.
1103
+ </documentation>
1104
+ </annotation>
1105
+
1106
+ <!--
1107
+ Child elements found in EPP commands.
1108
+ -->
1109
+ <element name="check" type="host:mNameType"/>
1110
+ <element name="create" type="host:createType"/>
1111
+ <element name="delete" type="host:sNameType"/>
1112
+ <element name="info" type="host:sNameType"/>
1113
+ <element name="update" type="host:updateType"/>
1114
+
1115
+ <!--
1116
+ Child elements of the <create> command.
1117
+ -->
1118
+ <complexType name="createType">
1119
+
1120
+
1121
+
1122
+ Hollenbeck Standards Track [Page 20]
1123
+
1124
+ RFC 5732 EPP Host Mapping August 2009
1125
+
1126
+
1127
+ <sequence>
1128
+ <element name="name" type="eppcom:labelType"/>
1129
+ <element name="addr" type="host:addrType"
1130
+ minOccurs="0" maxOccurs="unbounded"/>
1131
+ </sequence>
1132
+ </complexType>
1133
+
1134
+ <complexType name="addrType">
1135
+ <simpleContent>
1136
+ <extension base="host:addrStringType">
1137
+ <attribute name="ip" type="host:ipType"
1138
+ default="v4"/>
1139
+ </extension>
1140
+ </simpleContent>
1141
+ </complexType>
1142
+
1143
+ <simpleType name="addrStringType">
1144
+ <restriction base="token">
1145
+ <minLength value="3"/>
1146
+ <maxLength value="45"/>
1147
+ </restriction>
1148
+ </simpleType>
1149
+
1150
+ <simpleType name="ipType">
1151
+ <restriction base="token">
1152
+ <enumeration value="v4"/>
1153
+ <enumeration value="v6"/>
1154
+ </restriction>
1155
+ </simpleType>
1156
+
1157
+ <!--
1158
+ Child elements of the <delete> and <info> commands.
1159
+ -->
1160
+ <complexType name="sNameType">
1161
+ <sequence>
1162
+ <element name="name" type="eppcom:labelType"/>
1163
+ </sequence>
1164
+ </complexType>
1165
+
1166
+ <!--
1167
+ Child element of commands that accept multiple names.
1168
+ -->
1169
+ <complexType name="mNameType">
1170
+ <sequence>
1171
+ <element name="name" type="eppcom:labelType"
1172
+ maxOccurs="unbounded"/>
1173
+ </sequence>
1174
+ </complexType>
1175
+
1176
+
1177
+
1178
+ Hollenbeck Standards Track [Page 21]
1179
+
1180
+ RFC 5732 EPP Host Mapping August 2009
1181
+
1182
+
1183
+ <!--
1184
+ Child elements of the <update> command.
1185
+ -->
1186
+ <complexType name="updateType">
1187
+ <sequence>
1188
+ <element name="name" type="eppcom:labelType"/>
1189
+ <element name="add" type="host:addRemType"
1190
+ minOccurs="0"/>
1191
+ <element name="rem" type="host:addRemType"
1192
+ minOccurs="0"/>
1193
+ <element name="chg" type="host:chgType"
1194
+ minOccurs="0"/>
1195
+ </sequence>
1196
+ </complexType>
1197
+
1198
+ <!--
1199
+ Data elements that can be added or removed.
1200
+ -->
1201
+ <complexType name="addRemType">
1202
+ <sequence>
1203
+ <element name="addr" type="host:addrType"
1204
+ minOccurs="0" maxOccurs="unbounded"/>
1205
+ <element name="status" type="host:statusType"
1206
+ minOccurs="0" maxOccurs="7"/>
1207
+ </sequence>
1208
+ </complexType>
1209
+
1210
+ <!--
1211
+ Data elements that can be changed.
1212
+ -->
1213
+ <complexType name="chgType">
1214
+ <sequence>
1215
+ <element name="name" type="eppcom:labelType"/>
1216
+ </sequence>
1217
+ </complexType>
1218
+
1219
+ <!--
1220
+ Child response elements.
1221
+ -->
1222
+ <element name="chkData" type="host:chkDataType"/>
1223
+ <element name="creData" type="host:creDataType"/>
1224
+ <element name="infData" type="host:infDataType"/>
1225
+ <element name="panData" type="host:panDataType"/>
1226
+
1227
+ <!--
1228
+ <check> response elements.
1229
+ -->
1230
+ <complexType name="chkDataType">
1231
+
1232
+
1233
+
1234
+ Hollenbeck Standards Track [Page 22]
1235
+
1236
+ RFC 5732 EPP Host Mapping August 2009
1237
+
1238
+
1239
+ <sequence>
1240
+ <element name="cd" type="host:checkType"
1241
+ maxOccurs="unbounded"/>
1242
+ </sequence>
1243
+ </complexType>
1244
+
1245
+ <complexType name="checkType">
1246
+ <sequence>
1247
+ <element name="name" type="host:checkNameType"/>
1248
+ <element name="reason" type="eppcom:reasonType"
1249
+ minOccurs="0"/>
1250
+ </sequence>
1251
+ </complexType>
1252
+
1253
+ <complexType name="checkNameType">
1254
+ <simpleContent>
1255
+ <extension base="eppcom:labelType">
1256
+ <attribute name="avail" type="boolean"
1257
+ use="required"/>
1258
+ </extension>
1259
+ </simpleContent>
1260
+ </complexType>
1261
+
1262
+ <!--
1263
+ <create> response elements.
1264
+ -->
1265
+ <complexType name="creDataType">
1266
+ <sequence>
1267
+ <element name="name" type="eppcom:labelType"/>
1268
+ <element name="crDate" type="dateTime"/>
1269
+ </sequence>
1270
+ </complexType>
1271
+
1272
+ <!--
1273
+ <info> response elements.
1274
+ -->
1275
+ <complexType name="infDataType">
1276
+ <sequence>
1277
+ <element name="name" type="eppcom:labelType"/>
1278
+ <element name="roid" type="eppcom:roidType"/>
1279
+ <element name="status" type="host:statusType"
1280
+ maxOccurs="7"/>
1281
+ <element name="addr" type="host:addrType"
1282
+ minOccurs="0" maxOccurs="unbounded"/>
1283
+ <element name="clID" type="eppcom:clIDType"/>
1284
+ <element name="crID" type="eppcom:clIDType"/>
1285
+ <element name="crDate" type="dateTime"/>
1286
+ <element name="upID" type="eppcom:clIDType"
1287
+
1288
+
1289
+
1290
+ Hollenbeck Standards Track [Page 23]
1291
+
1292
+ RFC 5732 EPP Host Mapping August 2009
1293
+
1294
+
1295
+ minOccurs="0"/>
1296
+ <element name="upDate" type="dateTime"
1297
+ minOccurs="0"/>
1298
+ <element name="trDate" type="dateTime"
1299
+ minOccurs="0"/>
1300
+ </sequence>
1301
+ </complexType>
1302
+
1303
+ <!--
1304
+ Status is a combination of attributes and an optional human-readable
1305
+ message that may be expressed in languages other than English.
1306
+ -->
1307
+ <complexType name="statusType">
1308
+ <simpleContent>
1309
+ <extension base="normalizedString">
1310
+ <attribute name="s" type="host:statusValueType"
1311
+ use="required"/>
1312
+ <attribute name="lang" type="language"
1313
+ default="en"/>
1314
+ </extension>
1315
+ </simpleContent>
1316
+ </complexType>
1317
+
1318
+ <simpleType name="statusValueType">
1319
+ <restriction base="token">
1320
+ <enumeration value="clientDeleteProhibited"/>
1321
+ <enumeration value="clientUpdateProhibited"/>
1322
+ <enumeration value="linked"/>
1323
+ <enumeration value="ok"/>
1324
+ <enumeration value="pendingCreate"/>
1325
+ <enumeration value="pendingDelete"/>
1326
+ <enumeration value="pendingTransfer"/>
1327
+ <enumeration value="pendingUpdate"/>
1328
+ <enumeration value="serverDeleteProhibited"/>
1329
+ <enumeration value="serverUpdateProhibited"/>
1330
+ </restriction>
1331
+ </simpleType>
1332
+
1333
+ <!--
1334
+ Pending action notification response elements.
1335
+ -->
1336
+ <complexType name="panDataType">
1337
+ <sequence>
1338
+ <element name="name" type="host:paNameType"/>
1339
+ <element name="paTRID" type="epp:trIDType"/>
1340
+ <element name="paDate" type="dateTime"/>
1341
+ </sequence>
1342
+ </complexType>
1343
+
1344
+
1345
+
1346
+ Hollenbeck Standards Track [Page 24]
1347
+
1348
+ RFC 5732 EPP Host Mapping August 2009
1349
+
1350
+
1351
+ <complexType name="paNameType">
1352
+ <simpleContent>
1353
+ <extension base="eppcom:labelType">
1354
+ <attribute name="paResult" type="boolean"
1355
+ use="required"/>
1356
+ </extension>
1357
+ </simpleContent>
1358
+ </complexType>
1359
+
1360
+ <!--
1361
+ End of schema.
1362
+ -->
1363
+ </schema>
1364
+ END
1365
+
1366
+ 5. Internationalization Considerations
1367
+
1368
+ EPP is represented in XML, which provides native support for encoding
1369
+ information using the Unicode character set and its more compact
1370
+ representations including UTF-8. Conformant XML processors recognize
1371
+ both UTF-8 and UTF-16 [RFC2781]. Though XML includes provisions to
1372
+ identify and use other character encodings through use of an
1373
+ "encoding" attribute in an <?xml?> declaration, use of UTF-8 is
1374
+ RECOMMENDED in environments where parser encoding support
1375
+ incompatibility exists.
1376
+
1377
+ All date-time values presented via EPP MUST be expressed in Universal
1378
+ Coordinated Time using the Gregorian calendar. XML Schema allows use
1379
+ of time zone identifiers to indicate offsets from the zero meridian,
1380
+ but this option MUST NOT be used with EPP. The extended date-time
1381
+ form using upper case "T" and "Z" characters defined in
1382
+ [W3C.REC-xmlschema-2-20041028] MUST be used to represent date-time
1383
+ values, as XML Schema does not support truncated date-time forms or
1384
+ lower case "T" and "Z" characters.
1385
+
1386
+ The syntax for domain and host names described in this document MUST
1387
+ conform to [RFC0952] and [RFC1123]. At the time of this writing, RFC
1388
+ 3490 [RFC3490] describes a standard to use certain ASCII name labels
1389
+ to represent non-ASCII name labels. These conformance requirements
1390
+ might change as a result of progressing work in developing standards
1391
+ for internationalized host names.
1392
+
1393
+ 6. IANA Considerations
1394
+
1395
+ This document uses URNs to describe XML namespaces and XML schemas
1396
+ conforming to a registry mechanism described in [RFC3688]. Two URI
1397
+ assignments have been registered by the IANA.
1398
+
1399
+
1400
+
1401
+
1402
+ Hollenbeck Standards Track [Page 25]
1403
+
1404
+ RFC 5732 EPP Host Mapping August 2009
1405
+
1406
+
1407
+ Registration request for the host namespace:
1408
+
1409
+ URI: urn:ietf:params:xml:ns:host-1.0
1410
+
1411
+ Registrant Contact: See the "Author's Address" section of this
1412
+ document.
1413
+
1414
+ XML: None. Namespace URIs do not represent an XML specification.
1415
+
1416
+ Registration request for the host XML schema:
1417
+
1418
+ URI: urn:ietf:params:xml:schema:host-1.0
1419
+
1420
+ Registrant Contact: See the "Author's Address" section of this
1421
+ document.
1422
+
1423
+ XML: See the "Formal Syntax" section of this document.
1424
+
1425
+ 7. Security Considerations
1426
+
1427
+ The object mapping described in this document does not provide any
1428
+ security services or introduce any additional considerations beyond
1429
+ those described by [RFC5730] or those caused by the protocol layers
1430
+ used by EPP.
1431
+
1432
+ 8. Acknowledgements
1433
+
1434
+ RFC 3732 is a product of the PROVREG working group, which suggested
1435
+ improvements and provided many invaluable comments. The author
1436
+ wishes to acknowledge the efforts of WG chairs Edward Lewis and Jaap
1437
+ Akkerhuis for their process and editorial contributions. RFC 4932
1438
+ and this document are individual submissions, based on the work done
1439
+ in RFC 3732.
1440
+
1441
+ Specific suggestions that have been incorporated into this document
1442
+ were provided by Chris Bason, Jordyn Buchanan, Dave Crocker, Anthony
1443
+ Eden, Sheer El-Showk, Klaus Malorny, Dan Manley, Michael Mealling,
1444
+ Patrick Mevzek, and Rick Wesson.
1445
+
1446
+ 9. References
1447
+
1448
+ 9.1. Normative References
1449
+
1450
+ [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791,
1451
+ September 1981.
1452
+
1453
+ [RFC0952] Harrenstien, K., Stahl, M., and E. Feinler, "DoD Internet
1454
+ host table specification", RFC 952, October 1985.
1455
+
1456
+
1457
+
1458
+ Hollenbeck Standards Track [Page 26]
1459
+
1460
+ RFC 5732 EPP Host Mapping August 2009
1461
+
1462
+
1463
+ [RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
1464
+ STD 13, RFC 1034, November 1987.
1465
+
1466
+ [RFC1035] Mockapetris, P., "Domain names - implementation and
1467
+ specification", STD 13, RFC 1035, November 1987.
1468
+
1469
+ [RFC1123] Braden, R., "Requirements for Internet Hosts - Application
1470
+ and Support", STD 3, RFC 1123, October 1989.
1471
+
1472
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
1473
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
1474
+
1475
+ [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
1476
+ January 2004.
1477
+
1478
+ [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
1479
+ Architecture", RFC 4291, February 2006.
1480
+
1481
+ [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
1482
+ STD 69, RFC 5730, August 2009.
1483
+
1484
+ [W3C.REC-xml-20040204]
1485
+ Sperberg-McQueen, C., Maler, E., Yergeau, F., Paoli, J.,
1486
+ and T. Bray, "Extensible Markup Language (XML) 1.0 (Third
1487
+ Edition)", World Wide Web Consortium FirstEdition REC-xml-
1488
+ 20040204, February 2004,
1489
+ <http://www.w3.org/TR/2004/REC-xml-20040204>.
1490
+
1491
+ [W3C.REC-xmlschema-1-20041028]
1492
+ Maloney, M., Thompson, H., Mendelsohn, N., and D. Beech,
1493
+ "XML Schema Part 1: Structures Second Edition", World Wide
1494
+ Web Consortium Recommendation REC-xmlschema-1-20041028,
1495
+ October 2004,
1496
+ <http://www.w3.org/TR/2004/REC-xmlschema-1-20041028>.
1497
+
1498
+ [W3C.REC-xmlschema-2-20041028]
1499
+ Malhotra, A. and P. Biron, "XML Schema Part 2: Datatypes
1500
+ Second Edition", World Wide Web Consortium
1501
+ Recommendation REC-xmlschema-2-20041028, October 2004,
1502
+ <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>.
1503
+
1504
+ 9.2. Informative References
1505
+
1506
+ [RFC2781] Hoffman, P. and F. Yergeau, "UTF-16, an encoding of ISO
1507
+ 10646", RFC 2781, February 2000.
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+ Hollenbeck Standards Track [Page 27]
1515
+
1516
+ RFC 5732 EPP Host Mapping August 2009
1517
+
1518
+
1519
+ [RFC2874] Crawford, M. and C. Huitema, "DNS Extensions to Support
1520
+ IPv6 Address Aggregation and Renumbering", RFC 2874,
1521
+ July 2000.
1522
+
1523
+ [RFC3490] Faltstrom, P., Hoffman, P., and A. Costello,
1524
+ "Internationalizing Domain Names in Applications (IDNA)",
1525
+ RFC 3490, March 2003.
1526
+
1527
+ [RFC3596] Thomson, S., Huitema, C., Ksinant, V., and M. Souissi,
1528
+ "DNS Extensions to Support IP Version 6", RFC 3596,
1529
+ October 2003.
1530
+
1531
+ [RFC4932] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
1532
+ Host Mapping", RFC 4932, May 2007.
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+
1558
+
1559
+
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+
1570
+ Hollenbeck Standards Track [Page 28]
1571
+
1572
+ RFC 5732 EPP Host Mapping August 2009
1573
+
1574
+
1575
+ Appendix A. Changes from RFC 4932
1576
+
1577
+ 1. Changed "This document obsoletes RFC 3732" to "This document
1578
+ obsoletes RFC 4932".
1579
+
1580
+ 2. Replaced references to RFC 1886 with references to 3596.
1581
+
1582
+ 3. Removed references to RFC 3152 since both it and 1886 have been
1583
+ obsoleted by 3596.
1584
+
1585
+ 4. Replaced references to RFC 3732 with references to 4932.
1586
+
1587
+ 5. Replaced references to RFC 4930 with references to 5730.
1588
+
1589
+ 6. Added "Other notification methods MAY be used in addition to the
1590
+ required service message" in Section 3.2.
1591
+
1592
+ 7. Added 2201 response code text in Section 3.2.
1593
+
1594
+ 8. Added BSD license text to XML schema section.
1595
+
1596
+
1597
+ Author's Address
1598
+
1599
+ Scott Hollenbeck
1600
+ VeriSign, Inc.
1601
+ 21345 Ridgetop Circle
1602
+ Dulles, VA 20166-6503
1603
+ US
1604
+
1605
+ EMail: shollenbeck@verisign.com
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+
1612
+
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+ Hollenbeck Standards Track [Page 29]
1627
+