epp-client-rgp 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog ADDED
@@ -0,0 +1,5 @@
1
+ 2010-05-14 mat
2
+ * first release
3
+
4
+ 2010-05-04 mat
5
+ * Initial commit
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'http://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in epp-client.gemspec
4
+ Dir['*.gemspec'].each do |i|
5
+ gemspec :name => i.sub(/\.gemspec$/, '')
6
+ end
data/MIT-LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (C) 2010 Mathieu Arnold, Absolight
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
data/README ADDED
@@ -0,0 +1,5 @@
1
+ An extensible EPP client library
2
+
3
+ When possible, the objects that are received via EPP are translated to their
4
+ equivalent in ruby, that is, dates in Date object, timestamps in DateTime
5
+ objects.
data/Rakefile ADDED
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env rake
2
+ require 'rake'
3
+ require 'rdoc/task'
4
+ require 'rubygems/package_task'
5
+ require "bundler/gem_helper"
6
+
7
+ MY_GEMS = Dir['*.gemspec'].map {|g| g.sub(/.*-(.*)\.gemspec/, '\1')}
8
+
9
+ MY_GEMS.each do |g|
10
+ namespace g do
11
+ Bundler::GemHelper.new(Dir.pwd, "epp-client-#{g}").install
12
+ end
13
+ end
14
+
15
+ namespace :all do
16
+ task :build => MY_GEMS.map { |f| "#{f}:build" }
17
+ task :install => MY_GEMS.map { |f| "#{f}:install" }
18
+ task :release => MY_GEMS.map { |f| "#{f}:release" }
19
+ end
20
+
21
+ task :build => 'all:build'
22
+ task :install => 'all:install'
23
+ task :release => 'all:release'
24
+
25
+ desc "Generate documentation for the Rails framework"
26
+ Rake::RDocTask.new do |rdoc|
27
+ rdoc.rdoc_dir = 'doc/rdoc'
28
+ rdoc.title = "Documentation"
29
+
30
+ rdoc.options << '--line-numbers' << '--inline-source'
31
+ rdoc.options << '--charset' << 'utf-8'
32
+
33
+ rdoc.rdoc_files.include('README')
34
+ rdoc.rdoc_files.include('ChangeLog')
35
+ rdoc.rdoc_files.include('lib/**/*.rb')
36
+ end
37
+
@@ -0,0 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/epp-client/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = 'epp-client-rgp'
6
+ gem.version = EPPClient::VERSION
7
+ gem.date = '2010-05-14'
8
+ gem.authors = ['Mathieu Arnold']
9
+ gem.email = ['m@absolight.fr']
10
+ gem.description = 'RGP EPP client library.'
11
+ gem.summary = 'RGP EPP client library'
12
+ gem.homepage = "https://github.com/Absolight/epp-client"
13
+
14
+ gem.required_ruby_version = '>= 1.8.7'
15
+ gem.required_rubygems_version = ">= 1.3.6"
16
+
17
+ gem.files = [
18
+ 'ChangeLog',
19
+ 'Gemfile',
20
+ 'MIT-LICENSE',
21
+ 'README',
22
+ 'Rakefile',
23
+ 'epp-client-rgp.gemspec',
24
+ 'lib/epp-client/rgp.rb',
25
+ 'vendor/ietf/rfc3915.txt',
26
+ 'vendor/ietf/rgp-1.0.xsd',
27
+ ]
28
+
29
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
30
+ gem.require_paths = ['lib']
31
+
32
+ gem.add_development_dependency "bundler", ">= 1.0.0"
33
+ gem.add_dependency('nokogiri', '~> 1.4')
34
+ gem.add_dependency('builder', '>= 2.1.2')
35
+ end
@@ -0,0 +1,105 @@
1
+ # RFC3915[http://tools.ietf.org/html/rfc3915]
2
+ #
3
+ # Domain Registry Grace Period Mapping for the
4
+ # Extensible Provisioning Protocol (EPP)
5
+ #
6
+ # Has to be included after the initialize, domain_info and domain_update
7
+ # definitions.
8
+ module EPPClient
9
+ module RGP
10
+ def self.included(base) # :nodoc:
11
+ base.class_eval do
12
+ alias_method :initialize_without_rgp, :initialize
13
+ alias_method :initialize, :initialize_with_rgp
14
+ alias_method :domain_info_process_without_rgp, :domain_info_process
15
+ alias_method :domain_info_process, :domain_info_process_with_rgp
16
+ end
17
+ end
18
+
19
+ def initialize_with_rgp(args) #:nodoc:
20
+ initialize_without_rgp(args)
21
+ @extensions << EPPClient::SCHEMAS_URL['rgp']
22
+ end
23
+
24
+ def domain_info_process_with_rgp(xml) #:nodoc:
25
+ ret = domain_info_process_without_rgp(xml)
26
+ if (rgp_status = xml.xpath('epp:extension/rgp:infData/rgp:rgpStatus', EPPClient::SCHEMAS_URL)).size > 0
27
+ ret[:rgpStatus] = rgp_status.map {|s| s.attr('s')}
28
+ end
29
+ ret
30
+ end
31
+
32
+ def domain_restore_xml(args) #:nodoc:
33
+ command(lambda do |xml|
34
+ xml.update do
35
+ xml.update('xmlns' => EPPClient::SCHEMAS_URL['domain-1.0']) do
36
+ xml.name args[:name]
37
+ end
38
+ end
39
+ end, lambda do |xml|
40
+ xml.update('xmlns' => EPPClient::SCHEMAS_URL['rgp-1.0']) do
41
+ if args.key?(:report)
42
+ xml.restore(:op => 'report') do
43
+ [:preData, :postData, :delTime, :resTime, :resReason].each do |v|
44
+ xml.__send__(v, args[:report][v])
45
+ end
46
+ args[:report][:statements].each do |s|
47
+ xml.statement s
48
+ end
49
+ if args[:report].key?(:other)
50
+ xml.other args[:report][:other]
51
+ end
52
+ end
53
+ else
54
+ xml.restore(:op => 'request')
55
+ end
56
+ end
57
+ end)
58
+ end
59
+
60
+ # Restores a domain.
61
+ #
62
+ # takes a hash as arguments, with the following keys :
63
+ # [<tt>:name</tt>]
64
+ # the fully qualified name of the domain object to be updated.
65
+ # [<tt>:report</tt>]
66
+ # the optional report with the following fields :
67
+ # [<tt>:preData</tt>]
68
+ # a copy of the registration data that existed for the domain name prior
69
+ # to the domain name being deleted.
70
+ # [<tt>:postData</tt>]
71
+ # a copy of the registration data that exists for the domain name at the
72
+ # time the restore report is submitted.
73
+ # [<tt>:delTime</tt>]
74
+ # the date and time when the domain name delete request was sent to the
75
+ # server.
76
+ # [<tt>:resTime</tt>]
77
+ # the date and time when the original <rgp:restore> command was sent to
78
+ # the server.
79
+ # [<tt>:resReason</tt>]
80
+ # a brief explanation of the reason for restoring the domain name.
81
+ # [<tt>:statements</tt>]
82
+ # an array of two statements :
83
+ # 1. a text statement that the client has not restored the domain name in
84
+ # order to assume the rights to use or sell the domain name for itself
85
+ # or for any third party. Supporting information related to this
86
+ # statement MAY be supplied in the <tt>:other</tt> element described
87
+ # below.
88
+ # 2. a text statement that the information in the restore report is
89
+ # factual to the best of the client's knowledge.
90
+ # [<tt>:other</tt>]
91
+ # an optional element that contains any information needed to support the
92
+ # statements provided by the client.
93
+ #
94
+ # Returns an array of rgpStatus.
95
+ def domain_restore(args)
96
+ response = send_request(domain_restore_xml(args))
97
+
98
+ get_result(:xml => response, :callback => :domain_restore_process)
99
+ end
100
+
101
+ def domain_restore_process(xml) #:nodoc:
102
+ xml.xpath('epp:extension/rgp:upData/rgp:rgpStatus', EPPClient::SCHEMAS_URL).map {|s| s.attr('s')}
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,1291 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+ Network Working Group S. Hollenbeck
8
+ Request for Comments: 3915 VeriSign, Inc.
9
+ Category: Standards Track September 2004
10
+
11
+
12
+ Domain Registry Grace Period Mapping for the
13
+ Extensible Provisioning Protocol (EPP)
14
+
15
+ Status of this Memo
16
+
17
+ This document specifies an Internet standards track protocol for the
18
+ Internet community, and requests discussion and suggestions for
19
+ improvements. Please refer to the current edition of the "Internet
20
+ Official Protocol Standards" (STD 1) for the standardization state
21
+ and status of this protocol. Distribution of this memo is unlimited.
22
+
23
+ Copyright Notice
24
+
25
+ Copyright (C) The Internet Society (2004).
26
+
27
+ Abstract
28
+
29
+ This document describes an Extensible Provisioning Protocol (EPP)
30
+ extension mapping for the management of Domain Name System (DNS)
31
+ domain names subject to "grace period" policies defined by the
32
+ Internet Corporation for Assigned Names and Numbers (ICANN). Grace
33
+ period policies exist to allow protocol actions to be reversed or
34
+ otherwise revoked during a short period of time after the protocol
35
+ action has been performed. Specified in XML, this mapping extends
36
+ the EPP domain name mapping to provide additional features required
37
+ for grace period processing.
38
+
39
+
40
+
41
+
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 3915 EPP Grace Period Mapping September 2004
61
+
62
+
63
+ Table of Contents
64
+
65
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
66
+ 1.1. Conventions Used In This Document. . . . . . . . . . . . 4
67
+ 2. Redemption Grace Period State Diagram . . . . . . . . . . . . 4
68
+ 3. Object Attributes . . . . . . . . . . . . . . . . . . . . . . 6
69
+ 3.1. Status Values . . . . . . . . . . . . . . . . . . . . . 6
70
+ 3.2. Registration Data and Supporting Information . . . . . . 7
71
+ 3.3. Dates and Times . . . . . . . . . . . . . . . . . . . . 7
72
+ 3.4. Client Statements . . . . . . . . . . . . . . . . . . . 8
73
+ 4. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 8
74
+ 4.1 EPP Query Commands . . . . . . . . . . . . . . . . . . . 8
75
+ 4.1.1. EPP <check> Command . . . . . . . . . . . . . . 8
76
+ 4.1.2. EPP <info> Command . . . . . . . . . . . . . . . 8
77
+ 4.1.3. EPP <transfer> Command . . . . . . . . . . . . . 11
78
+ 4.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 11
79
+ 4.2.1. EPP <create> Command . . . . . . . . . . . . . . 12
80
+ 4.2.2. EPP <delete> Command . . . . . . . . . . . . . . 12
81
+ 4.2.3. EPP <renew> Command . . . . . . . . . . . . . . 12
82
+ 4.2.4. EPP <transfer> Command . . . . . . . . . . . . . 12
83
+ 4.2.5. EPP <update> Command . . . . . . . . . . . . . . 12
84
+ 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 16
85
+ 6. Internationalization Considerations . . . . . . . . . . . . . 19
86
+ 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20
87
+ 8. Security Considerations . . . . . . . . . . . . . . . . . . . 20
88
+ 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 20
89
+ 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
90
+ 10.1. Normative References . . . . . . . . . . . . . . . . . . 21
91
+ 10.2. Informative References . . . . . . . . . . . . . . . . . 21
92
+ Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 22
93
+ Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 23
94
+
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 3915 EPP Grace Period Mapping September 2004
117
+
118
+
119
+ 1. Introduction
120
+
121
+ This document describes an extension mapping for version 1.0 of the
122
+ Extensible Provisioning Protocol (EPP) described in RFC 3730 [1].
123
+ This mapping, an extension of the domain name mapping described in
124
+ RFC 3731 [2], is specified using the Extensible Markup Language (XML)
125
+ 1.0 [3] and XML Schema notation ([4], [5]).
126
+
127
+ The EPP core protocol specification [1] provides a complete
128
+ description of EPP command and response structures. A thorough
129
+ understanding of the base protocol specification is necessary to
130
+ understand the mapping described in this document.
131
+
132
+ Over the course of several months in 2002, The Internet Corporation
133
+ for Assigned Names and Numbers (ICANN) developed an implementation
134
+ proposal to provide a "grace period" for Domain Name System (DNS)
135
+ domain name recovery (or redemption) before a domain name is purged
136
+ from the repository of the authoritative registry for the domain
137
+ name. This mapping extends the EPP domain <update> command to
138
+ initiate the redemption process for a domain name that has entered
139
+ the Redemption Grace Period (RGP) and it extends the EPP domain
140
+ <info> response to identify the status of domains that have entered
141
+ various grace periods defined by ICANN policy.
142
+
143
+ In March 2003, ICANN published a task force report describing other
144
+ domain registry grace periods related to EPP operations. This
145
+ mapping describes extension status values to note the grace periods
146
+ described in the report, including:
147
+
148
+ o An "add grace period" after the initial registration of a domain
149
+ name. If the domain name is deleted by the registrar during this
150
+ period, the registry provides a credit to the registrar for the
151
+ cost of the registration.
152
+
153
+ o An "auto-renew grace period" after a domain name registration
154
+ period expires and is extended (renewed) automatically by the
155
+ registry. If the domain name is deleted by the registrar during
156
+ this period, the registry provides a credit to the registrar for
157
+ the cost of the renewal.
158
+
159
+ o A "renew grace period" after a domain name registration period is
160
+ explicitly extended (renewed) by the registrar. If the domain
161
+ name is deleted by the registrar during this period, the registry
162
+ provides a credit to the registrar for the cost of the renewal.
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+ Hollenbeck Standards Track [Page 3]
171
+
172
+ RFC 3915 EPP Grace Period Mapping September 2004
173
+
174
+
175
+ o A "transfer grace period" after the successful transfer of domain
176
+ name registration sponsorship from one registrar to another
177
+ registrar. If the domain name is deleted by the new sponsoring
178
+ registrar during this period, the registry provides a credit to
179
+ the registrar for the cost of the transfer.
180
+
181
+ Each grace period exists for a specific period of time that is
182
+ typically measured in days. The duration of each grace period is a
183
+ matter of registry operational policy that is not addressed in this
184
+ document.
185
+
186
+ 1.1. Conventions Used In This Document
187
+
188
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
189
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
190
+ document are to be interpreted as described in BCP 14, RFC 2119 [6].
191
+
192
+ In examples, "C:" represents lines sent by a protocol client and "S:"
193
+ represents lines returned by a protocol server. Indentation and
194
+ white space in examples is provided only to illustrate element
195
+ relationships and is not a REQUIRED feature of this specification.
196
+
197
+ XML is case sensitive. Unless stated otherwise, XML specifications
198
+ and examples provided in this document MUST be interpreted in the
199
+ character case presented to develop a conforming implementation.
200
+
201
+ 2. Redemption Grace Period State Diagram
202
+
203
+ The Redemption Grace Period (RGP) involves several domain state
204
+ transitions as a domain name moves through the redemption process:
205
+
206
+ 1. A domain is initially in the EPP "ok" status, or some other
207
+ status that allows processing of the EPP <delete> command.
208
+
209
+ 2. A <delete> command is received and processed for the domain name.
210
+
211
+ 3. RGP begins once the <delete> command is processed successfully.
212
+ The EPP status changes to "pendingDelete", and the RGP status is
213
+ initialized to "redemptionPeriod". The domain remains in this
214
+ state until either a <restore> operation is requested or the
215
+ redemption period elapses.
216
+
217
+ 4. A <restore> operation can be requested using the extended EPP
218
+ <update> command. Go to step 8 if the redemption period elapses
219
+ before a <restore> request is received.
220
+
221
+
222
+
223
+
224
+
225
+
226
+ Hollenbeck Standards Track [Page 4]
227
+
228
+ RFC 3915 EPP Grace Period Mapping September 2004
229
+
230
+
231
+ 5. If the <restore> is successful, the Registry waits to receive a
232
+ restore report from the registrar for a period of time defined by
233
+ the Registry. The EPP status remains "pendingDelete" and the RGP
234
+ status changes to "pendingRestore". While this extension defines
235
+ a method to deliver a restore report via EPP, an out-of-band
236
+ mechanism (such as a web site) can also be used to deliver
237
+ restore reports.
238
+
239
+ 6. The domain name returns to the redemption period state (state 3)
240
+ if a restore report is not received.
241
+
242
+ 7. If a restore report is received the EPP status returns to "ok"
243
+ (or whatever it was prior to processing the <delete> command),
244
+ and the RGP status is removed completely.
245
+
246
+ 8. The redemption period elapses before a <restore> request is
247
+ received.
248
+
249
+ 9. The EPP status remains "pendingDelete" and the RGP status changes
250
+ to "pendingDelete". The domain name remains in this state for a
251
+ period of time defined by the Registry.
252
+
253
+ 10. The domain name is purged once the pending delete period elapses.
254
+
255
+ 11. The domain name is available for re-registration.
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+ Hollenbeck Standards Track [Page 5]
283
+
284
+ RFC 3915 EPP Grace Period Mapping September 2004
285
+
286
+
287
+ Figure 1: RGP State Diagram
288
+
289
+ |
290
+ v
291
+ +----------------------+ (2) +----------------------+
292
+ |EPP: ok (1)| <delete> |EPP: pendingDelete (3)|
293
+ |RGP: N/A |--------->|RGP: redemptionPeriod |
294
+ +----------------------+ +----------------------+
295
+ ^ (4) | ^ |
296
+ | <restore> | | No (8) |
297
+ | +-----------+ | <restore> |
298
+ | | | |
299
+ | v | v
300
+ | +----------------------+ | +----------------------+
301
+ | |EPP: pendingDelete (5)| | |EPP: pendingDelete (9)|
302
+ | |RGP: pendingRestore |---------+ |RGP: pendingDelete |
303
+ | +----------------------+ Report +----------------------+
304
+ | | not (6) |
305
+ | (7) | Received Purge (10) |
306
+ | Report Received | |
307
+ +--------------------+ v
308
+ +----------------------+
309
+ | Purged (11)|
310
+ | |
311
+ +----------------------+
312
+
313
+ 3. Object Attributes
314
+
315
+ This extension adds additional elements to the EPP domain name
316
+ mapping [2]. Only new element descriptions are described here.
317
+
318
+ 3.1. Status Values
319
+
320
+ This extension defines new status values to represent the different
321
+ states that a domain name can be in as a result of grace period
322
+ processing. These are:
323
+
324
+ addPeriod: This grace period is provided after the initial
325
+ registration of a domain name. If the domain name is deleted by
326
+ the registrar during this period, the registry provides a credit
327
+ to the registrar for the cost of the registration.
328
+
329
+ autoRenewPeriod: This grace period is provided after a domain
330
+ name registration period expires and is extended (renewed)
331
+ automatically by the registry. If the domain name is deleted by
332
+ the registrar during this period, the registry provides a credit
333
+ to the registrar for the cost of the renewal.
334
+
335
+
336
+
337
+
338
+ Hollenbeck Standards Track [Page 6]
339
+
340
+ RFC 3915 EPP Grace Period Mapping September 2004
341
+
342
+
343
+ renewPeriod: This grace period is provided after a domain name
344
+ registration period is explicitly extended (renewed) by the
345
+ registrar. If the domain name is deleted by the registrar during
346
+ this period, the registry provides a credit to the registrar for
347
+ the cost of the renewal.
348
+
349
+ transferPeriod: This grace period is provided after the
350
+ successful transfer of domain name registration sponsorship from
351
+ one registrar to another registrar. If the domain name is deleted
352
+ by the new sponsoring registrar during this period, the registry
353
+ provides a credit to the registrar for the cost of the transfer.
354
+
355
+ redemptionPeriod: This status value is used to describe a
356
+ domain for which a <delete> command has been received, but the
357
+ domain has not yet been purged because an opportunity exists to
358
+ restore the domain and abort the deletion process.
359
+
360
+ pendingRestore: This status value is used to describe a domain that
361
+ is in the process of being restored after being in the
362
+ redemptionPeriod state.
363
+
364
+ pendingDelete: This status value is used to describe a domain that
365
+ has entered the purge processing state after completing the
366
+ redemptionPeriod state. A domain in this status MUST also be in
367
+ the pendingDelete status described in the EPP domain mapping [2].
368
+
369
+ 3.2. Registration Data and Supporting Information
370
+
371
+ This extension allows a client to provide copies of registration data
372
+ (whois [9] data, for example) and supporting information in a restore
373
+ report as required by the RGP process. No specific format is
374
+ required by this extension; both free text and XML markup MAY be
375
+ used.
376
+
377
+ Operators of servers that provide registration data might find it
378
+ useful to provide grace period status values in their responses to
379
+ client queries. This information can be useful to people who want to
380
+ understand the operations that can be performed on a domain name at
381
+ any give time.
382
+
383
+ 3.3. Dates and Times
384
+
385
+ Date and time attribute values MUST be represented in Universal
386
+ Coordinated Time (UTC) using the Gregorian calendar. The extended
387
+ date-time form using upper case "T" and "Z" characters defined in RFC
388
+ 3339 [7] MUST be used to represent date-time values as XML Schema
389
+ does not support truncated date-time forms or lower case "T" and "Z"
390
+ characters.
391
+
392
+
393
+
394
+ Hollenbeck Standards Track [Page 7]
395
+
396
+ RFC 3915 EPP Grace Period Mapping September 2004
397
+
398
+
399
+ 3.4. Client Statements
400
+
401
+ The RGP process requires a client to make two statements regarding
402
+ the data included in a restore report. No specific format is
403
+ required by this extension; both free text and XML markup MAY be
404
+ used. English is the default language used within the statements,
405
+ but other languages MAY be used.
406
+
407
+ 4. EPP Command Mapping
408
+
409
+ A detailed description of the EPP syntax and semantics can be found
410
+ in the EPP core protocol specification [1]. The command mappings
411
+ described here are specifically for use in implementing redemption
412
+ grace period processes via EPP.
413
+
414
+ 4.1. EPP Query Commands
415
+
416
+ EPP provides three commands to retrieve object information: <check>
417
+ to determine if an object is known to the server, <info> to retrieve
418
+ detailed information associated with an object, and <transfer> to
419
+ retrieve object transfer status information.
420
+
421
+ 4.1.1. EPP <check> Command
422
+
423
+ This extension does not add any elements to the EPP <check> command
424
+ or <check> response described in the EPP domain mapping [2].
425
+
426
+ 4.1.2. EPP <info> Command
427
+
428
+ This extension does not add any elements to the EPP <info> command
429
+ described in the EPP domain mapping [2]. Additional elements are
430
+ defined for the <info> response.
431
+
432
+ When an <info> command has been processed successfully, the EPP
433
+ <resData> element MUST contain child elements as described in [2]. In
434
+ addition, the EPP <extension> element MUST contain a child
435
+ <rgp:infData> element that identifies the registry grace period
436
+ namespace and the location of the registry grace period schema. The
437
+ <rgp:infData> element contains a single <rgp:rgpStatus> element that
438
+ contains a single attribute "s" whose value describes the current
439
+ grace period status of the domain. Possible status values are
440
+ described in section Section 3.1.
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+ Hollenbeck Standards Track [Page 8]
451
+
452
+ RFC 3915 EPP Grace Period Mapping September 2004
453
+
454
+
455
+ Example <info> response for "addPeriod" status:
456
+
457
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
458
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
459
+ S: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
460
+ S: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
461
+ S: epp-1.0.xsd">
462
+ S: <response>
463
+ S: <result code="1000">
464
+ S: <msg>Command completed successfully</msg>
465
+ S: </result>
466
+ S: <resData>
467
+ S: <domain:infData
468
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
469
+ S: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
470
+ S: domain-1.0.xsd">
471
+ S: <domain:name>example.com</domain:name>
472
+ S: <domain:roid>EXAMPLE1-REP</domain:roid>
473
+ S: <domain:status s="ok"/>
474
+ S: <domain:registrant>jd1234</domain:registrant>
475
+ S: <domain:contact type="admin">sh8013</domain:contact>
476
+ S: <domain:contact type="tech">sh8013</domain:contact>
477
+ S: <domain:ns>
478
+ S: <domain:hostObj>ns1.example.com</domain:hostObj>
479
+ S: <domain:hostObj>ns1.example.net</domain:hostObj>
480
+ S: </domain:ns>
481
+ S: <domain:host>ns1.example.com</domain:host>
482
+ S: <domain:host>ns2.example.com</domain:host>
483
+ S: <domain:clID>ClientX</domain:clID>
484
+ S: <domain:crID>ClientX</domain:crID>
485
+ S: <domain:crDate>2003-11-26T22:00:00.0Z</domain:crDate>
486
+ S: <domain:exDate>2005-11-26T22:00:00.0Z</domain:exDate>
487
+ S: <domain:authInfo>
488
+ S: <domain:pw>2fooBAR</domain:pw>
489
+ S: </domain:authInfo>
490
+ S: </domain:infData>
491
+ S: </resData>
492
+ S: <extension>
493
+ S: <rgp:infData xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0"
494
+ S: xsi:schemaLocation="urn:ietf:params:xml:ns:rgp-1.0
495
+ S: rgp-1.0.xsd">
496
+ S: <rgp:rgpStatus s="addPeriod"/>
497
+ S: </rgp:infData>
498
+ S: </extension>
499
+ S: <trID>
500
+ S: <clTRID>ABC-12345</clTRID>
501
+ S: <svTRID>54322-XYZ</svTRID>
502
+ S: </trID>
503
+
504
+
505
+
506
+ Hollenbeck Standards Track [Page 9]
507
+
508
+ RFC 3915 EPP Grace Period Mapping September 2004
509
+
510
+
511
+ S: </response>
512
+ S:</epp>
513
+
514
+ Example <info> response for "redemptionPeriod" status:
515
+
516
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
517
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
518
+ S: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
519
+ S: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
520
+ S: epp-1.0.xsd">
521
+ S: <response>
522
+ S: <result code="1000">
523
+ S: <msg>Command completed successfully</msg>
524
+ S: </result>
525
+ S: <resData>
526
+ S: <domain:infData
527
+ S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
528
+ S: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
529
+ S: domain-1.0.xsd">
530
+ S: <domain:name>example.com</domain:name>
531
+ S: <domain:roid>EXAMPLE1-REP</domain:roid>
532
+ S: <domain:status s="pendingDelete"/>
533
+ S: <domain:registrant>jd1234</domain:registrant>
534
+ S: <domain:contact type="admin">sh8013</domain:contact>
535
+ S: <domain:contact type="tech">sh8013</domain:contact>
536
+ S: <domain:ns>
537
+ S: <domain:hostObj>ns1.example.com</domain:hostObj>
538
+ S: <domain:hostObj>ns1.example.net</domain:hostObj>
539
+ S: </domain:ns>
540
+ S: <domain:host>ns1.example.com</domain:host>
541
+ S: <domain:host>ns2.example.com</domain:host>
542
+ S: <domain:clID>ClientX</domain:clID>
543
+ S: <domain:crID>ClientY</domain:crID>
544
+ S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
545
+ S: <domain:upID>ClientX</domain:upID>
546
+ S: <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate>
547
+ S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
548
+ S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate>
549
+ S: <domain:authInfo>
550
+ S: <domain:pw>2fooBAR</domain:pw>
551
+ S: </domain:authInfo>
552
+ S: </domain:infData>
553
+ S: </resData>
554
+ S: <extension>
555
+ S: <rgp:infData xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0"
556
+ S: xsi:schemaLocation="urn:ietf:params:xml:ns:rgp-1.0
557
+ S: rgp-1.0.xsd">
558
+ S: <rgp:rgpStatus s="redemptionPeriod"/>
559
+
560
+
561
+
562
+ Hollenbeck Standards Track [Page 10]
563
+
564
+ RFC 3915 EPP Grace Period Mapping September 2004
565
+
566
+
567
+ S: </rgp:infData>
568
+ S: </extension>
569
+ S: <trID>
570
+ S: <clTRID>ABC-12345</clTRID>
571
+ S: <svTRID>54322-XYZ</svTRID>
572
+ S: </trID>
573
+ S: </response>
574
+ S:</epp>
575
+
576
+ Example <info> response extension for "pendingRestore" status (note
577
+ that only the extension element changes from the first example):
578
+
579
+ S:<extension>
580
+ S: <rgp:infData xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0"
581
+ S: xsi:schemaLocation="urn:ietf:params:xml:ns:rgp-1.0
582
+ S: rgp-1.0.xsd">
583
+ S: <rgp:rgpStatus s="pendingRestore"/>
584
+ S: </rgp:infData>
585
+ S:</extension>
586
+
587
+ Example <info> response extension for "pendingDelete" status (note
588
+ that only the extension element changes from the first example):
589
+
590
+ S:<extension>
591
+ S: <rgp:infData xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0"
592
+ S: xsi:schemaLocation="urn:ietf:params:xml:ns:rgp-1.0
593
+ S: rgp-1.0.xsd">
594
+ S: <rgp:rgpStatus s="pendingDelete"/>
595
+ S: </rgp:infData>
596
+ S:</extension>
597
+
598
+ 4.1.3. EPP <transfer> Command
599
+
600
+ This extension does not add any elements to the EPP <transfer>
601
+ command or <transfer> response described in the EPP domain mapping
602
+ [2].
603
+
604
+ 4.2. EPP Transform Commands
605
+
606
+ EPP provides five commands to transform objects: <create> to create
607
+ an instance of an object, <delete> to delete an instance of an
608
+ object, <renew> to extend the validity period of an object,
609
+ <transfer> to manage object sponsorship changes, and <update> to
610
+ change information associated with an object.
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+ Hollenbeck Standards Track [Page 11]
619
+
620
+ RFC 3915 EPP Grace Period Mapping September 2004
621
+
622
+
623
+ 4.2.1. EPP <create> Command
624
+
625
+ This extension does not add any elements to the EPP <create> command
626
+ or <create> response described in the EPP domain mapping [2].
627
+
628
+ 4.2.2. EPP <delete> Command
629
+
630
+ This extension does not add any elements to the EPP <delete> command
631
+ or <delete> response described in the EPP domain mapping [2].
632
+
633
+ 4.2.3. EPP <renew> Command
634
+
635
+ This extension does not add any elements to the EPP <renew> command
636
+ or <renew> response described in the EPP domain mapping [2].
637
+
638
+ 4.2.4. EPP <transfer> Command
639
+
640
+ This extension does not add any elements to the EPP <transfer>
641
+ command or <transfer> response described in the EPP domain mapping
642
+ [2].
643
+
644
+ 4.2.5. EPP <update> Command
645
+
646
+ This extension defines additional elements to extend the EPP <update>
647
+ command and response described in the EPP domain mapping [2] for
648
+ redemption grace period processing.
649
+
650
+ The EPP <update> command provides a transform operation that allows a
651
+ client to change the state of a domain object. The registry grace
652
+ period extension modifies base update processing to support
653
+ redemption of domain names for which a <delete> command has been
654
+ processed, but the name has not yet been purged.
655
+
656
+ Section 3.2.5 of the EPP domain mapping describes the elements that
657
+ have to be specified within an <update> command. The requirement to
658
+ provide at least one <domain:add>, <domain:rem>, or <domain:chg>
659
+ element is updated by this extension such that at least one empty
660
+ <domain:add>, <domain:rem>, or <domain:chg> element MUST be present
661
+ if this extension is specified within an <update> command. This
662
+ requirement is updated to disallow the possibility of modifying a
663
+ domain object as part of redemption grace period recovery processing.
664
+
665
+ In addition to the EPP command elements described in the EPP domain
666
+ mapping [2], the <update> command MUST contain an <extension>
667
+ element. The <extension> element MUST contain a child <rgp:update>
668
+ element that identifies the registry grace period namespace and the
669
+ location of the registry grace period schema. The <rgp:update>
670
+
671
+
672
+
673
+
674
+ Hollenbeck Standards Track [Page 12]
675
+
676
+ RFC 3915 EPP Grace Period Mapping September 2004
677
+
678
+
679
+ element contains a single <rgp:restore> element that contains an
680
+ OPTIONAL <rgp:report> element that MAY be used to deliver a
681
+ redemption grace period restore report.
682
+
683
+ The <rgp:restore> element contains a REQUIRED "op" attribute that
684
+ describes the redemption grace period operation being requested. Two
685
+ values are defined: "request" is used to identify a restore request
686
+ that does not include a restore report, and "report" is used to
687
+ identify a restore request that contains a restore report. A report
688
+ MAY be submitted more than once if corrections are required. If the
689
+ value of the "op" attribute is "request" an <rgp:report> element MUST
690
+ NOT be present. If the value of the "op" attribute is "report" an
691
+ <rgp:report> element MUST be present.
692
+
693
+ The <rgp:report> element contains the following child elements:
694
+
695
+ - An <rgp:preData> element that contains a copy of the registration
696
+ data that existed for the domain name prior to the domain name
697
+ being deleted. This element MAY contain both text and XML markup.
698
+
699
+ - An <rgp:postData> element that contains a copy of the registration
700
+ data that exists for the domain name at the time the restore
701
+ report is submitted. This element MAY contain both text and XML
702
+ markup.
703
+
704
+ - An <rgp:delTime> element that contains the date and time when the
705
+ domain name delete request was sent to the server.
706
+
707
+ - An <rgp:resTime> element that contains the date and time when the
708
+ original <rgp:restore> command was sent to the server.
709
+
710
+ - An <rgp:resReason> element that contains a brief explanation of
711
+ the reason for restoring the domain name.
712
+
713
+ - An <rgp:statement> element that contains a text statement that the
714
+ client has not restored the domain name in order to assume the
715
+ rights to use or sell the domain name for itself or for any third
716
+ party. Supporting information related to this statement MAY be
717
+ supplied in the <rgp:other> element described below. An OPTIONAL
718
+ "lang" attribute MAY be present to identify the language if
719
+ English (value "en") is not used to represent the statement.
720
+
721
+ - A second <rgp:statement> element that contains a text statement
722
+ that the information in the restore report is factual to the best
723
+ of the client's knowledge. An OPTIONAL "lang" attribute MAY be
724
+ present to identify the language if English (value "en") is not
725
+ used to represent the statement.
726
+
727
+
728
+
729
+
730
+ Hollenbeck Standards Track [Page 13]
731
+
732
+ RFC 3915 EPP Grace Period Mapping September 2004
733
+
734
+
735
+ - An OPTIONAL <rgp:other> element that contains any information
736
+ needed to support the statements provided by the client. This
737
+ element MAY contain both text and XML markup.
738
+
739
+ More detailed information describing the information required to be
740
+ provided in a restore report is available from ICANN.
741
+
742
+ Example <update> command without a restore report:
743
+
744
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
745
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
746
+ C: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
747
+ C: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
748
+ C: epp-1.0.xsd">
749
+ C: <command>
750
+ C: <update>
751
+ C: <domain:update
752
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
753
+ C: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
754
+ C: domain-1.0.xsd">
755
+ C: <domain:name>example.com</domain:name>
756
+ C: <domain:chg/>
757
+ C: </domain:update>
758
+ C: </update>
759
+ C: <extension>
760
+ C: <rgp:update xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0"
761
+ C: xsi:schemaLocation="urn:ietf:params:xml:ns:rgp-1.0
762
+ C: rgp-1.0.xsd">
763
+ C: <rgp:restore op="request"/>
764
+ C: </rgp:update>
765
+ C: </extension>
766
+ C: <clTRID>ABC-12345</clTRID>
767
+ C: </command>
768
+ C:</epp>
769
+
770
+ Example <update> command with a restore report:
771
+
772
+ C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
773
+ C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
774
+ C: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
775
+ C: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
776
+ C: epp-1.0.xsd">
777
+ C: <command>
778
+ C: <update>
779
+ C: <domain:update
780
+ C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
781
+ C: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
782
+ C: domain-1.0.xsd">
783
+
784
+
785
+
786
+ Hollenbeck Standards Track [Page 14]
787
+
788
+ RFC 3915 EPP Grace Period Mapping September 2004
789
+
790
+
791
+ C: <domain:name>example.com</domain:name>
792
+ C: <domain:chg/>
793
+ C: </domain:update>
794
+ C: </update>
795
+ C: <extension>
796
+ C: <rgp:update xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0"
797
+ C: xsi:schemaLocation="urn:ietf:params:xml:ns:rgp-1.0
798
+ C: rgp-1.0.xsd">
799
+ C: <rgp:restore op="report">
800
+ C: <rgp:report>
801
+ C: <rgp:preData>Pre-delete registration data goes here.
802
+ C: Both XML and free text are allowed.</rgp:preData>
803
+ C: <rgp:postData>Post-restore registration data goes here.
804
+ C: Both XML and free text are allowed.</rgp:postData>
805
+ C: <rgp:delTime>2003-07-10T22:00:00.0Z</rgp:delTime>
806
+ C: <rgp:resTime>2003-07-20T22:00:00.0Z</rgp:resTime>
807
+ C: <rgp:resReason>Registrant error.</rgp:resReason>
808
+ C: <rgp:statement>This registrar has not restored the
809
+ C: Registered Name in order to assume the rights to use
810
+ C: or sell the Registered Name for itself or for any
811
+ C: third party.</rgp:statement>
812
+ C: <rgp:statement>The information in this report is
813
+ C: true to best of this registrar's knowledge, and this
814
+ C: registrar acknowledges that intentionally supplying
815
+ C: false information in this report shall constitute an
816
+ C: incurable material breach of the
817
+ C: Registry-Registrar Agreement.</rgp:statement>
818
+ C: <rgp:other>Supporting information goes
819
+ C: here.</rgp:other>
820
+ C: </rgp:report>
821
+ C: </rgp:restore>
822
+ C: </rgp:update>
823
+ C: </extension>
824
+ C: <clTRID>ABC-12345</clTRID>
825
+ C: </command>
826
+ C:</epp>
827
+
828
+ When an extended <update> command without a restore report has been
829
+ processed successfully, the EPP response is as described in the EPP
830
+ domain mapping [2] except that an extension element is added to
831
+ describe grace period status as a result of processing the <update>
832
+ command. The extension element contains a single child element
833
+ (<upData>) that itself contains a single child element (<rgpStatus>)
834
+ that contains a single attribute "s" whose value MUST be
835
+ "pendingRestore" if the <restore> request has been accepted.
836
+
837
+
838
+
839
+
840
+
841
+
842
+ Hollenbeck Standards Track [Page 15]
843
+
844
+ RFC 3915 EPP Grace Period Mapping September 2004
845
+
846
+
847
+ Example "restore request" <update> response:
848
+
849
+ S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
850
+ S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
851
+ S: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
852
+ S: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
853
+ S: epp-1.0.xsd">
854
+ S: <response>
855
+ S: <result code="1000">
856
+ S: <msg lang="en">Command completed successfully</msg>
857
+ S: </result>
858
+ S: <extension>
859
+ S: <rgp:upData xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0"
860
+ S: xsi:schemaLocation="urn:ietf:params:xml:ns:rgp-1.0
861
+ S: rgp-1.0.xsd">
862
+ S: <rgp:rgpStatus s="pendingRestore"/>
863
+ S: </rgp:upData>
864
+ S: </extension>
865
+ S: <trID>
866
+ S: <clTRID>ABC-12345</clTRID>
867
+ S: <svTRID>54321-XYZ</svTRID>
868
+ S: </trID>
869
+ S: </response>
870
+ S:</epp>
871
+
872
+ When an extended <update> command with a restore report has been
873
+ processed successfully, the EPP response is as described in the EPP
874
+ domain mapping [2] with no registry grace period extension. Registry
875
+ grace period extension is not required because acceptance of the
876
+ restore report completes redemption grace period processing.
877
+
878
+ 5. Formal Syntax
879
+
880
+ An EPP object mapping is specified in XML Schema notation. The
881
+ formal syntax presented here is a complete schema representation of
882
+ the object mapping suitable for automated validation of EPP XML
883
+ instances. The BEGIN and END tags are not part of the schema; they
884
+ are used to note the beginning and ending of the schema for URI
885
+ registration purposes.
886
+
887
+ BEGIN
888
+ <?xml version="1.0" encoding="UTF-8"?>
889
+
890
+ <schema targetNamespace="urn:ietf:params:xml:ns:rgp-1.0"
891
+ xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0"
892
+ xmlns="http://www.w3.org/2001/XMLSchema"
893
+ elementFormDefault="qualified">
894
+
895
+
896
+
897
+
898
+ Hollenbeck Standards Track [Page 16]
899
+
900
+ RFC 3915 EPP Grace Period Mapping September 2004
901
+
902
+
903
+ <annotation>
904
+ <documentation>
905
+ Extensible Provisioning Protocol v1.0
906
+ domain name extension schema for registry grace period
907
+ processing.
908
+ </documentation>
909
+ </annotation>
910
+
911
+ <!--
912
+ Child elements found in EPP commands.
913
+ -->
914
+ <element name="update" type="rgp:updateType"/>
915
+
916
+ <!--
917
+ Child elements of the <update> command for the
918
+ redemption grace period.
919
+ -->
920
+ <complexType name="updateType">
921
+ <sequence>
922
+ <element name="restore" type="rgp:restoreType"/>
923
+ </sequence>
924
+ </complexType>
925
+
926
+ <complexType name="restoreType">
927
+ <sequence>
928
+ <element name="report" type="rgp:reportType"
929
+ minOccurs="0"/>
930
+ </sequence>
931
+ <attribute name="op" type="rgp:rgpOpType" use="required"/>
932
+ </complexType>
933
+
934
+ <!--
935
+ New redemption grace period operations can be defined
936
+ by adding to this enumeration.
937
+ -->
938
+ <simpleType name="rgpOpType">
939
+ <restriction base="token">
940
+ <enumeration value="request"/>
941
+ <enumeration value="report"/>
942
+ </restriction>
943
+ </simpleType>
944
+
945
+ <complexType name="reportType">
946
+ <sequence>
947
+ <element name="preData" type="rgp:mixedType"/>
948
+ <element name="postData" type="rgp:mixedType"/>
949
+ <element name="delTime" type="dateTime"/>
950
+ <element name="resTime" type="dateTime"/>
951
+
952
+
953
+
954
+ Hollenbeck Standards Track [Page 17]
955
+
956
+ RFC 3915 EPP Grace Period Mapping September 2004
957
+
958
+
959
+ <element name="resReason" type="rgp:reportTextType"/>
960
+ <element name="statement" type="rgp:reportTextType"
961
+ maxOccurs="2"/>
962
+ <element name="other" type="rgp:mixedType"
963
+ minOccurs="0"/>
964
+ </sequence>
965
+ </complexType>
966
+
967
+ <complexType name="mixedType">
968
+ <complexContent mixed="true">
969
+ <restriction base="anyType">
970
+ <sequence>
971
+ <any processContents="lax"
972
+ minOccurs="0" maxOccurs="unbounded"/>
973
+ </sequence>
974
+ </restriction>
975
+ </complexContent>
976
+ </complexType>
977
+
978
+ <complexType name="reportTextType">
979
+ <complexContent mixed="true">
980
+ <restriction base="anyType">
981
+ <sequence>
982
+ <any processContents="lax"
983
+ minOccurs="0" maxOccurs="unbounded"/>
984
+ </sequence>
985
+ <attribute name="lang" type="language" default="en"/>
986
+ </restriction>
987
+ </complexContent>
988
+ </complexType>
989
+
990
+ <!--
991
+ Child response elements.
992
+ -->
993
+ <element name="infData" type="rgp:respDataType"/>
994
+ <element name="upData" type="rgp:respDataType"/>
995
+
996
+ <!--
997
+ Response elements.
998
+ -->
999
+ <complexType name="respDataType">
1000
+ <sequence>
1001
+ <element name="rgpStatus" type="rgp:statusType"
1002
+ maxOccurs="unbounded"/>
1003
+ </sequence>
1004
+ </complexType>
1005
+
1006
+ <!--
1007
+
1008
+
1009
+
1010
+ Hollenbeck Standards Track [Page 18]
1011
+
1012
+ RFC 3915 EPP Grace Period Mapping September 2004
1013
+
1014
+
1015
+ Status is a combination of attributes and an optional
1016
+ human-readable message that may be expressed in languages
1017
+ other than English.
1018
+ -->
1019
+ <complexType name="statusType">
1020
+ <simpleContent>
1021
+ <extension base="normalizedString">
1022
+ <attribute name="s" type="rgp:statusValueType"
1023
+ use="required"/>
1024
+ <attribute name="lang" type="language" default="en"/>
1025
+ </extension>
1026
+ </simpleContent>
1027
+ </complexType>
1028
+
1029
+ <simpleType name="statusValueType">
1030
+ <restriction base="token">
1031
+ <enumeration value="addPeriod"/>
1032
+ <enumeration value="autoRenewPeriod"/>
1033
+ <enumeration value="renewPeriod"/>
1034
+ <enumeration value="transferPeriod"/>
1035
+ <enumeration value="pendingDelete"/>
1036
+ <enumeration value="pendingRestore"/>
1037
+ <enumeration value="redemptionPeriod"/>
1038
+ </restriction>
1039
+ </simpleType>
1040
+
1041
+ <!--
1042
+ End of schema.
1043
+ -->
1044
+ </schema>
1045
+ END
1046
+
1047
+ 6. Internationalization Considerations
1048
+
1049
+ EPP is represented in XML, which provides native support for encoding
1050
+ information using the Unicode character set and its more compact
1051
+ representations including UTF-8 [10]. Conformant XML processors
1052
+ recognize both UTF-8 and UTF-16 [11]. Though XML includes provisions
1053
+ to identify and use other character encodings through use of an
1054
+ "encoding" attribute in an <?xml?> declaration, use of UTF-8 is
1055
+ RECOMMENDED in environments where parser encoding support
1056
+ incompatibility exists.
1057
+
1058
+ As an extension of the EPP domain mapping [2], the elements, element
1059
+ content, attributes, and attribute values described in this document
1060
+ MUST inherit the internationalization conventions used to represent
1061
+ higher-layer domain and core protocol structures present in an XML
1062
+ instance that includes this extension.
1063
+
1064
+
1065
+
1066
+ Hollenbeck Standards Track [Page 19]
1067
+
1068
+ RFC 3915 EPP Grace Period Mapping September 2004
1069
+
1070
+
1071
+ 7. IANA Considerations
1072
+
1073
+ This document uses URNs to describe XML namespaces and XML schemas
1074
+ conforming to a registry mechanism described in RFC 3688 [8]. Two
1075
+ URI assignments were requested and have been registered by the IANA.
1076
+
1077
+ Registration request for the registry grace period namespace:
1078
+
1079
+ URI: urn:ietf:params:xml:ns:rgp-1.0
1080
+
1081
+ Registrant Contact: See the "Author's Address" section of this
1082
+ document.
1083
+
1084
+ XML: None. Namespace URIs do not represent an XML specification.
1085
+
1086
+ Registration request for the registry grace period XML schema:
1087
+
1088
+ URI: urn:ietf:params:xml:schema:rgp-1.0
1089
+
1090
+ Registrant Contact: See the "Author's Address" section of this
1091
+ document.
1092
+
1093
+ XML: See the "Formal Syntax" section of this document.
1094
+
1095
+ 8. Security Considerations
1096
+
1097
+ The mapping extensions described in this document do not provide any
1098
+ security services beyond those described by EPP [1], the EPP domain
1099
+ name mapping [2], and protocol layers used by EPP. The security
1100
+ considerations described in these other specifications apply to this
1101
+ specification as well.
1102
+
1103
+ As with other domain object updates, redemption of a deleted domain
1104
+ object MUST be restricted to the sponsoring client as authenticated
1105
+ using the mechanisms described in sections 2.9.1.1 and 7 of RFC 3730
1106
+ [1]. Any attempt to recover a deleted domain object by any client
1107
+ other than the sponsoring client MUST be rejected with an appropriate
1108
+ EPP authorization error.
1109
+
1110
+ 9. Acknowledgements
1111
+
1112
+ The author would like to thank the following people who have provided
1113
+ significant contributions to the development of this document:
1114
+
1115
+ James Gould, Antony Perkov, and Janusz Sienkiewicz.
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+ Hollenbeck Standards Track [Page 20]
1123
+
1124
+ RFC 3915 EPP Grace Period Mapping September 2004
1125
+
1126
+
1127
+ 10. References
1128
+
1129
+ 10.1. Normative References
1130
+
1131
+ [1] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", RFC
1132
+ 3730, March 2004.
1133
+
1134
+ [2] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) Domain
1135
+ Name Mapping", RFC 3731, March 2004.
1136
+
1137
+ [3] Bray, T., Paoli, J., Sperberg-McQueen, C., and E. Maler,
1138
+ "Extensible Markup Language (XML) 1.0 (2nd ed)", W3C REC-xml,
1139
+ October 2000, <http://www.w3.org/TR/REC-xml>.
1140
+
1141
+ [4] Thompson, H., Beech, D., Maloney, M., and N. Mendelsohn, "XML
1142
+ Schema Part 1: Structures", W3C REC-xmlschema-1, May 2001,
1143
+ <http://www.w3.org/TR/xmlschema-1/>.
1144
+
1145
+ [5] Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes", W3C
1146
+ REC-xmlschema-2, May 2001, <http://www.w3.org/TR/xmlschema-2/>.
1147
+
1148
+ [6] Bradner, S., "Key words for use in RFCs to Indicate Requirement
1149
+ Levels", BCP 14, RFC 2119, March 1997.
1150
+
1151
+ [7] Klyne, G. and C. Newman, "Date and Time on the Internet:
1152
+ Timestamps", RFC 3339, July 2002.
1153
+
1154
+ [8] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January
1155
+ 2004.
1156
+
1157
+ 10.2. Informative References
1158
+
1159
+ [9] Harrenstien, K., Stahl, M., and E. Feinler, "NICNAME/WHOIS", RFC
1160
+ 954, October 1985.
1161
+
1162
+ [10] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD
1163
+ 63, RFC 3629, November 2003.
1164
+
1165
+ [11] Hoffman, P. and F. Yergeau, "UTF-16, an encoding of ISO 10646",
1166
+ RFC 2781, February 2000.
1167
+
1168
+
1169
+
1170
+
1171
+
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+
1178
+ Hollenbeck Standards Track [Page 21]
1179
+
1180
+ RFC 3915 EPP Grace Period Mapping September 2004
1181
+
1182
+
1183
+ Author's Address
1184
+
1185
+ Scott Hollenbeck
1186
+ VeriSign, Inc.
1187
+ 21345 Ridgetop Circle
1188
+ Dulles, VA 20166-6503
1189
+ US
1190
+
1191
+ EMail: shollenbeck@verisign.com
1192
+
1193
+
1194
+
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+ Hollenbeck Standards Track [Page 22]
1235
+
1236
+ RFC 3915 EPP Grace Period Mapping September 2004
1237
+
1238
+
1239
+ Full Copyright Statement
1240
+
1241
+ Copyright (C) The Internet Society (2004).
1242
+
1243
+ This document is subject to the rights, licenses and restrictions
1244
+ contained in BCP 78, and except as set forth therein, the authors
1245
+ retain all their rights.
1246
+
1247
+ This document and the information contained herein are provided on an
1248
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/S HE
1249
+ REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
1250
+ INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
1251
+ IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
1252
+ THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1253
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1254
+
1255
+ Intellectual Property
1256
+
1257
+ The IETF takes no position regarding the validity or scope of any
1258
+ Intellectual Property Rights or other rights that might be claimed to
1259
+ pertain to the implementation or use of the technology described in
1260
+ this document or the extent to which any license under such rights
1261
+ might or might not be available; nor does it represent that it has
1262
+ made any independent effort to identify any such rights. Information
1263
+ on the IETF's procedures with respect to rights in IETF Documents can
1264
+ be found in BCP 78 and BCP 79.
1265
+
1266
+ Copies of IPR disclosures made to the IETF Secretariat and any
1267
+ assurances of licenses to be made available, or the result of an
1268
+ attempt made to obtain a general license or permission for the use of
1269
+ such proprietary rights by implementers or users of this
1270
+ specification can be obtained from the IETF on-line IPR repository at
1271
+ http://www.ietf.org/ipr.
1272
+
1273
+ The IETF invites any interested party to bring to its attention any
1274
+ copyrights, patents or patent applications, or other proprietary
1275
+ rights that may cover technology that may be required to implement
1276
+ this standard. Please address the information to the IETF at ietf-
1277
+ ipr@ietf.org.
1278
+
1279
+ Acknowledgement
1280
+
1281
+ Funding for the RFC Editor function is currently provided by the
1282
+ Internet Society.
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+ Hollenbeck Standards Track [Page 23]
1291
+