Internet Engineering Task Force T. Sattler Internet-Draft January 8, 2018 Intended status: Standard Track Expires: June 30, 2018 Registry Maintenance Notifications for the Extensible Provisioning Protocol (EPP) draft-sattler-epp-registry-maintenance-00 Abstract This document describes an Extensible Provision Protocol (EPP) mapping for the Registry Maintenance Notifications used when Domain Name Registries will conduct a maintenance, and for retrieving these informations. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress". This Internet-Draft will expire on June 30, 2018. Copyright Notice Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Sattler Expires June 30, 2018 [Page 1] Internet-Draft EPP Registry Maintenance January 2017 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Terminology and Definitions . . . . . . . . . . . . . . . 2 2. Object Attributes . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Character Encoding . . . . . . . . . . . . . . . . . . . 3 2.2. Internationalized Domain Names . . . . . . . . . . . . . 3 2.3. Dates and Times . . . . . . . . . . . . . . . . . . . . . 3 2.4. Maintenance Child Elements . . . . . . . . . . . . . . . 4 3. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 5 3.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 6 3.1.1. EPP Command . . . . . . . . . . . . . . . . . 6 3.1.2. EPP Command . . . . . . . . . . . . . . . 6 3.1.3. EPP Command . . . . . . . . . . . . . . . . . 6 3.1.4. EPP Command . . . . . . . . . . . . . . . . . 9 3.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 11 3.2.1. EPP Command . . . . . . . . . . . . . . . . 11 3.2.2. EPP Command . . . . . . . . . . . . . . . . 12 3.2.3. EPP Command . . . . . . . . . . . . . . . . . 12 3.2.4. EPP Command . . . . . . . . . . . . . . . 12 3.2.5. EPP Command . . . . . . . . . . . . . . . . 12 4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1. Registry Maintenance EPP Mapping Schema . . . . . . . . . 12 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 6. Security Considerations . . . . . . . . . . . . . . . . . . . 17 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 17 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.1. Normative References . . . . . . . . . . . . . . . . . . . 18 8.2. Informative References . . . . . . . . . . . . . . . . . . 18 Appendix A. Change History . . . . . . . . . . . . . . . . . . . 19 A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 19 A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 19 A.3. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 19 A.4. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 19 A.5. Change from 04 to 05 . . . . . . . . . . . . . . . . . . 19 A.6. Change from 05 to 06 . . . . . . . . . . . . . . . . . . 19 A.7. Change from 06 to 07 . . . . . . . . . . . . . . . . . . 20 A.8. Change from 07 to 08 . . . . . . . . . . . . . . . . . . 20 A.9. Change from draft-sattler-epp-poll-maintenance-response-07 to draft-sattler-epp-registry-maintenance-00 . . . . . 20 Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 20 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 29 Sattler Expires June 30, 2018 [Page 2] Internet-Draft EPP Registry Maintenance January 2017 1. Introduction This document describes an Extensible Provision Protocol (EPP) [RFC5730] mapping for the Registry Maintenance Notifications used when Domain Name Registries will conduct a maintenance, and for retrieving these informations. 1.1. Terminology and Definitions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] when specified in their uppercase forms. XML is case sensitive. Unless stated otherwise, XML specifications and examples provided in this document MUST be interpreted in the character case presented in order to develop a conforming implementation. In examples, "C:" represents lines sent by a protocol client and "S:" represents lines returned by a protocol server. Indentation and white space in examples are provided only to illustrate element relationships and are not a REQUIRED feature of this protocol. 2. Object Attributes 2.1. Character Encoding The default text encoding for JSON responses is UTF-8 [RFC3629], and all servers and clients MUST support UTF-8. 2.2. Internationalized Domain Names Affected TLDs MUST be provided in Punycode according [RFC3492]. 2.3. Dates and Times Dates and times attribute values MUST be expressed in Universal Coordinated Time using the Gregorian calendar. The extended date-time form using upper case "T" and "Z" characters defined in ISO 8601 [RFC3339] MUST be used to represent date-time values. Sattler Expires June 30, 2018 [Page 3] Internet-Draft EPP Registry Maintenance January 2017 2.4. Maintenance Child Elements The element MAY contain the following child elements: an UUID according [RFC4122], SHOULD NOT be changed an element of elements an element of , and indicating the name of affected system indicating the affected maintained system (host or IP address). hostname SHOULD be Punycode according [RFC3492]. IPv4 addresses SHOULD be dotted-decimal notation. An example of this textual representation is "192.0.2.0". IPv6 addresses SHOULD be according [RFC5952]. An example of this textual representation is "2001:db8::1:0:0:1". containing the impact level; values are either 'partial' or 'blackout' the "type" attribute values are 'production', 'ote', 'staging' or 'dev'. start of maintenance according ISO 8601 [RFC3339] Format: YYYY-MM-DDThh:mm:ssTZ end of maintenance according ISO 8601 [RFC3339] Format: YYYY-MM-DDThh:mm:ssTZ Sattler Expires June 30, 2018 [Page 4] Internet-Draft EPP Registry Maintenance January 2017 values are either 'planned' or 'emergency' URI to detailed maintenance description, MAY be empty an element of elements affected top-level domains Punycode encoded according [RFC3492] an element of and a boolean indicating if client needs to do something that is connection related, such as a reconnect. a boolean indicating if client needs to do something that is implementation related, such as code changes. a string indicating the status of the maintenances; values are either 'active' or 'inactive' created date of this maintenance according ISO 8601 [RFC3339] Format: YYYY-MM-DDThh:mm:ssTZ updated date of this maintenance according ISO 8601 [RFC3339] Format: YYYY-MM-DDThh:mm:ssTZ 3. EPP Command Mapping A detailed description of the EPP syntax and semantics can be found in the EPP core protocol specification [RFC5730]. The command mappings described here are specifically for the use to notify of Registry Maintenances and Registry Maintenance object mapping. Sattler Expires June 30, 2018 [Page 5] Internet-Draft EPP Registry Maintenance January 2017 3.1. EPP Query Commands EPP [RFC5730] provides three commands to retrieve object information: to determine if an object is known to the server, to retrieve detailed information associated with an object, and to retrieve object transfer status information. 3.1.1. EPP Command Available check semantics do not apply to maintenance objects, so there is no mapping defined for the EPP command. 3.1.2. EPP Command Transfer semantics do not apply to maintenance objects, so there is no mapping defined for the EPP command. 3.1.3. EPP Command EPP provides the command that is used to retrieve registry maintenance information. In addition to the standard EPP command elements, the command MUST contain a element that identifies the maintenance namespace. The element MUST contain a child element. It is either to retrieve a specific maintenance notification or to query all maintenance notifications. Example command with to get one specific maintenance: C: C: C: C: C: C: 2e6df9b0-4092-4491-bcc8-9fb2166dcee6 C: C: C: ABC-12345 C: C: When an command with has been processed successfully, the EPP element MUST contain a child element that identifies the maintenance namespace. The element contains the child elements as defined in section 2.4. For new maintenances the attribute MUST be 'active' and the attribute is not present. Sattler Expires June 30, 2018 [Page 6] Internet-Draft EPP Registry Maintenance January 2017 Example response for one specific maintenance notification: S: S: S: S: S: Command completed successfully S: S: S: S: S: 2e6df9b0-4092-4491-bcc8-9fb2166dcee6 S: S: S: S: EPP S: epp.registry.example S: blackout S: S: S: S: 2017-04-30T06:00:00Z S: 2013-10-22T14:25:57.0Z S: planned S: S: https://www.registry.example/notice?123 S: S: S: example S: test S: S: S: false S: false S: S: active S: 2017-02-08T22:10:00.0Z S: S: S: S: S: ABC-12345 S: 54321-XYZ S: S: S: Sattler Expires June 30, 2018 [Page 7] Internet-Draft EPP Registry Maintenance January 2017 For updated maintenances the attribute MUST be 'active' and the attribute MUST be set. For deleted maintenances the attribute MUST be 'inactive' and the attribute MUST be set. In this case every other attribute besides is OPTIONAL. Example command with to query all maintenances: C: C: C: C: C: C: C: C: C: ABC-12345 C: C: When an command with has been processed successfully, the EPP element MAY contain a child element that identifies the maintenance namespace. The element contains the child elements as defined in section 2.4. Example response querying all maintenances: S: S: S: S: S: Command completed successfully S: S: S: Sattler Expires June 30, 2018 [Page 8] Internet-Draft EPP Registry Maintenance January 2017 S: S: S: 2e6df9b0-4092-4491-bcc8-9fb2166dcee6 S: S: 2017-04-30T06:00:00Z S: 2017-04-30T07:00:00Z S: 2017-02-08T22:10:00.0Z S: S: S: 91e9dabf-c4e9-4c19-a56c-78e3e89c2e2f S: S: 2017-06-15T04:30:00Z S: 2017-06-15T05:30:00Z S: 2017-02-08T22:10:00.0Z S: 2017-03-08T20:11:00.0Z S: S: S: S: S: S: ABC-12345 S: 54321-XYZ S: S: S: 3.1.4. EPP Command The EPP command and response is defined in section 2.9.2.3 of [RFC5730]. The Registry Maintenance Notification is included in the EPP response of [RFC5730]. For the Registry Maintenance Notification, there are three types of poll messages. The poll messages apply whenever the domain name registry creates, updates or deletes a maintenance. In the case of a Registry Maintenance specific message, a element will be included within the element of the standard response. Sattler Expires June 30, 2018 [Page 9] Internet-Draft EPP Registry Maintenance January 2017 The element will include a reference to the Registry Maintenance namespace. EPP data contained within the element is formatted according to the maintenance-poll schema. Example command: C: C: C: C: C: ABC-12345 C: C: An Registry Maintenance poll message consists of the element with the child elements as defined in section 2.4. For new maintenances the attribute MUST be 'active' and the attribute is not present. Example response with the Registry Maintenance poll message: S: S: S: S: S: Command completed successfully; ack to dequeue S: S: S: 2017-02-08T22:10:00.0Z S: Registry Maintenance Notification S: S: S: S: S: 2e6df9b0-4092-4491-bcc8-9fb2166dcee6 S: S: S: EPP S: epp.registry.example S: blackout S: S: S: S: 2017-04-30T06:00:00Z Sattler Expires June 30, 2018 [Page 10] Internet-Draft EPP Registry Maintenance January 2017 S: 2013-10-22T14:25:57.0Z S: planned S: S: https://www.registry.example/notice?123 S: S: S: example S: test S: S: S: false S: false S: S: active S: 2017-02-08T22:10:00.0Z S: S: S: S: S: ABC-12345 S: 54321-XYZ S: S: S: For updated maintenances the attribute MUST be 'active' and the attribute MUST be set. For deleted maintenances the attribute MUST be 'inactive' and the attribute MUST be set. In this case every other attribute besides is OPTIONAL. 3.2. EPP Transform Commands EPP provides five commands to transform objects: to create an instance of an object, to delete an instance of an object, to extend the validity period of an object, to manage object sponsorship changes, and to change information associated with an object. 3.2.1. EPP Command Create semantics do not apply to maintenance objects, so there is no mapping defined for the EPP command. Sattler Expires June 30, 2018 [Page 11] Internet-Draft EPP Registry Maintenance January 2017 3.2.2. EPP Command Delete semantics do not apply to maintenance objects, so there is no mapping defined for the EPP command. 3.2.3. EPP Command Renew semantics do not apply to maintenance objects, so there is no mapping defined for the EPP command. 3.2.4. EPP Command Transfer semantics do not apply to maintenance objects, so there is no mapping defined for the EPP command. 3.2.5. EPP Command Update semantics do not apply to maintenance objects, so there is no mapping defined for the EPP command. 4. Formal Syntax One schema is presented here that is the EPP Registry Maintenance schema. The formal syntax presented here is a complete schema representation of the object mapping suitable for automated validation of EPP XML instances. The BEGIN and END tags are not part of the schema; they are used to note the beginning and ending of the schema for URI registration purposes. 4.1. Registry Maintenance EPP Mapping Schema Sattler Expires June 30, 2018 [Page 12] Internet-Draft EPP Registry Maintenance January 2017 Extensible Provisioning Protocol v1.0 Maintenance Mapping Schema. Sattler Expires June 30, 2018 [Page 13] Internet-Draft EPP Registry Maintenance January 2017 Sattler Expires June 30, 2018 [Page 14] Internet-Draft EPP Registry Maintenance January 2017 Sattler Expires June 30, 2018 [Page 15] Internet-Draft EPP Registry Maintenance January 2017 Sattler Expires June 30, 2018 [Page 16] Internet-Draft EPP Registry Maintenance January 2017 5. IANA Considerations TBD 6. Security Considerations The mapping extensions described in this document do not provide any security services beyond those described by EPP [RFC5730] and protocol layers used by EPP. The security considerations described in these other specifications apply to this specification as well. 7. Implementation Status Note to RFC Editor: Please remove this section and the reference to [RFC7942] before publication. This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in [RFC7942]. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs. Please note that the listing of any individual implementation here does not imply endorsement by the IETF. Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features. Readers are advised to note that other implementations may exist. Sattler Expires June 30, 2018 [Page 17] Internet-Draft EPP Registry Maintenance January 2017 According to [RFC7942], "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit". Add implementation details once available. 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, . [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646" , RFC3629, November 2003, [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", STD 69, RFC 5730, August 2009, . 8.2. Informative References [RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, July 2002, . [RFC3492] Costello, A., "Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) ", RFC 3492, March 2003, . [RFC4122] Leach, P., Mealling, M. and Salz, R., "A Universally Unique IDentifier (UUID) URN Namespace", RFC 4122, July 2015, . [RFC5952] Kawamura, S. and Kawashima, M., "A Recommendation for IPv6 Address Text Representation", RFC 5952, August 2010, . Sattler Expires June 30, 2018 [Page 18] Internet-Draft EPP Registry Maintenance January 2017 [RFC7942] Sheffer, Y. and Farrel, A., "Improving Awareness of Running Code: The Implementation Status Section", RFC 7942, July 2016, Appendix A. Change History A.1. Change from 00 to 01 Removed JSON Schema. Clarified unique id with UUID. Added Common Data Structures for better explanation. Fixed EPP poll response example. Added und fixed References. A.2. Change from 01 to 02 Clarified host field. Added TLDs to Common Data Structure. Added Internationalisation Considerations. Changed authors address and contact details. A.3. Change from 02 to 03 Added date-time Values to Internationalisation Considerations. Sorted Terminology and Definitions alphabetically. Changed start and end date-time. Changed Reference URI to HTTPS. A.4. Change from 03 to 04 Added Acknowledgements. Clarified UUID field to be not changed at all Clarified environment field with production, ote, staging and dev. Clarified connection and implementation fields. Fixed writing of systems field. Removed author's private address. Moved this draft from Experimental to Standard Track. A.5. Change from 04 to 05 Changed title of this draft to be more specific. Added Change Log. Split References into Normative and Informative References. Clarified Common Data Types. Rephrased Abstract and Introduction. Added Implementation Status section. A.6. Change from 05 to 06 Added IANA Considerations. Changed URIs from http to https. Added new main section 4. EPP Command Mapping. Added new JSON field purpose for announce, change or cancel of a maintenance notification. Sattler Expires June 30, 2018 [Page 19] Internet-Draft EPP Registry Maintenance January 2017 A.7. Change from 06 to 07 Fixed typo in section 3.4. and added missing comma in the example of section 4.1. Added the field specification to help facilitate the adoption of this document. Changed possible purposes to create, update and delete to be closer to the EPP syntax. Cleaned whitespaces. Updated Acknowledgements. A.8. Change from 07 to 08 Added Donuts Registry to Implementation Status. A.9. Change from draft-sattler-epp-poll-maintenance-response-07 to draft-sattler-epp-registry-maintenance-00 Appendix B. Acknowledgements The author wishes to thank the following persons for their feedback and suggestions (sorted alphabetically by company): * Neal McPherson of 1&1 Internet * Christopher Martens of Donuts * Jody Kolker and Roger Carney of GoDaddy * Raymond Zylstra of Neustar * Andreas Huber of united-domains * Craig Marchant of VentraIP * James Gould of Verisign Author's Address Tobias Sattler Email: tobias.sattler@me.com URI: https://tobiassattler.com Sattler Expires June 30, 2018 [Page 20]