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