A detailed description of the EPP syntax and semantics can be found in the EPP core protocol specification [
RFC 5730]. The command mappings described here are specifically used to notify registrars of registry maintenance events and object mapping.
EPP [
RFC 5730] provides three commands to retrieve object information: <check> to determine if an object is known to the server, <info> to retrieve detailed information associated with an object, and <transfer> to retrieve object transfer status information.
This extension does not add any elements to EPP <check> and <transfer> commands or responses.
EPP provides the <info> command that is used to retrieve registry maintenance information. In addition to the standard EPP command elements, the <info> command
MUST contain a <maint:info> element that identifies the maintenance namespace.
The <maint:info> element
MUST contain a child element. It is either the <maint:id> child element, described in
Section 4.1.1.1, to query for a specific maintenance item or the <maint:list> child element, described in
Section 4.1.1.2, to query all maintenance items.
The information regarding a specific maintenance item can be retrieved by using the <info> command with the <maint:info> element and the <maint:id> child element, defined in
Section 3.3. If the maintenance identifier does not exist, the server
MUST return an EPP error result code of 2303 ("Object does not exist") [
RFC 5730].
The following is an example of retrieving a specific maintenance item in an <info> command.
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <info>
C: <maint:info
C: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0">
C: <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6</maint:id>
C: </maint:info>
C: </info>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
When an <info> command has been processed successfully, the EPP <resData> element
MUST contain a child <maint:infData> element that identifies the maintenance namespace. The <maint:infData> element contains the <maint:item> element defined in
Section 3.3.
The following is an example of returning a specific maintenance item in an <info> response.
S:<?xml version="1.0" encoding="UTF-8"?>
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response>
S: <result code="1000">
S: <msg>Command completed successfully</msg>
S: </result>
S: <resData>
S: <maint:infData
S: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0">
S: <maint:item>
S: <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6
S: </maint:id>
S: <maint:type lang="en">Routine Maintenance</maint:type>
S: <maint:systems>
S: <maint:system>
S: <maint:name>EPP</maint:name>
S: <maint:host>epp.registry.example
S: </maint:host>
S: <maint:impact>full</maint:impact>
S: </maint:system>
S: </maint:systems>
S: <maint:environment type="production"/>
S: <maint:start>2021-12-30T06:00:00Z</maint:start>
S: <maint:end>2021-12-30T07:00:00Z</maint:end>
S: <maint:reason>planned</maint:reason>
S: <maint:detail>
S: https://www.registry.example/notice?123
S: </maint:detail>
S: <maint:description lang="en">free-text
S: </maint:description>
S: <maint:description lang="de">Freitext
S: </maint:description>
S: <maint:tlds>
S: <maint:tld>example</maint:tld>
S: <maint:tld>test</maint:tld>
S: </maint:tlds>
S: <maint:intervention>
S: <maint:connection>false</maint:connection>
S: <maint:implementation>false</maint:implementation>
S: </maint:intervention>
S: <maint:crDate>2021-11-08T22:10:00Z</maint:crDate>
S: </maint:item>
S: </maint:infData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
The information for a list of maintenance items can be retrieved by using the <info> command with the <maint:info> element and the empty <maint:list> child element. Server policy determines if completed maintenance events will be included in the list of maintenance items.
The following is an example of retrieving the list of maintenance items in an <info> command.
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <info>
C: <maint:info
C: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0">
C: <maint:list/>
C: </maint:info>
C: </info>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
When an <info> command has been processed successfully, the EPP <resData> element
MUST contain a child <maint:infData> element that identifies the maintenance namespace. The <maint:infData> element contains the <maint:list> element with zero or more <maint:listItem> child elements. The <maint:listItem> element contains the following child elements:
-
-
<maint:id>
-
The <maint:id> element defined in Section 3.3.
-
<maint:start>
-
The <maint:start> element defined in Section 3.3.
-
<maint:end>
-
The <maint:end> element defined in Section 3.3.
-
<maint:crDate>
-
The <maint:crDate> element defined in Section 3.3.
-
<maint:upDate>
-
The OPTIONAL <maint:upDate> element defined in Section 3.3.
The following is an example of returning the list of maintenance items in an <info> response.
S:<?xml version="1.0" encoding="UTF-8"?>
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response>
S: <result code="1000">
S: <msg>Command completed successfully</msg>
S: </result>
S: <resData>
S: <maint:infData
S: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0">
S: <maint:list>
S: <maint:listItem>
S: <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6
S: </maint:id>
S: <maint:start>2021-12-30T06:00:00Z</maint:start>
S: <maint:end>2021-12-30T07:00:00Z</maint:end>
S: <maint:crDate>2021-11-08T22:10:00Z</maint:crDate>
S: </maint:listItem>
S: <maint:listItem>
S: <maint:id>91e9dabf-c4e9-4c19-a56c-78e3e89c2e2f
S: </maint:id>
S: <maint:start>2021-12-15T04:30:00Z</maint:start>
S: <maint:end>2021-12-15T05:30:00Z</maint:end>
S: <maint:crDate>2021-11-08T22:11:00Z</maint:crDate>
S: <maint:upDate>2021-11-17T15:00:00Z</maint:upDate>
S: </maint:listItem>
S: </maint:list>
S: </maint:infData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
The EPP <poll> command and response are defined in
Section 2.9.2.3 of
RFC 5730. The Registry Maintenance Notification is included in the EPP <poll> response in [
RFC 5730].
There are five types of poll messages for the Registry Maintenance Notification, defined by the <maint:pollType> element in
Section 3.3. A poll message might be generated when a maintenance event is created, updated, or deleted. A courtesy poll message can be sent as a reminder of an upcoming maintenance event. An end poll message can be sent when the maintenance event is completed. In the case of a message specific to Registry Maintenance, a <maint:infData> element that identifies the maintenance namespace will be included within the <resData> element of the standard <poll> response. The <maint:infData> element contains the <maint:item> element defined in
Section 3.3.
The following is an example of a <poll> command:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <poll op="req"/>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
Example <poll> response:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response>
S: <result code="1301">
S: <msg>Command completed successfully; ack to dequeue</msg>
S: </result>
S: <msgQ count="1" id="12345">
S: <qDate>2021-11-08T22:10:00Z</qDate>
S: <msg lang="en">Registry Maintenance Notification</msg>
S: </msgQ>
S: <resData>
S: <maint:infData
S: xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0">
S: <maint:item>
S: <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6</maint:id>
S: <maint:pollType>create</maint:pollType>
S: <maint:systems>
S: <maint:system>
S: <maint:name>EPP</maint:name>
S: <maint:host>epp.registry.example
S: </maint:host>
S: <maint:impact>full</maint:impact>
S: </maint:system>
S: </maint:systems>
S: <maint:environment type="production"/>
S: <maint:start>2021-12-30T06:00:00Z</maint:start>
S: <maint:end>2021-12-30T07:00:00Z</maint:end>
S: <maint:reason>planned</maint:reason>
S: <maint:detail>
S: https://www.registry.example/notice?123
S: </maint:detail>
S: <maint:tlds>
S: <maint:tld>example</maint:tld>
S: <maint:tld>test</maint:tld>
S: </maint:tlds>
S: <maint:intervention>
S: <maint:connection>false</maint:connection>
S: <maint:implementation>false</maint:implementation>
S: </maint:intervention>
S: <maint:crDate>2021-11-08T22:10:00Z</maint:crDate>
S: </maint:item>
S: </maint:infData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
EPP provides five commands to transform objects: <create> to create an instance of an object, <delete> to delete an instance of an object, <renew> to extend the validity period of an object, <transfer> to manage object sponsorship changes, and <update> to change information associated with an object.
This extension does not add any elements to the EPP <create>, <delete>, <renew>, <transfer>, and <update> commands.