draft-ietf-regext-epp-registry-maintenance-06.txt   draft-ietf-regext-epp-registry-maintenance-07.txt 
Internet Engineering Task Force (IETF) T. Sattler Internet Engineering Task Force (IETF) T. Sattler
Internet-Draft Internet-Draft
Intended status: Standards Track R. Carney Intended status: Standards Track R. Carney
Expires: June 30, 2021 J. Kolker Expires: June 30, 2021 J. Kolker
GoDaddy Inc. GoDaddy Inc.
December 8, 2020 December 11, 2020
Registry Maintenance Notifications for the Registry Maintenance Notifications for the
Extensible Provisioning Protocol (EPP) Extensible Provisioning Protocol (EPP)
draft-ietf-regext-epp-registry-maintenance-06 draft-ietf-regext-epp-registry-maintenance-07
Abstract Abstract
This document describes an Extensible Provision Protocol (EPP) This document describes an Extensible Provision Protocol (EPP)
mapping for registry's maintenance notifications. mapping for registry's maintenance notifications.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
skipping to change at page 2, line 12 skipping to change at page 2, line 12
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology and Definitions . . . . . . . . . . . . . . . 3 1.1. Terminology and Definitions . . . . . . . . . . . . . . . 3
2. Object Attributes . . . . . . . . . . . . . . . . . . . . . . 3 2. Object Attributes . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Internationalized Domain Names . . . . . . . . . . . . . 3 2.1. Internationalized Domain Names . . . . . . . . . . . . . 3
2.2. Dates and Times . . . . . . . . . . . . . . . . . . . . . 3 2.2. Dates and Times . . . . . . . . . . . . . . . . . . . . . 3
2.3. Maintenance Elements . . . . . . . . . . . . . . . . . . 4 2.3. Maintenance Elements . . . . . . . . . . . . . . . . . . 4
3. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 6 3. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 5
3.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 6 3.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 5
3.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 6 3.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 6
3.1.2. EPP <transfer> Command . . . . . . . . . . . . . . . 6 3.1.2. EPP <transfer> Command . . . . . . . . . . . . . . . 6
3.1.3. EPP <info> Command . . . . . . . . . . . . . . . . . 6 3.1.3. EPP <info> Command . . . . . . . . . . . . . . . . . 6
3.1.3.1. Info Maintenance Item . . . . . . . . . . . . . . . 6 3.1.3.1. Info Maintenance Item . . . . . . . . . . . . . . . 6
3.1.3.2. Info Maintenance List . . . . . . . . . . . . . . . 8 3.1.3.2. Info Maintenance List . . . . . . . . . . . . . . . 8
3.1.4. EPP <poll> Command . . . . . . . . . . . . . . . . . 9 3.1.4. EPP <poll> Command . . . . . . . . . . . . . . . . . 9
3.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 11 3.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 10
3.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 11 3.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 10
3.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 11 3.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 11
3.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 11 3.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 11
3.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 11 3.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 11
3.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 11 3.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 11
4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 12 4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1. Registry Maintenance EPP Mapping Schema . . . . . . . . . 12 4.1. Registry Maintenance EPP Mapping Schema . . . . . . . . . 11
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
5.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 17 5.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 16
5.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 17 5.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 16
6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 6. Security Considerations . . . . . . . . . . . . . . . . . . . 16
7. Implementation Status . . . . . . . . . . . . . . . . . . . . 18 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 17
7.1. GoDaddy Registry . . . . . . . . . . . . . . . . . . . . 18 7.1. GoDaddy Registry . . . . . . . . . . . . . . . . . . . . 17
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.1. Normative References . . . . . . . . . . . . . . . . . . 19 8.1. Normative References . . . . . . . . . . . . . . . . . . 17
8.2. Informative References . . . . . . . . . . . . . . . . . 19 8.2. Informative References . . . . . . . . . . . . . . . . . 18
Appendix A. Change History . . . . . . . . . . . . . . . . . . . 19 Appendix A. Change History . . . . . . . . . . . . . . . . . . . 18
A.1. Change from draft-sattler-epp-poll-maintenance-response to A.1. Change from draft-sattler-epp-poll-maintenance-response to
draft-sattler-epp-registry-maintenance . . . . . . . . . 19 draft-sattler-epp-registry-maintenance . . . . . . . . . 18
A.2. Change from draft-sattler-epp-registry-maintenance to A.2. Change from draft-sattler-epp-registry-maintenance to
draft-ietf-regext-epp-registry-maintenance . . . . . . . 19 draft-ietf-regext-epp-registry-maintenance . . . . . . . 18
A.3. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 19 A.3. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 18
A.4. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 20 A.4. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 18
A.5. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 20 A.5. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 19
A.6. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 20 A.6. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 19
A.7. Change from 04 to 05 . . . . . . . . . . . . . . . . . . 20 A.7. Change from 04 to 05 . . . . . . . . . . . . . . . . . . 19
A.8. Change from 05 to 06 . . . . . . . . . . . . . . . . . . 20 A.8. Change from 05 to 06 . . . . . . . . . . . . . . . . . . 19
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 21 A.9. Change from 06 to 07 . . . . . . . . . . . . . . . . . . 19
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 19
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20
1. Introduction 1. Introduction
Registries usually conduct maintenances and inform registrars in Registries usually conduct maintenances and inform registrars in
different ways. Given the expansion of the DNS namespace, it is now different ways. Given the DNS namespace expansion, it is now
desirable to provide a method for EPP servers to notify EPP clients desirable to provide methods for EPP servers to notify EPP clients
as well as a method for EPP clients to query EPP servers for upcoming and EPP clients to query EPP servers for upcoming maintenances.
maintenances.
This document describes an extension mapping for version 1.0 of the This document describes an extension mapping for version 1.0 of the
Extensible Provision Protocol [RFC5730]. This mapping provides a Extensible Provision Protocol [RFC5730]. This mapping provides a
mechanism by which EPP servers may notify and EPP clients to query mechanism by which EPP servers may notify and EPP clients to query
for upcoming maintenances. upcoming maintenances.
1.1. Terminology and Definitions 1.1. Terminology and Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119] when document are to be interpreted as described in [RFC2119] when
specified in their uppercase forms. specified in their uppercase forms.
XML is case sensitive. Unless stated otherwise, XML specifications XML is case sensitive. Unless stated otherwise, XML specifications
moreover, examples provided in this document MUST be interpreted in moreover, examples provided in this document MUST be interpreted in
the character case presented to develop a conforming implementation. the character case presented to develop a conforming implementation.
"maint" is used as an abbreviation for "urn:ietf:params:xml:ns:epp: "maint" is used as an abbreviation for "urn:ietf:params:xml:ns:epp:
maintenance-0.1". The XML namespace prefix "maint" is used, but maintenance-0.1". The XML namespace prefix "maint" is used, but
implementations MUST NOT depend on it and instead employ a proper implementations MUST NOT depend on it and instead employ a proper
namespace-aware XML parser and serializer to interpret and output namespace-aware XML parser and serializer to interpret and output
the XML documents. the XML documents.
In examples, "C:" represents lines sent by a protocol client and In examples, "C:" represents lines sent by a protocol client, and
"S:" represents lines returned by a protocol server. Indentation and "S:" represents lines returned by a protocol server. Indentation and
white space in examples are provided only to illustrate element white space in examples only illustrate element relationships and are
relationships and are not a REQUIRED feature of this protocol. not a REQUIRED feature of this protocol.
2. Object Attributes 2. Object Attributes
2.1. Internationalized Domain Names 2.1. Internationalized Domain Names
Names of affected hosts MUST be provided as A-label according to Names of affected hosts MUST be provided as A-label according to
[RFC5891]. [RFC5891].
2.2. Dates and Times 2.2. Dates and Times
skipping to change at page 4, line 11 skipping to change at page 4, line 11
Coordinated Time (UTC) using the Gregorian calendar. The extended Coordinated Time (UTC) using the Gregorian calendar. The extended
date-time form using upper case "T" and "Z" characters defined in ISO date-time form using upper case "T" and "Z" characters defined in ISO
8601 [RFC3339] MUST be used to represent date-time values. 8601 [RFC3339] MUST be used to represent date-time values.
2.3. Maintenance Elements 2.3. Maintenance Elements
The <maint:item> element describes a single registry maintenance The <maint:item> element describes a single registry maintenance
event during a specific period. This element is used in a maintenance event during a specific period. This element is used in a maintenance
item EPP <info> response and <poll> message. item EPP <info> response and <poll> message.
For creating a new maintenance the attribute <maint:crDate> MUST be
set and the attribute <maint:upDate> SHALL NOT be present.
For updating a maintenance the attributes <maint:crDate> and
<maint:upDate> MUST be set.
<maint:id> <maint:id>
MUST be present and a server unique id and SHALL NOT be Server unique identifier for the maintenance with an OPTIONAL "msg"
changed if maintenance is updated or deleted. A human-readable attribute that includes a human-readable description of the
description of the maintenance is identified via an OPTIONAL maintenance. The server unique identifier SHALL NOT be changed if
"msg" attribute. the maintenance is updated or deleted. When the "msg" attribute is
set, an OPTIONAL "lang" attribute MAY be present to identify the
language if the negotiated value is something other than the
default value of "en" (English).
<maint:systems> <maint:systems>
MUST be present and contains one or more <maint:system> elements. Indicates one or more <maint:system> elements that are affected by
The server SHOULD NOT list systems which are not affected by the the maintenance.
maintenance.
<maint:system> <maint:system>
MUST be present at least once and has an element of <maint:name>, The <maint:system> element contains the following child
<maint:host> and <maint:impact>. elements:
<maint:name> <maint:name>
MUST be present and indicates the name of the affected system, Indicates the name of the affected system, such as "EPP",
such as "EPP", "WHOIS", "DNS", "Portal", etc. "WHOIS", "DNS", "Portal", etc.
<maint:host> <maint:host>
MUST be present and indicates the affected maintained system Indicates the affected maintained system contains the hostname,
contains the hostname and OPTIONAL an IP address. which SHALL be A-label according [RFC5891].
Hostname SHALL be A-label according [RFC5891].
IPv4 addresses SHALL be dotted-decimal notation.
An example of this textual representation is "192.0.2.0".
IPv6 addresses SHALL be according [RFC5952].
An example of this textual representation is
"2001:db8::1:0:0:1".
<maint:impact> <maint:impact>
MUST be present and contains the impact level; values MUST Indicates the impact level; values MUST either be "full" or
either be "full" or "partial". "partial".
<maint:environment> <maint:environment>
MUST be present and indicates the type of the affected system; Indicates the type of the affected system; the attribute type is
the attribute type is REQUIRED and SHOULD either be "production", REQUIRED and SHOULD either be "production", "ote", "staging",
"ote", "staging", "dev" or "custom". And alternatively the "dev" or "custom". And alternatively, the attribute name could be
attribute name could be used to define a server specific affected used to define a server specific affected system, for example. In
system for example. In that case name MUST be set: that case, name MUST be set:
<maint:environment type="custom" name="marketing"/> <maint:environment type="custom" name="marketing"/>
<maint:start> <maint:start>
SHOULD be present and indicates the start of the maintenance Indicates the date and time of the start of the maintenance.
according ISO 8601 [RFC3339].
Format: YYYY-MM-DDThh:mm:ssTZ
<maint:end> <maint:end>
SHOULD be present and indicates the end of the maintenance Indicates the date and time of the end of the maintenance. The
according to ISO 8601 [RFC3339], and MUST be equal to or greater <maint:end> element MUST be equal or greater than the
than <maint:start>. <maint:start> element.
Format: YYYY-MM-DDThh:mm:ssTZ
<maint:reason> <maint:reason>
MUST be present and contains the reason behind the maintenance; Indicates the reason behind the maintenance; values SHOULD either
values SHOULD either be "planned" or "emergency". be "planned" or "emergency".
<maint:detail> <maint:detail>
MAY be present and contains URI to detailed maintenance Contains URI to detailed maintenance description.
description.
<maint:description> <maint:description>
MAY be present and provides a freeform description of the A freeform description of the maintenance without having to
maintenance without having to create and traverse an external create and traverse an external resource defined by the
resource. <maint:detail> element. An OPTIONAL "lang" attribute MAY be
present to identify the language if the negotiated value is
something other than the default value of "en" (English).
<maint:tlds> <maint:tlds>
SHOULD be present and contains <maint:tld> elements. The <maint:tlds> element contains the following child element:
<maint:tld> <maint:tld>
MUST be present and contains the affected top-level domain. Contains the affected top-level domain, which SHALL be A-label
A-label format according to [RFC5891]. according [RFC5891].
<maint:intervention> <maint:intervention>
SHOULD be present and contains <maint:connection> and The <maint:intervention> element contains the following child
<maint:implementation>. elements:
<maint:connection> <maint:connection>
MUST be present and indicates if a client needs to do The value SHALL be boolean and indicates if a client needs to
something that is connection-related, such as a reconnect. The do something that is connection-related, such as a reconnect.
value SHALL be boolean.
<maint:implementation> <maint:implementation>
MUST be present and indicates if a client needs to do something The value SHALL be boolean and indicates if a client needs to
that is implementation-related, such as a code change. The do something that is implementation-related, such as a code
value SHALL be boolean. change.
<maint:crDate> <maint:crDate>
MUST be present and contains the creation date of the maintenance Indicates the date and time of the maintenance object creation.
according ISO 8601 [RFC3339].
Format: YYYY-MM-DDThh:mm:ssTZ
<maint:upDate> <maint:upDate>
MAY be present and contains the updated date of the maintenance Indicates the date and time of the most recent maintenance object
according to ISO 8601 [RFC3339], and if set MUST be equal to or modification. This element MUST NOT be present if the maintenance
greater than <main:crDate>. object has never been modified.
Format: YYYY-MM-DDThh:mm:ssTZ
3. EPP Command Mapping 3. EPP Command Mapping
A detailed description of the EPP syntax and semantics can be found A detailed description of the EPP syntax and semantics can be found
in the EPP core protocol specification [RFC5730]. The command in the EPP core protocol specification [RFC5730]. The command
mappings described here are specifically for the use to notify of mappings described here are specifically for the use to notify of
Registry Maintenances and Registry Maintenance object mapping. Registry Maintenances and Registry Maintenance object mapping.
3.1. EPP Query Commands 3.1. EPP Query Commands
skipping to change at page 6, line 43 skipping to change at page 6, line 23
no mapping defined for the EPP <transfer> command. no mapping defined for the EPP <transfer> command.
3.1.3. EPP <info> Command 3.1.3. EPP <info> Command
EPP provides the <info> command that is used to retrieve registry EPP provides the <info> command that is used to retrieve registry
maintenance information. In addition to the standard EPP command maintenance information. In addition to the standard EPP command
elements, the <info> command MUST contain a <maint:info> elements, the <info> command MUST contain a <maint:info>
element that identifies the maintenance namespace. element that identifies the maintenance namespace.
The <maint:info> element MUST contain a child element. It is either The <maint:info> element MUST contain a child element. It is either
<maint:id> to retrieve a specific maintenance item or <maint:id>, described in Section 3.1.3.1, to query for a specific
<maint:list> to query all maintenance items. maintenance item or <maint:list>, described in Section 3.1.3.2, to
query all maintenance items.
3.1.3.1. Info Maintenance Item 3.1.3.1. Info Maintenance Item
The information on a specific Maintenance Item can be retrieved by The information on a specific maintenance item can be retrieved by
using <info> command with the element <maint:info> and the child using the <info> command with the element <maint:info> and the
element <maint:id>. <maint:id> child element, defined in Section 2.3. If the maintenance
identifier does not exist, the server MUST return an EPP error result
If a <maint:info> is sent with a <maint:id> that does not exist on code of 2303 [RFC5730].
the server side, then the result code 2303 MUST be responded.
Example to retrieve a specific maintenance item in an <info> command. Example to retrieve a specific maintenance item in an <info> command.
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command> C: <command>
C: <info> C: <info>
C: <maint:info C: <maint:info
C: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-0.1"> C: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-0.1">
C: <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6</maint:id> C: <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6</maint:id>
skipping to change at page 7, line 47 skipping to change at page 7, line 26
S: </maint:id> S: </maint:id>
S: <maint:systems> S: <maint:systems>
S: <maint:system> S: <maint:system>
S: <maint:name>EPP</maint:name> S: <maint:name>EPP</maint:name>
S: <maint:host>epp.registry.example S: <maint:host>epp.registry.example
S: </maint:host> S: </maint:host>
S: <maint:impact>full</maint:impact> S: <maint:impact>full</maint:impact>
S: </maint:system> S: </maint:system>
S: </maint:systems> S: </maint:systems>
S: <maint:environment type="production"/> S: <maint:environment type="production"/>
S: <maint:start>2020-09-30T06:00:00Z</maint:start> S: <maint:start>2020-12-30T06:00:00Z</maint:start>
S: <maint:end>2020-09-30T14:25:57Z</maint:end> S: <maint:end>2020-12-30T14:25:57Z</maint:end>
S: <maint:reason>planned</maint:reason> S: <maint:reason>planned</maint:reason>
S: <maint:detail> S: <maint:detail>
S: https://www.registry.example/notice?123 S: https://www.registry.example/notice?123
S: </maint:detail> S: </maint:detail>
S: <maint:description lang="en">free text S: <maint:description lang="en">free text
S: </maint:description> S: </maint:description>
S: <maint:tlds> S: <maint:tlds>
S: <maint:tld>example</maint:tld> S: <maint:tld>example</maint:tld>
S: <maint:tld>test</maint:tld> S: <maint:tld>test</maint:tld>
S: </maint:tlds> S: </maint:tlds>
S: <maint:intervention> S: <maint:intervention>
S: <maint:connection>false</maint:connection> S: <maint:connection>false</maint:connection>
S: <maint:implementation>false</maint:implementation> S: <maint:implementation>false</maint:implementation>
S: </maint:intervention> S: </maint:intervention>
S: <maint:crDate>2020-03-08T22:10:00Z</maint:crDate> S: <maint:crDate>2020-09-08T22:10:00Z</maint:crDate>
S: </maint:item> S: </maint:item>
S: </maint:infData> S: </maint:infData>
S: </resData> S: </resData>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID> S: <svTRID>54321-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
S:</epp> S:</epp>
3.1.3.2. Info Maintenance List 3.1.3.2. Info Maintenance List
The Info Maintenance List can be retrieved by using the <info> The information for a list of maintenance items can be retrieved by
command and the element <maint:info> with the child element using the <info> command with the <maint:info> element and the empty
<maint:list/>. Server policy determines if previous maintenances will <maint:list> child element. Server policy determines if previous
be listed in the <maint:list>. maintenances will be included in the list of maintenance items.
Example to retrieve the maintenance list in an <info> command. Example to retrieve the maintenance list in an <info> command.
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command> C: <command>
C: <info> C: <info>
C: <maint:info C: <maint:info
C: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-0.1"> C: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-0.1">
C: <maint:list/> C: <maint:list/>
skipping to change at page 9, line 4 skipping to change at page 8, line 26
C: <command> C: <command>
C: <info> C: <info>
C: <maint:info C: <maint:info
C: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-0.1"> C: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-0.1">
C: <maint:list/> C: <maint:list/>
C: </maint:info> C: </maint:info>
C: </info> C: </info>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C:</epp> C:</epp>
When an <info> command has been processed successfully, the EPP When an <info> command has been processed successfully, the EPP
<resData> element MUST contain a child <maint:infData> element <resData> element MUST contain a child <maint:infData> element
that identifies the maintenance namespace. The <maint:infData> that identifies the maintenance namespace. The <maint:infData>
element contains the <maint:list> element a list of <maint:listItem> element contains the <maint:list> element with zero or more
elements. The <maint:listItem> element contains the following child <maint:listItem> child elements. The <maint:listItem> element
elements: contains the following child elements:
<maint:id>: <maint:id> defined in Section 2.3. <maint:id>: <maint:id> defined in Section 2.3.
<maint:start>: <maint:start> defined in Section 2.3. <maint:start>: <maint:start> defined in Section 2.3.
<maint:end>: <maint:end> defined in Section 2.3. <maint:end>: <maint:end> defined in Section 2.3.
<maint:crDate>: <maint:crDate> defined in Section 2.3. <maint:crDate>: <maint:crDate> defined in Section 2.3.
<maint:upDate>: OPTIONAL <maint:upDate> defined in Section 2.3. <maint:upDate>: OPTIONAL <maint:upDate> defined in Section 2.3.
Example of returning the maintenance list in an <info> response. Example of returning the maintenance list in an <info> response.
S:<?xml version="1.0" encoding="UTF-8"?> S:<?xml version="1.0" encoding="UTF-8"?>
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
skipping to change at page 9, line 31 skipping to change at page 8, line 54
S: <result code="1000"> S: <result code="1000">
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: </result> S: </result>
S: <resData> S: <resData>
S: <maint:infData S: <maint:infData
S: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-0.1"> S: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-0.1">
S: <maint:list> S: <maint:list>
S: <maint:listItem> S: <maint:listItem>
S: <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6 S: <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6
S: </maint:id> S: </maint:id>
S: <maint:start>2020-04-30T06:00:00Z</maint:start> S: <maint:start>2020-12-30T06:00:00Z</maint:start>
S: <maint:end>2020-04-30T07:00:00Z</maint:end> S: <maint:end>2020-12-30T07:00:00Z</maint:end>
S: <maint:crDate>2020-02-08T22:10:00Z</maint:crDate> S: <maint:crDate>2020-09-08T22:10:00Z</maint:crDate>
S: </maint:listItem> S: </maint:listItem>
S: <maint:listItem> S: <maint:listItem>
S: <maint:id>91e9dabf-c4e9-4c19-a56c-78e3e89c2e2f S: <maint:id>91e9dabf-c4e9-4c19-a56c-78e3e89c2e2f
S: </maint:id> S: </maint:id>
S: <maint:start>2020-06-15T04:30:00Z</maint:start> S: <maint:start>2021-02-15T04:30:00Z</maint:start>
S: <maint:end>2020-06-15T05:30:00Z</maint:end> S: <maint:end>2021-02-15T05:30:00Z</maint:end>
S: <maint:crDate>2020-02-08T22:10:00Z</maint:crDate> S: <maint:crDate>2020-09-08T22:11:00Z</maint:crDate>
S: <maint:upDate>2020-03-08T20:11:00Z</maint:upDate> S: <maint:upDate>2020-10-17T15:00:00Z</maint:upDate>
S: </maint:listItem> S: </maint:listItem>
S: </maint:list> S: </maint:list>
S: </maint:infData> S: </maint:infData>
S: </resData> S: </resData>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID> S: <svTRID>54321-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
S:</epp> S:</epp>
3.1.4. EPP <poll> Command 3.1.4. EPP <poll> Command
The EPP <poll> command and response is defined in Section 2.9.2.3 of The EPP <poll> command and response is defined in Section 2.9.2.3 of
[RFC5730]. The Registry Maintenance Notification is included in the [RFC5730]. The Registry Maintenance Notification is included in the
EPP <poll> response of [RFC5730]. EPP <poll> response of [RFC5730].
For the Registry Maintenance Notification, there are three types of For the Registry Maintenance Notification, there are three types of
poll messages. The poll message applies whenever the domain name poll messages. A poll message applies when a maintenance is created,
registry creates, updates, or deletes maintenance. In the case of updated, or deleted. In the case of a Registry Maintenance specific
a Registry Maintenance specific message, a <maint:infData> element message, a <maint:infData> element will be included within the
will be included within the <resData> element of the standard <poll> <resData> element of the standard <poll> response. The
response. <maint:infData> element contains the <maint:item> element defined
in Section 2.3.
The <maint:infData> element will include a reference to the
Registry Maintenance namespace. EPP data contained within the
<maint:infData> element is formatted according to the
maintenance-poll schema.
Please see the defintion of <maint> elements in Section 2.3.
Example <poll> command: Example <poll> command:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command> C: <command>
C: <poll op="req"/> C: <poll op="req"/>
C: <clTRID>ABC-12345</clTRID> C: <clTRID>ABC-12345</clTRID>
C: </command> C: </command>
C:</epp> C:</epp>
skipping to change at page 10, line 55 skipping to change at page 10, line 19
S: <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6</maint:id> S: <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6</maint:id>
S: <maint:systems> S: <maint:systems>
S: <maint:system> S: <maint:system>
S: <maint:name>EPP</maint:name> S: <maint:name>EPP</maint:name>
S: <maint:host>epp.registry.example S: <maint:host>epp.registry.example
S: </maint:host> S: </maint:host>
S: <maint:impact>full</maint:impact> S: <maint:impact>full</maint:impact>
S: </maint:system> S: </maint:system>
S: </maint:systems> S: </maint:systems>
S: <maint:environment type="production"/> S: <maint:environment type="production"/>
S: <maint:start>2020-10-30T06:00:00Z</maint:start> S: <maint:start>2020-12-30T06:00:00Z</maint:start>
S: <maint:end>2020-10-30T14:25:57Z</maint:end> S: <maint:end>2020-12-30T14:25:57Z</maint:end>
S: <maint:reason>planned</maint:reason> S: <maint:reason>planned</maint:reason>
S: <maint:detail> S: <maint:detail>
S: https://www.registry.example/notice?123 S: https://www.registry.example/notice?123
S: </maint:detail> S: </maint:detail>
S: <maint:tlds> S: <maint:tlds>
S: <maint:tld>example</maint:tld> S: <maint:tld>example</maint:tld>
S: <maint:tld>test</maint:tld> S: <maint:tld>test</maint:tld>
S: </maint:tlds> S: </maint:tlds>
S: <maint:intervention> S: <maint:intervention>
S: <maint:connection>false</maint:connection> S: <maint:connection>false</maint:connection>
S: <maint:implementation>false</maint:implementation> S: <maint:implementation>false</maint:implementation>
S: </maint:intervention> S: </maint:intervention>
S: <maint:crDate>2020-02-08T22:10:00Z</maint:crDate> S: <maint:crDate>2020-10-08T22:10:00Z</maint:crDate>
S: </maint:item> S: </maint:item>
S: </maint:infData> S: </maint:infData>
S: </resData> S: </resData>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID> S: <svTRID>54321-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
S:</epp> S:</epp>
skipping to change at page 12, line 7 skipping to change at page 11, line 27
Transfer semantics do not apply to maintenance objects, so there is Transfer semantics do not apply to maintenance objects, so there is
no mapping defined for the EPP <transfer> command. no mapping defined for the EPP <transfer> command.
3.2.5. EPP <update> Command 3.2.5. EPP <update> Command
Update semantics do not apply to maintenance objects, so there is no Update semantics do not apply to maintenance objects, so there is no
mapping defined for the EPP <update> command. mapping defined for the EPP <update> command.
4. Formal Syntax 4. Formal Syntax
One schema is presented here that is the EPP Registry Maintenance The EPP Registry Maintenance schema is presented here.
schema.
The formal syntax presented here is a complete schema representation The formal syntax presented here is a complete schema representation
of the object mapping suitable for automated validation of EPP XML of the object mapping suitable for automated validation of EPP XML
instances. The BEGIN and END tags are not part of the schema; they instances. The <CODE BEGINS> and <CODE ENDS> tags are not part of
are used to note the beginning and end of the schema for URI the schema; they are used to note the beginning and end of the
registration purposes. schema for URI registration purposes.
4.1. Registry Maintenance EPP Mapping Schema 4.1. Registry Maintenance EPP Mapping Schema
BEGIN <CODE BEGINS>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:ietf:params:xml:ns:epp: <schema targetNamespace="urn:ietf:params:xml:ns:epp:
maintenance-0.1" maintenance-0.1"
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
xmlns:epp="urn:ietf:params:xml:ns:epp-1.0" xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-0.1" xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-0.1"
xmlns="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"> elementFormDefault="qualified">
<!-- <!--
Import common element types Import common element types
--> -->
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/> <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>
<import namespace="urn:ietf:params:xml:ns:epp-1.0"/> <import namespace="urn:ietf:params:xml:ns:epp-1.0"/>
<annotation> <annotation>
<documentation> <documentation>
Extensible Provisioning Protocol v1.0 Extensible Provisioning Protocol v1.0
Maintenance Mapping Schema. Registry Maintenance Mapping Schema.
</documentation> </documentation>
</annotation> </annotation>
<!-- <!--
Child elements found in EPP commands. Child elements found in EPP commands.
--> -->
<element name="info" type="maint:infoType"/> <element name="info" type="maint:infoType"/>
<!-- <!--
Child elements of the <info> command. Child elements of the <info> command.
--> -->
<complexType name="infoType"> <complexType name="infoType">
<sequence> <sequence>
<choice> <choice>
<element name="list"/> <element name="list"/>
<element name="id" type="maint:idType"/> <element name="id" type="maint:idType"/>
</choice> </choice>
</sequence> </sequence>
skipping to change at page 15, line 14 skipping to change at page 14, line 24
<!-- <!--
system element system element
--> -->
<complexType name="systemType"> <complexType name="systemType">
<sequence> <sequence>
<element name="name" type="token"/> <element name="name" type="token"/>
<element name="host" type="maint:addrType"/> <element name="host" type="maint:addrType"/>
<element name="impact" type="maint:impactEnum"/> <element name="impact" type="maint:impactEnum"/>
</sequence> </sequence>
</complexType> </complexType>
<!-- <!--
host element host element
--> -->
<complexType name="addrType"> <complexType name="addrType">
<simpleContent> <simpleContent>
<extension base="maint:addrStringType"> <extension base="maint:addrStringType"/>
<attribute name="ip" type="maint:ipType" default="v4"/>
</extension>
</simpleContent> </simpleContent>
</complexType> </complexType>
<simpleType name="addrStringType"> <simpleType name="addrStringType">
<restriction base="token"> <restriction base="token">
<minLength value="3"/> <minLength value="3"/>
<maxLength value="45"/> <maxLength value="45"/>
</restriction> </restriction>
</simpleType> </simpleType>
<simpleType name="ipType"> <simpleType name="ipType">
<restriction base="token"> <restriction base="token">
<enumeration value="v4"/> <enumeration value="v4"/>
<enumeration value="v6"/> <enumeration value="v6"/>
</restriction> </restriction>
</simpleType> </simpleType>
<!-- <!--
Enumerated list of environments Enumerated list of environments
--> -->
<simpleType name="envEnum"> <simpleType name="envEnum">
<restriction base="token"> <restriction base="token">
<enumeration value="production"/> <enumeration value="production"/>
<enumeration value="ote"/> <enumeration value="ote"/>
<enumeration value="staging"/> <enumeration value="staging"/>
<enumeration value="dev"/> <enumeration value="dev"/>
<enumeration value="custom"/> <enumeration value="custom"/>
skipping to change at page 17, line 8 skipping to change at page 15, line 46
<complexType name="interventionType"> <complexType name="interventionType">
<sequence> <sequence>
<element name="connection" type="boolean"/> <element name="connection" type="boolean"/>
<element name="implementation" type="boolean"/> <element name="implementation" type="boolean"/>
</sequence> </sequence>
</complexType> </complexType>
<!-- <!--
End of schema. End of schema.
--> -->
</schema> </schema>
END <CODE ENDS>
5. IANA Considerations 5. IANA Considerations
5.1. XML Namespace 5.1. XML Namespace
This document uses URNs to describe XML namespaces and XML schemas This document uses URNs to describe XML namespaces and XML schemas
conforming to a registry mechanism defined in [RFC3688]. conforming to a registry mechanism defined in [RFC3688].
Registration request for the maintenance namespace: Registration request for the maintenance namespace:
skipping to change at page 19, line 31 skipping to change at page 18, line 23
8.2. Informative References 8.2. Informative References
[RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the [RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the
Internet: Timestamps", RFC 3339, July 2002, Internet: Timestamps", RFC 3339, July 2002,
<https://www.rfc-editor.org/info/rfc3339>. <https://www.rfc-editor.org/info/rfc3339>.
[RFC5891] Klensin, J., "Internationalized Domain Names in [RFC5891] Klensin, J., "Internationalized Domain Names in
Applications (IDNA): Protocol", RFC 5891, August 2010, Applications (IDNA): Protocol", RFC 5891, August 2010,
<https://www.rfc-editor.org/info/rfc5891>. <https://www.rfc-editor.org/info/rfc5891>.
[RFC5952] Kawamura, S. and Kawashima, M., "A Recommendation for IPv6
Address Text Representation", RFC 5952, August 2010,
<https://www.rfc-editor.org/info/rfc5952>.
[RFC7451] Hollenbeck, S., "Extension Registry for the Extensible [RFC7451] Hollenbeck, S., "Extension Registry for the Extensible
Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451, Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451,
February 2015, <https://www.rfc-editor.org/info/rfc7451>. February 2015, <https://www.rfc-editor.org/info/rfc7451>.
[RFC7942] Sheffer, Y. and Farrel, A., "Improving Awareness of [RFC7942] Sheffer, Y. and Farrel, A., "Improving Awareness of
Running Code: The Implementation Status Section", RFC Running Code: The Implementation Status Section", RFC
7942, July 2016, 7942, July 2016,
<https://www.rfc-editor.org/info/rfc7942>. <https://www.rfc-editor.org/info/rfc7942>.
Appendix A. Change History Appendix A. Change History
skipping to change at page 21, line 5 skipping to change at page 19, line 25
Changed XML namespace from urn:ietf:params:xml:ns:maintenance-1.0 to Changed XML namespace from urn:ietf:params:xml:ns:maintenance-1.0 to
urn:ietf:params:xml:ns:epp:maintenance-0.1. Removed <maint:status>. urn:ietf:params:xml:ns:epp:maintenance-0.1. Removed <maint:status>.
Clarified <maint:info> for retrieving maintenance items and the list. Clarified <maint:info> for retrieving maintenance items and the list.
A.8. Change from 05 to 06 A.8. Change from 05 to 06
Changed dates in examples to more recent dates. Renamed Query Changed dates in examples to more recent dates. Renamed Query
Maintenance Item and List to Info Maintenance Item and List. Removed Maintenance Item and List to Info Maintenance Item and List. Removed
blackout in favor of full. Added GoDaddy Registry implementation. blackout in favor of full. Added GoDaddy Registry implementation.
Acknowledgments A.9. Change from 06 to 07
The authors wish to thank the following individuals for their Removed IP addresses for <maint:host>. Editoral changes.
feedback and suggestions (sorted alphabetically by company):
o Patrick Mevzek Acknowledgments
o Anthony Eden, DNSimple
o Christopher Martens, Donuts The authors wish to thank the following persons for their feedback
o Quoc-Anh Pham, GoDaddy Registry and suggestions: James Gould, Patrick Mevzek, Quoc-Anh Pham, Raymond
o Raymond Zylstra, GoDaddy Registry Zylstra, Christopher Martens, Anthony Eden, Neal McPherson, Craig
o Neal McPherson, IONOS Marchant, and Andreas Huber.
o Andreas Huber, united-domains
o Craig Marchant, VentraIP
o James Gould, Verisign
Authors' Addresses Authors' Addresses
Tobias Sattler Tobias Sattler
Email: tobias.sattler@me.com Email: tobias.sattler@me.com
URI: https://tobiassattler.com URI: https://tobiassattler.com
Roger Carney Roger Carney
GoDaddy Inc. GoDaddy Inc.
 End of changes. 61 change blocks. 
175 lines changed or deleted 135 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/