epp-client-rgp 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+