1 Internet Engineering Task Force (IETF)                        T. Sattler   
    2 Request for Comments: 9167                                                 
    3 Category: Standards Track                                      R. Carney   
    4 ISSN: 2070-1721                                                J. Kolker   
    5                                                             GoDaddy Inc.   
    6                                                            December 2021   
    7                                                                            
    8                                                                            
    9    Registry Maintenance Notification for the Extensible Provisioning       
   10                              Protocol (EPP)                                
   11                                                                            
   12 Abstract                                                                   
   13                                                                            
   14    This document describes an Extensible Provisioning Protocol (EPP)       
   15    extension called "Registry Maintenance Notification", which is used     
   16    by EPP servers to notify EPP clients and allow EPP clients to query     
   17    EPP servers regarding maintenance events.                               
   18                                                                            
   19 Status of This Memo                                                        
   20                                                                            
   21    This is an Internet Standards Track document.                           
   22                                                                            
   23    This document is a product of the Internet Engineering Task Force       
   24    (IETF).  It represents the consensus of the IETF community.  It has     
   25    received public review and has been approved for publication by the     
   26    Internet Engineering Steering Group (IESG).  Further information on     
   27    Internet Standards is available in Section 2 of RFC 7841.               
   28                                                                            
   29    Information about the current status of this document, any errata,      
   30    and how to provide feedback on it may be obtained at                    
   31    https://www.rfc-editor.org/info/rfc9167.                                
   32                                                                            
   33 Copyright Notice                                                           
   34                                                                            
   35    Copyright (c) 2021 IETF Trust and the persons identified as the         
   36    document authors.  All rights reserved.                                 
   37                                                                            
   38    This document is subject to BCP 78 and the IETF Trust's Legal           
   39    Provisions Relating to IETF Documents                                   
   40    (https://trustee.ietf.org/license-info) in effect on the date of        
   41    publication of this document.  Please review these documents            
   42    carefully, as they describe your rights and restrictions with respect   
   43    to this document.  Code Components extracted from this document must    
   44    include Revised BSD License text as described in Section 4.e of the     
   45    Trust Legal Provisions and are provided without warranty as described   
   46    in the Revised BSD License.                                             
   47                                                                            
   48 Table of Contents                                                          
   49                                                                            
   50    1.  Introduction                                                        
   51      1.1.  Terminology and Definitions                                     
   52    2.  Migrating to Newer Versions of This Extension                       
   53    3.  Object Attributes                                                   
   54      3.1.  Internationalized Domain Names                                  
   55      3.2.  Dates and Times                                                 
   56      3.3.  Maintenance Elements                                            
   57    4.  EPP Command Mapping                                                 
   58      4.1.  EPP Query Commands                                              
   59        4.1.1.  EPP <info> Command                                          
   60        4.1.2.  EPP <poll> Command                                          
   61      4.2.  EPP Transform Commands                                          
   62    5.  Formal Syntax                                                       
   63      5.1.  Registry Maintenance Notification EPP Mapping Schema            
   64    6.  IANA Considerations                                                 
   65      6.1.  XML Namespace                                                   
   66      6.2.  EPP Extension Registry                                          
   67    7.  Security Considerations                                             
   68    8.  References                                                          
   69      8.1.  Normative References                                            
   70      8.2.  Informative References                                          
   71    Acknowledgments                                                         
   72    Authors' Addresses                                                      
   73                                                                            
   74 1.  Introduction                                                           
   75                                                                            
   76    The Extensible Provisioning Protocol (EPP), as defined in [RFC5730],    
   77    is a protocol whose original motivation is to provide a standard        
   78    Internet domain name registration protocol for use between registries   
   79    and registrars.                                                         
   80                                                                            
   81    Registries routinely update systems to ensure a higher quality of       
   82    service, implement new services, or upgrade protocols to the latest     
   83    standards.  These updates are pushed to various registry environments   
   84    during time frames communicated to registrars as "maintenance           
   85    events".  Maintenance events may require making services unavailable    
   86    for some limited time while the upgrade happens.  Registries usually    
   87    inform registrars about maintenance events in various formats, none     
   88    of which are standardized between registries.                           
   89                                                                            
   90    The DNS namespace expansion has led to many additional registries       
   91    that registrars must interact with, adding more maintenance events      
   92    and formats.  It is now desirable to provide an efficient approach to   
   93    notify registrars.                                                      
   94                                                                            
   95    This document describes an extension mapping for version 1.0 of the     
   96    EPP to provide a mechanism by which EPP servers may notify EPP          
   97    clients of and allow EPP clients to query EPP servers on upcoming       
   98    maintenance events.                                                     
   99                                                                            
  100 1.1.  Terminology and Definitions                                          
  101                                                                            
  102    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",     
  103    "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and    
  104    "OPTIONAL" in this document are to be interpreted as described in       
  105    BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all      
  106    capitals, as shown here.                                                
  107                                                                            
  108    XML [W3C.REC-xml-20081126] is case sensitive.  Unless stated            
  109    otherwise, XML specifications and examples provided in this document    
  110    MUST be interpreted in the character case presented in order to         
  111    develop a conforming implementation.                                    
  112                                                                            
  113    The XML namespace prefix "maint" is used for the namespace              
  114    "urn:ietf:params:xml:ns:epp:maintenance-1.0", but implementations       
  115    MUST NOT depend on it and instead employ a proper namespace-aware XML   
  116    parser and serializer to interpret and output the XML documents.        
  117                                                                            
  118    "ote" is an abbreviation for "Operational Test and Evaluation".         
  119                                                                            
  120    In examples, "C:" represents lines sent by a protocol client, and       
  121    "S:" represents lines returned by a protocol server.  Indentation and   
  122    white space in examples are provided only to illustrate element         
  123    relationships and are not a required feature of this protocol.          
  124                                                                            
  125 2.  Migrating to Newer Versions of This Extension                          
  126                                                                            
  127    Servers that implement this extension SHOULD provide a way for          
  128    clients to progressively update their implementations when a new        
  129    version of the extension is deployed.  A newer version of the           
  130    extension is expected to use an XML namespace with a higher version     
  131    number than the prior versions.                                         
  132                                                                            
  133    Servers SHOULD (for a temporary migration period up to server policy)   
  134    provide support for older versions of the extension in parallel to      
  135    the newest version and allow clients to execute their preferred         
  136    version of the <info> command based on the maintenance <objURI>         
  137    elements of the server <greeting>.  The version of the maintenance      
  138    <info> response MUST match the version of the maintenance <info>        
  139    command executed by the server.                                         
  140                                                                            
  141    Servers MUST return a Registry Maintenance Notification poll message    
  142    matching the newest negotiated version of the maintenance extension,    
  143    based on an intersection of the maintenance <objURI> elements in the    
  144    server <greeting> and the client <login> command.  If the               
  145    intersection of the maintenance <objURI> elements of the server         
  146    <greeting> and the client <login> command results in an empty set,      
  147    the server MUST return the newest version of the Registry Maintenance   
  148    Notification poll message supported by the server based on "Usage       
  149    with Poll-Message EPP Responses" in Section 6 of [RFC9038].             
  150                                                                            
  151 3.  Object Attributes                                                      
  152                                                                            
  153 3.1.  Internationalized Domain Names                                       
  154                                                                            
  155    Names of affected hosts MUST be provided in A-label form, according     
  156    to [RFC5891].                                                           
  157                                                                            
  158 3.2.  Dates and Times                                                      
  159                                                                            
  160    All date and time attribute values MUST be expressed in Universal       
  161    Coordinated Time (UTC) using the Gregorian calendar.  The date-time     
  162    format defined as "date-time" in [RFC3339], with time-offset="Z",       
  163    MUST be used.                                                           
  164                                                                            
  165 3.3.  Maintenance Elements                                                 
  166                                                                            
  167    The <maint:item> element describes a single registry maintenance        
  168    event during a specific period.  This element is used in a              
  169    maintenance item EPP <info> command and response as well as in a        
  170    <poll> response.                                                        
  171                                                                            
  172    If an element is not marked as optional, it is mandatory.               
  173                                                                            
  174    <maint:id>                                                              
  175       The server-unique identifier for the maintenance event with the      
  176       OPTIONAL "name" attribute that includes a human-readable name of     
  177       the event.  The server-unique identifier SHALL NOT be changed if     
  178       the event is updated or deleted.  When the "name" attribute is       
  179       set, the OPTIONAL "lang" attribute, per the language structure in    
  180       [RFC5646], MAY be present to identify the language if the            
  181       negotiated value is something other than the default value of "en"   
  182       (English).                                                           
  183                                                                            
  184    <maint:type>                                                            
  185       Zero or more OPTIONAL types of the maintenance event, with the       
  186       possible set of values defined by server policy, such as "Routine    
  187       Maintenance", "Software Update", "Software Upgrade", or "Extended    
  188       Outage".  The OPTIONAL "lang" attribute MAY be present to identify   
  189       the language if the negotiated value is something other than the     
  190       default value of "en" (English).                                     
  191                                                                            
  192    <maint:pollType>                                                        
  193       The OPTIONAL <maint:pollType> element for a Registry Maintenance     
  194       Notification poll message; values MUST be "create", "update",        
  195       "delete", "courtesy", or "end".  For the "create" and "update"       
  196       types, the server includes the state of the maintenance event        
  197       after the creation or update.  For the "delete" type, the server     
  198       includes the state of the event before the delete.  The "courtesy"   
  199       provides a reminder of an event, and the "end" provides a            
  200       notification of the end of the event without updating the            
  201       maintenance object and includes the latest state of the event.       
  202       This element MUST be present only for poll messages.                 
  203                                                                            
  204    <maint:systems>                                                         
  205       One or more <maint:system> elements that are affected by the         
  206       maintenance event.                                                   
  207                                                                            
  208       <maint:system>                                                       
  209          The <maint:system> element contains the following child           
  210          elements:                                                         
  211                                                                            
  212          <maint:name>                                                      
  213             The name of the affected system, such as "EPP", "WHOIS",       
  214             "DNS", "Portal", "RDAP", etc.                                  
  215                                                                            
  216          <maint:host>                                                      
  217             The OPTIONAL affected maintained system's hostname, which      
  218             SHALL be in A-label form, according to [RFC5891].              
  219                                                                            
  220          <maint:impact>                                                    
  221             The impact level; the values MUST be "full", "partial", or     
  222             "none".  If access is expected to be intermittently            
  223             unavailable, it is "partial".  If access is expected to be     
  224             completely unavailable, it is "full".  If access is not        
  225             affected, it is "none".                                        
  226                                                                            
  227    <maint:environment>                                                     
  228       The type of the affected system; the attribute "type" is REQUIRED    
  229       and MUST be "production", "ote", "staging", "dev", or "custom".      
  230       For extensibility, the <maint:environment> element includes the      
  231       OPTIONAL "name" attribute that can define the name of the custom     
  232       environment when the <maint:environment> element "type" attribute    
  233       has the "custom" value.  For example, for the custom "marketing"     
  234       environment, the <maint:environment> element should be:              
  235       <maint:environment type="custom" name="marketing"/>.                 
  236                                                                            
  237    <maint:start>                                                           
  238       The date and time of the start of the maintenance event.             
  239                                                                            
  240    <maint:end>                                                             
  241       The date and time of the end of the maintenance event.  The          
  242       <maint:end> element MUST be greater than the <maint:start>           
  243       element.                                                             
  244                                                                            
  245    <maint:reason>                                                          
  246       The reason behind the maintenance event; the values MUST be either   
  247       "planned" or "emergency".                                            
  248                                                                            
  249    <maint:detail>                                                          
  250       The OPTIONAL URI to the detailed maintenance event description,      
  251       formatted according to [RFC3986].                                    
  252                                                                            
  253    <maint:description>                                                     
  254       Zero or more OPTIONAL free-form descriptions of the maintenance      
  255       event, usable without creating and traversing an external resource   
  256       as defined by the <maint:detail> element.  The OPTIONAL "lang"       
  257       attribute MAY be present to identify the language if the             
  258       negotiated value is something other than the default value of "en"   
  259       (English).  The OPTIONAL "type" attribute MAY be present to          
  260       identify the format of the description.  It MUST be either "plain"   
  261       for plain text or "html" for HTML text, as defined in [HTML5], and   
  262       XML-escaped, with a default value of "plain".                        
  263                                                                            
  264    <maint:tlds>                                                            
  265       The OPTIONAL <maint:tlds> element contains one or more <maint:tld>   
  266       child elements.  If the <maint:tlds> is not present, the entire      
  267       system is affected.                                                  
  268                                                                            
  269       <maint:tld>                                                          
  270          The affected top-level domain or registry zone, which SHALL be    
  271          in A-label form, according to [RFC5891].                          
  272                                                                            
  273                                                                            
  274       <maint:intervention>                                                 
  275          The OPTIONAL <maint:intervention> element contains the            
  276          following child elements:                                         
  277                                                                            
  278          <maint:connection>                                                
  279             The value SHALL be boolean and indicates if a client needs     
  280             to perform a connection-related action such as a reconnect.    
  281             The attribute should only be used as a flag to indicate        
  282             connections will be affected.  Servers SHOULD include a        
  283             description of how the connections are affected in the         
  284             <maint:description> element or use the <maint:detail>          
  285             element above.                                                 
  286                                                                            
  287          <maint:implementation>                                            
  288             The value SHALL be boolean and indicates if a client needs     
  289             to perform an implementation-related action such as a code     
  290             change.  The attribute should only be used as a flag to        
  291             indicate implementation will be affected.  Servers SHOULD      
  292             include a description of how the implementation is affected    
  293             in the <maint:description> element or use the <maint:detail>   
  294             element above.                                                 
  295                                                                            
  296       <maint:crDate>                                                       
  297          The date and time of the maintenance object creation.             
  298                                                                            
  299       <maint:upDate>                                                       
  300          The OPTIONAL date and time of the most recent maintenance         
  301          object modification.  This element MUST NOT be present if the     
  302          maintenance object has never been modified.                       
  303                                                                            
  304 4.  EPP Command Mapping                                                    
  305                                                                            
  306    A detailed description of the EPP syntax and semantics can be found     
  307    in the EPP core protocol specification [RFC5730].  The command          
  308    mappings described here are specifically used to notify registrars of   
  309    registry maintenance events and object mapping.                         
  310                                                                            
  311 4.1.  EPP Query Commands                                                   
  312                                                                            
  313    EPP [RFC5730] provides three commands to retrieve object information:   
  314    <check> to determine if an object is known to the server, <info> to     
  315    retrieve detailed information associated with an object, and            
  316    <transfer> to retrieve object transfer status information.              
  317                                                                            
  318    This extension does not add any elements to EPP <check> and             
  319    <transfer> commands or responses.                                       
  320                                                                            
  321 4.1.1.  EPP <info> Command                                                 
  322                                                                            
  323    EPP provides the <info> command that is used to retrieve registry       
  324    maintenance information.  In addition to the standard EPP command       
  325    elements, the <info> command MUST contain a <maint:info> element that   
  326    identifies the maintenance namespace.                                   
  327                                                                            
  328    The <maint:info> element MUST contain a child element.  It is either    
  329    the <maint:id> child element, described in Section 4.1.1.1, to query    
  330    for a specific maintenance item or the <maint:list> child element,      
  331    described in Section 4.1.1.2, to query all maintenance items.           
  332                                                                            
  333 4.1.1.1.  Info Maintenance Item                                            
  334                                                                            
  335    The information regarding a specific maintenance item can be            
  336    retrieved by using the <info> command with the <maint:info> element     
  337    and the <maint:id> child element, defined in Section 3.3.  If the       
  338    maintenance identifier does not exist, the server MUST return an EPP    
  339    error result code of 2303 ("Object does not exist") [RFC5730].          
  340                                                                            
  341    The following is an example of retrieving a specific maintenance item   
  342    in an <info> command.                                                   
  343                                                                            
  344    C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>                
  345    C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">                          
  346    C:  <command>                                                           
  347    C:    <info>                                                            
  348    C:      <maint:info                                                     
  349    C:        xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0">     
  350    C:        <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6</maint:id>     
  351    C:      </maint:info>                                                   
  352    C:    </info>                                                           
  353    C:    <clTRID>ABC-12345</clTRID>                                        
  354    C:  </command>                                                          
  355    C:</epp>                                                                
  356                                                                            
  357    When an <info> command has been processed successfully, the EPP         
  358    <resData> element MUST contain a child <maint:infData> element that     
  359    identifies the maintenance namespace.  The <maint:infData> element      
  360    contains the <maint:item> element defined in Section 3.3.               
  361                                                                            
  362    The following is an example of returning a specific maintenance item    
  363    in an <info> response.                                                  
  364                                                                            
  365    S:<?xml version="1.0" encoding="UTF-8"?>                                
  366    S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">                          
  367    S:   <response>                                                         
  368    S:      <result code="1000">                                            
  369    S:         <msg>Command completed successfully</msg>                    
  370    S:      </result>                                                       
  371    S:      <resData>                                                       
  372    S:        <maint:infData                                                
  373    S:          xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0">   
  374    S:          <maint:item>                                                
  375    S:            <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6            
  376    S:            </maint:id>                                               
  377    S:            <maint:type lang="en">Routine Maintenance</maint:type>    
  378    S:            <maint:systems>                                           
  379    S:              <maint:system>                                          
  380    S:                <maint:name>EPP</maint:name>                          
  381    S:                <maint:host>epp.registry.example                      
  382    S:                </maint:host>                                         
  383    S:                <maint:impact>full</maint:impact>                     
  384    S:              </maint:system>                                         
  385    S:            </maint:systems>                                          
  386    S:            <maint:environment type="production"/>                    
  387    S:            <maint:start>2021-12-30T06:00:00Z</maint:start>           
  388    S:            <maint:end>2021-12-30T07:00:00Z</maint:end>               
  389    S:            <maint:reason>planned</maint:reason>                      
  390    S:            <maint:detail>                                            
  391    S:              https://www.registry.example/notice?123                 
  392    S:            </maint:detail>                                           
  393    S:            <maint:description lang="en">free-text                    
  394    S:            </maint:description>                                      
  395    S:            <maint:description lang="de">Freitext                     
  396    S:            </maint:description>                                      
  397    S:            <maint:tlds>                                              
  398    S:              <maint:tld>example</maint:tld>                          
  399    S:              <maint:tld>test</maint:tld>                             
  400    S:            </maint:tlds>                                             
  401    S:            <maint:intervention>                                      
  402    S:              <maint:connection>false</maint:connection>              
  403    S:              <maint:implementation>false</maint:implementation>      
  404    S:            </maint:intervention>                                     
  405    S:            <maint:crDate>2021-11-08T22:10:00Z</maint:crDate>         
  406    S:          </maint:item>                                               
  407    S:        </maint:infData>                                              
  408    S:      </resData>                                                      
  409    S:      <trID>                                                          
  410    S:         <clTRID>ABC-12345</clTRID>                                   
  411    S:         <svTRID>54321-XYZ</svTRID>                                   
  412    S:      </trID>                                                         
  413    S:   </response>                                                        
  414    S:</epp>                                                                
  415                                                                            
  416 4.1.1.2.  Info Maintenance List                                            
  417                                                                            
  418    The information for a list of maintenance items can be retrieved by     
  419    using the <info> command with the <maint:info> element and the empty    
  420    <maint:list> child element.  Server policy determines if completed      
  421    maintenance events will be included in the list of maintenance items.   
  422                                                                            
  423    The following is an example of retrieving the list of maintenance       
  424    items in an <info> command.                                             
  425                                                                            
  426    C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>                
  427    C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">                          
  428    C:  <command>                                                           
  429    C:    <info>                                                            
  430    C:      <maint:info                                                     
  431    C:        xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0">     
  432    C:        <maint:list/>                                                 
  433    C:      </maint:info>                                                   
  434    C:    </info>                                                           
  435    C:    <clTRID>ABC-12345</clTRID>                                        
  436    C:  </command>                                                          
  437    C:</epp>                                                                
  438                                                                            
  439    When an <info> command has been processed successfully, the EPP         
  440    <resData> element MUST contain a child <maint:infData> element that     
  441    identifies the maintenance namespace.  The <maint:infData> element      
  442    contains the <maint:list> element with zero or more <maint:listItem>    
  443    child elements.  The <maint:listItem> element contains the following    
  444    child elements:                                                         
  445                                                                            
  446       <maint:id>                                                           
  447          The <maint:id> element defined in Section 3.3.                    
  448                                                                            
  449       <maint:start>                                                        
  450          The <maint:start> element defined in Section 3.3.                 
  451                                                                            
  452       <maint:end>                                                          
  453          The <maint:end> element defined in Section 3.3.                   
  454                                                                            
  455       <maint:crDate>                                                       
  456          The <maint:crDate> element defined in Section 3.3.                
  457                                                                            
  458       <maint:upDate>                                                       
  459          The OPTIONAL <maint:upDate> element defined in Section 3.3.       
  460                                                                            
  461    The following is an example of returning the list of maintenance        
  462    items in an <info> response.                                            
  463                                                                            
  464    S:<?xml version="1.0" encoding="UTF-8"?>                                
  465    S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">                          
  466    S:   <response>                                                         
  467    S:      <result code="1000">                                            
  468    S:         <msg>Command completed successfully</msg>                    
  469    S:      </result>                                                       
  470    S:      <resData>                                                       
  471    S:        <maint:infData                                                
  472    S:          xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0">   
  473    S:          <maint:list>                                                
  474    S:            <maint:listItem>                                          
  475    S:              <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6          
  476    S:              </maint:id>                                             
  477    S:              <maint:start>2021-12-30T06:00:00Z</maint:start>         
  478    S:              <maint:end>2021-12-30T07:00:00Z</maint:end>             
  479    S:              <maint:crDate>2021-11-08T22:10:00Z</maint:crDate>       
  480    S:            </maint:listItem>                                         
  481    S:            <maint:listItem>                                          
  482    S:              <maint:id>91e9dabf-c4e9-4c19-a56c-78e3e89c2e2f          
  483    S:              </maint:id>                                             
  484    S:              <maint:start>2021-12-15T04:30:00Z</maint:start>         
  485    S:              <maint:end>2021-12-15T05:30:00Z</maint:end>             
  486    S:              <maint:crDate>2021-11-08T22:11:00Z</maint:crDate>       
  487    S:              <maint:upDate>2021-11-17T15:00:00Z</maint:upDate>       
  488    S:            </maint:listItem>                                         
  489    S:          </maint:list>                                               
  490    S:        </maint:infData>                                              
  491    S:      </resData>                                                      
  492    S:      <trID>                                                          
  493    S:         <clTRID>ABC-12345</clTRID>                                   
  494    S:         <svTRID>54321-XYZ</svTRID>                                   
  495    S:      </trID>                                                         
  496    S:   </response>                                                        
  497    S:</epp>                                                                
  498                                                                            
  499 4.1.2.  EPP <poll> Command                                                 
  500                                                                            
  501    The EPP <poll> command and response are defined in Section 2.9.2.3 of   
  502    [RFC5730].  The Registry Maintenance Notification is included in the    
  503    EPP <poll> response in [RFC5730].                                       
  504                                                                            
  505    There are five types of poll messages for the Registry Maintenance      
  506    Notification, defined by the <maint:pollType> element in Section 3.3.   
  507    A poll message might be generated when a maintenance event is           
  508    created, updated, or deleted.  A courtesy poll message can be sent as   
  509    a reminder of an upcoming maintenance event.  An end poll message can   
  510    be sent when the maintenance event is completed.  In the case of a      
  511    message specific to Registry Maintenance, a <maint:infData> element     
  512    that identifies the maintenance namespace will be included within the   
  513    <resData> element of the standard <poll> response.  The                 
  514    <maint:infData> element contains the <maint:item> element defined in    
  515    Section 3.3.                                                            
  516                                                                            
  517    The following is an example of a <poll> command:                        
  518                                                                            
  519    C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>                
  520    C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">                          
  521    C:  <command>                                                           
  522    C:    <poll op="req"/>                                                  
  523    C:    <clTRID>ABC-12345</clTRID>                                        
  524    C:  </command>                                                          
  525    C:</epp>                                                                
  526                                                                            
  527    Example <poll> response:                                                
  528                                                                            
  529    S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>                
  530    S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">                          
  531    S:  <response>                                                          
  532    S:    <result code="1301">                                              
  533    S:      <msg>Command completed successfully; ack to dequeue</msg>       
  534    S:    </result>                                                         
  535    S:  <msgQ count="1" id="12345">                                         
  536    S:    <qDate>2021-11-08T22:10:00Z</qDate>                               
  537    S:    <msg lang="en">Registry Maintenance Notification</msg>            
  538    S:  </msgQ>                                                             
  539    S:  <resData>                                                           
  540    S:    <maint:infData                                                    
  541    S:      xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0">       
  542    S:      <maint:item>                                                    
  543    S:        <maint:id>2e6df9b0-4092-4491-bcc8-9fb2166dcee6</maint:id>     
  544    S:        <maint:pollType>create</maint:pollType>                       
  545    S:        <maint:systems>                                               
  546    S:          <maint:system>                                              
  547    S:            <maint:name>EPP</maint:name>                              
  548    S:            <maint:host>epp.registry.example                          
  549    S:            </maint:host>                                             
  550    S:            <maint:impact>full</maint:impact>                         
  551    S:          </maint:system>                                             
  552    S:        </maint:systems>                                              
  553    S:        <maint:environment type="production"/>                        
  554    S:        <maint:start>2021-12-30T06:00:00Z</maint:start>               
  555    S:        <maint:end>2021-12-30T07:00:00Z</maint:end>                   
  556    S:        <maint:reason>planned</maint:reason>                          
  557    S:        <maint:detail>                                                
  558    S:          https://www.registry.example/notice?123                     
  559    S:        </maint:detail>                                               
  560    S:        <maint:tlds>                                                  
  561    S:          <maint:tld>example</maint:tld>                              
  562    S:          <maint:tld>test</maint:tld>                                 
  563    S:        </maint:tlds>                                                 
  564    S:        <maint:intervention>                                          
  565    S:          <maint:connection>false</maint:connection>                  
  566    S:          <maint:implementation>false</maint:implementation>          
  567    S:        </maint:intervention>                                         
  568    S:        <maint:crDate>2021-11-08T22:10:00Z</maint:crDate>             
  569    S:      </maint:item>                                                   
  570    S:    </maint:infData>                                                  
  571    S:  </resData>                                                          
  572    S:  <trID>                                                              
  573    S:    <clTRID>ABC-12345</clTRID>                                        
  574    S:    <svTRID>54321-XYZ</svTRID>                                        
  575    S:  </trID>                                                             
  576    S:  </response>                                                         
  577    S:</epp>                                                                
  578                                                                            
  579 4.2.  EPP Transform Commands                                               
  580                                                                            
  581    EPP provides five commands to transform objects: <create> to create     
  582    an instance of an object, <delete> to delete an instance of an          
  583    object, <renew> to extend the validity period of an object,             
  584    <transfer> to manage object sponsorship changes, and <update> to        
  585    change information associated with an object.                           
  586                                                                            
  587    This extension does not add any elements to the EPP <create>,           
  588    <delete>, <renew>, <transfer>, and <update> commands.                   
  589                                                                            
  590 5.  Formal Syntax                                                          
  591                                                                            
  592    The EPP Registry Maintenance Notification schema is presented here.     
  593                                                                            
  594    The formal syntax is a complete schema representation of the object     
  595    mapping suitable for automated validation of EPP XML instances.  The    
  596    <CODE BEGINS> and <CODE ENDS> tags are not part of the schema; they     
  597    are used to note the beginning and end of the schema for URI            
  598    registration purposes.                                                  
  599                                                                            

The IETF is responsible for the creation and maintenance of the DNS RFCs. The ICANN DNS RFC annotation project provides a forum for collecting community annotations on these RFCs as an aid to understanding for implementers and any interested parties. The annotations displayed here are not the result of the IETF consensus process.

This RFC is included in the DNS RFCs annotation project whose home page is here.

  600 5.1.  Registry Maintenance Notification EPP Mapping Schema                 
  601                                                                            
  602    <CODE BEGINS>                                                           
  603    <?xml version="1.0" encoding="UTF-8"?>                                  
  604      <schema targetNamespace="urn:ietf:params:xml:ns:epp:                  
  605        maintenance-1.0"                                                    
  606        xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"                    
  607        xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"                          
  608        xmlns:maint="urn:ietf:params:xml:ns:epp:maintenance-1.0"            
  609        xmlns="https://www.w3.org/2001/XMLSchema"                           
  610        elementFormDefault="qualified">                                     
  611      <!--                                                                  
  612      Import common element types                                           
  613      -->                                                                   
  614      <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>               
  615      <import namespace="urn:ietf:params:xml:ns:epp-1.0"/>                  
  616      <annotation>                                                          
  617        <documentation>                                                     
  618          Extensible Provisioning Protocol v1.0                             
  619          Registry Maintenance Notification Mapping Schema.                 
  620        </documentation>                                                    
  621      </annotation>                                                         
  622      <!--                                                                  
  623      Child elements found in EPP commands.                                 
  624      -->                                                                   
  625      <element name="info" type="maint:infoType"/>                          
  626      <!--                                                                  
  627       Child elements of the <info> command.                                
  628      -->                                                                   
  629      <complexType name="infoType">                                         
  630        <sequence>                                                          
  631          <choice>                                                          
  632            <element name="list"/>                                          
  633            <element name="id" type="maint:idType"/>                        
  634          </choice>                                                         
  635        </sequence>                                                         
  636      </complexType>                                                        
  637      <!--                                                                  
  638      Human-readable text may describe the maintenance                      
  639      -->                                                                   
  640      <complexType name="idType">                                           
  641        <simpleContent>                                                     
  642          <extension base="token">                                          
  643            <attribute name="name" type="token"/>                           
  644            <attribute name="lang" type="language" default="en"/>           
  645          </extension>                                                      
  646        </simpleContent>                                                    
  647      </complexType>                                                        
  648      <!--                                                                  
  649       Info Response element                                                
  650      -->                                                                   
  651      <element name="infData" type="maint:infDataType"/>                    
  652      <!--                                                                  
  653       <info> response elements.                                            
  654      -->                                                                   
  655      <complexType name="infDataType">                                      
  656        <choice>                                                            
  657          <element name="list" type="maint:listDataType"/>                  
  658          <element name="item" type="maint:maintDataType"/>                 
  659        </choice>                                                           
  660      </complexType>                                                        
  661      <!--                                                                  
  662       Attributes associated with the list info response                    
  663      -->                                                                   
  664      <complexType name="listDataType">                                     
  665        <sequence>                                                          
  666          <element name="listItem" type="maint:maintItemType"               
  667           minOccurs="0" maxOccurs="unbounded"/>                            
  668        </sequence>                                                         
  669      </complexType>                                                        
  670      <!--                                                                  
  671       Attributes associated with the list item info response               
  672      -->                                                                   
  673      <complexType name="maintItemType">                                    
  674        <sequence>                                                          
  675          <element name="id" type="maint:idType"/>                          
  676          <element name="start" type="dateTime"/>                           
  677          <element name="end" type="dateTime"/>                             
  678          <element name="crDate" type="dateTime"/>                          
  679          <element name="upDate" type="dateTime" minOccurs="0"/>            
  680        </sequence>                                                         
  681      </complexType>                                                        
  682      <!--                                                                  
  683       Attributes associated with the maintenance info response             
  684      -->                                                                   
  685      <complexType name="maintDataType">                                    
  686        <sequence>                                                          
  687          <element name="id" type="maint:idType"/>                          
  688          <element name="type" type="maint:typeType" minOccurs="0"          
  689           maxOccurs="unbounded"/>                                          
  690          <element name="pollType" type="maint:pollType" minOccurs="0"/>    
  691          <element name="systems" type="maint:systemsType"/>                
  692          <element name="environment" type="maint:envType"/>                
  693          <element name="start" type="dateTime"/>                           
  694          <element name="end" type="dateTime"/>                             
  695          <element name="reason" type="maint:reasonEnum"/>                  
  696          <element name="detail" type="anyURI" minOccurs="0"/>              
  697          <element name="description" type="maint:descriptionType"          
  698           minOccurs="0" maxOccurs="unbounded"/>                            
  699          <element name="tlds" type="maint:tldsType" minOccurs="0"/>        
  700          <element name="intervention" type="maint:interventionType"        
  701           minOccurs="0"/>                                                  
  702          <element name="crDate" type="dateTime"/>                          
  703          <element name="upDate" type="dateTime" minOccurs="0"/>            
  704        </sequence>                                                         
  705      </complexType>                                                        
  706      <!--                                                                  
  707       systems element                                                      
  708      -->                                                                   
  709      <complexType name="systemsType">                                      
  710        <sequence>                                                          
  711          <element name="system" type="maint:systemType"                    
  712           maxOccurs="unbounded"/>                                          
  713        </sequence>                                                         
  714      </complexType>                                                        
  715      <!--                                                                  
  716       Enumerated list of poll types                                        
  717      -->                                                                   
  718      <simpleType name="pollType">                                          
  719        <restriction base="token">                                          
  720          <enumeration value="create"/>                                     
  721          <enumeration value="update"/>                                     
  722          <enumeration value="delete"/>                                     
  723          <enumeration value="courtesy"/>                                   
  724          <enumeration value="end"/>                                        
  725        </restriction>                                                      
  726      </simpleType>                                                         
  727      <!--                                                                  
  728       Enumerated list of impacts                                           
  729      -->                                                                   
  730      <simpleType name="impactEnum">                                        
  731        <restriction base="token">                                          
  732          <enumeration value="none"/>                                       
  733          <enumeration value="partial"/>                                    
  734          <enumeration value="full"/>                                       
  735        </restriction>                                                      
  736      </simpleType>                                                         
  737      <!--                                                                  
  738       description element                                                  
  739      -->                                                                   
  740      <complexType name="descriptionType">                                  
  741        <simpleContent>                                                     
  742          <extension base="string">                                         
  743            <attribute name="lang" type="language" default="en"/>           
  744            <attribute name="type" type="maint:descEnum" default="plain"    
  745            />                                                              
  746          </extension>                                                      
  747        </simpleContent>                                                    
  748      </complexType>                                                        
  749      <!--                                                                  
  750       Enumerated list of description mime types                            
  751      -->                                                                   
  752      <simpleType name="descEnum">                                          
  753        <restriction base="token">                                          
  754          <enumeration value="plain"/>                                      
  755          <enumeration value="html"/>                                       
  756        </restriction>                                                      
  757      </simpleType>                                                         
  758      <!--                                                                  
  759       type element                                                         
  760      -->                                                                   
  761      <complexType name="typeType">                                         
  762        <simpleContent>                                                     
  763          <extension base="string">                                         
  764            <attribute name="lang" type="language" default="en"/>           
  765          </extension>                                                      
  766        </simpleContent>                                                    
  767      </complexType>                                                        
  768      <!--                                                                  
  769       system element                                                       
  770      -->                                                                   
  771      <complexType name="systemType">                                       
  772        <sequence>                                                          
  773          <element name="name" type="token"/>                               
  774          <element name="host" type="eppcom:labelType" minOccurs="0"/>      
  775          <element name="impact" type="maint:impactEnum"/>                  
  776        </sequence>                                                         
  777      </complexType>                                                        
  778      <!--                                                                  
  779       Enumerated list of environments                                      
  780      -->                                                                   
  781      <simpleType name="envEnum">                                           
  782        <restriction base="token">                                          
  783          <enumeration value="production"/>                                 
  784          <enumeration value="ote"/>                                        
  785          <enumeration value="staging"/>                                    
  786          <enumeration value="dev"/>                                        
  787          <enumeration value="custom"/>                                     
  788        </restriction>                                                      
  789      </simpleType>                                                         
  790      <!--                                                                  
  791       environment element                                                  
  792      -->                                                                   
  793      <complexType name="envType">                                          
  794        <simpleContent>                                                     
  795          <extension base="token">                                          
  796            <attribute name="type" type="maint:envEnum" use="required"/>    
  797            <attribute name="name" type="token" use="optional"/>            
  798          </extension>                                                      
  799        </simpleContent>                                                    
  800      </complexType>                                                        
  801      <!--                                                                  
  802       Enumerated list of reasons                                           
  803      -->                                                                   
  804      <simpleType name="reasonEnum">                                        
  805        <restriction base="token">                                          
  806          <enumeration value="planned"/>                                    
  807          <enumeration value="emergency"/>                                  
  808        </restriction>                                                      
  809      </simpleType>                                                         
  810      <!--                                                                  
  811       tlds element                                                         
  812      -->                                                                   
  813      <complexType name="tldsType">                                         
  814        <sequence>                                                          
  815          <element name="tld" type="eppcom:labelType"                       
  816           maxOccurs="unbounded"/>                                          
  817        </sequence>                                                         
  818      </complexType>                                                        
  819      <!--                                                                  
  820       intervention element                                                 
  821      -->                                                                   
  822      <complexType name="interventionType">                                 
  823        <sequence>                                                          
  824          <element name="connection" type="boolean"/>                       
  825          <element name="implementation" type="boolean"/>                   
  826        </sequence>                                                         
  827      </complexType>                                                        
  828      <!--                                                                  
  829       End of schema.                                                       
  830      -->                                                                   
  831      </schema>                                                             
  832    <CODE ENDS>                                                             
  833                                                                            
  834 6.  IANA Considerations                                                    
  835                                                                            
  836 6.1.  XML Namespace                                                        
  837                                                                            
  838    This document uses URNs to describe XML namespaces and XML schemas      
  839    conforming to a registry mechanism defined in [RFC3688].                
  840                                                                            
  841    The following entry has been registered as an XML namespace:            
  842                                                                            
  843    URI:  urn:ietf:params:xml:ns:epp:maintenance-1.0                        
  844    Registrant Contact:  IESG                                               
  845    XML:  None.  Namespace URIs do not represent an XML specification.      
  846                                                                            
  847    The following entry has been registered to the XML maintenance          
  848    schema:                                                                 
  849                                                                            
  850    URI:  urn:ietf:params:xml:schema:epp:maintenance-1.0                    
  851    Registrant Contact:  IESG                                               
  852    XML:  See the "Formal Syntax" section of this document.                 
  853                                                                            
  854 6.2.  EPP Extension Registry                                               
  855                                                                            
  856    The following entry has been added to the "Extensions for the           
  857    Extensible Provisioning Protocol (EPP)" registry, described in          
  858    [RFC7451]:                                                              
  859                                                                            
  860    Name of Extension:  Registry Maintenance Notification for the           
  861       Extensible Provisioning Protocol (EPP)                               
  862    Document status:  Standards Track                                       
  863    Reference:  RFC 9167                                                    
  864    Registrant Name and Email Address:  IESG <iesg@ietf.org>                
  865    TLDs:  Any                                                              
  866    IPR Disclosure:  None                                                   
  867    Status:  Active                                                         
  868    Notes:  None                                                            
  869                                                                            
  870 7.  Security Considerations                                                
  871                                                                            
  872    The security considerations of [RFC5730] apply in this document.        
  873    Additionally, a server MUST only provide maintenance information to     
  874    clients that are authorized.  Suppose a client queries a maintenance    
  875    identifier that it is not authorized to access per Section 4.1.1.1,     
  876    "Info Maintenance Item".  In that case, the server SHOULD return an     
  877    EPP error result code of 2201 ("Authorization error") or 2303           
  878    ("Object does not exist") [RFC5730].  The list of top-level domains     
  879    or registry zones returned in the "Info Maintenance Item" response      
  880    SHOULD be filtered based on the top-level domains or registry zones     
  881    for which the client is authorized.  Authorization of poll messages     
  882    is done at the time of poll message insertion and not at the time of    
  883    poll message consumption.                                               
  884                                                                            
  885 8.  References                                                             
  886                                                                            
  887 8.1.  Normative References                                                 
  888                                                                            
  889    [HTML5]    WHATWG, "HTML - Living Standard", December 2021,             
  890               <https://html.spec.whatwg.org/multipage/>.                   
  891                                                                            
  892    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate          
  893               Requirement Levels", BCP 14, RFC 2119,                       
  894               DOI 10.17487/RFC2119, March 1997,                            
  895               <https://www.rfc-editor.org/info/rfc2119>.                   
  896                                                                            
  897    [RFC3339]  Klyne, G. and C. Newman, "Date and Time on the Internet:     
  898               Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,      
  899               <https://www.rfc-editor.org/info/rfc3339>.                   
  900                                                                            
  901    [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform     
  902               Resource Identifier (URI): Generic Syntax", STD 66,          
  903               RFC 3986, DOI 10.17487/RFC3986, January 2005,                
  904               <https://www.rfc-editor.org/info/rfc3986>.                   
  905                                                                            
  906    [RFC5646]  Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying   
  907               Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646,          
  908               September 2009, <https://www.rfc-editor.org/info/rfc5646>.   
  909                                                                            
  910    [RFC5730]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",    
  911               STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009,         
  912               <https://www.rfc-editor.org/info/rfc5730>.                   
  913                                                                            
  914    [RFC5891]  Klensin, J., "Internationalized Domain Names in              
  915               Applications (IDNA): Protocol", RFC 5891,                    
  916               DOI 10.17487/RFC5891, August 2010,                           
  917               <https://www.rfc-editor.org/info/rfc5891>.                   
  918                                                                            
  919    [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC       
  920               2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,     
  921               May 2017, <https://www.rfc-editor.org/info/rfc8174>.         
  922                                                                            
  923    [RFC9038]  Gould, J. and M. Casanova, "Extensible Provisioning          
  924               Protocol (EPP) Unhandled Namespaces", RFC 9038,              
  925               DOI 10.17487/RFC9038, May 2021,                              
  926               <https://www.rfc-editor.org/info/rfc9038>.                   
  927                                                                            
  928    [W3C.REC-xml-20081126]                                                  
  929               Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and    
  930               F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth     
  931               Edition)", World Wide Web Consortium Recommendation REC-     
  932               xml-20081126, November 2008,                                 
  933               <https://www.w3.org/TR/2008/REC-xml-20081126>.               
  934                                                                            
  935 8.2.  Informative References                                               
  936                                                                            
  937    [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,     
  938               DOI 10.17487/RFC3688, January 2004,                          
  939               <https://www.rfc-editor.org/info/rfc3688>.                   
  940                                                                            
  941    [RFC7451]  Hollenbeck, S., "Extension Registry for the Extensible       
  942               Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451,      
  943               February 2015, <https://www.rfc-editor.org/info/rfc7451>.    
  944                                                                            
  945 Acknowledgments                                                            
  946                                                                            
  947    The authors wish to thank the following persons for their feedback      
  948    and suggestions: James Gould, Michael Bauland, Patrick Mevzek, Quoc-    
  949    Anh Pham, Raymond Zylstra, Christopher Martens, Anthony Eden, Neal      
  950    McPherson, Craig Marchant, and Andreas Huber.                           
  951                                                                            
  952 Authors' Addresses                                                         
  953                                                                            
  954    Tobias Sattler                                                          
  955                                                                            
  956    Email: mail@tobiassattler.com                                           
  957    URI:   https://tobiassattler.com                                        
  958                                                                            
  959                                                                            
  960    Roger Carney                                                            
  961    GoDaddy Inc.                                                            
  962    2155 E GoDaddy Way                                                      
  963    Tempe, AZ 85284                                                         
  964    United States of America                                                
  965                                                                            
  966    Email: rcarney@godaddy.com                                              
  967    URI:   https://www.godaddy.com                                          
  968                                                                            
  969                                                                            
  970    Jody Kolker                                                             
  971    GoDaddy Inc.                                                            
  972    2155 E GoDaddy Way                                                      
  973    Tempe, AZ 85284                                                         
  974    United States of America                                                
  975                                                                            
  976    Email: jkolker@godaddy.com                                              
  977    URI:   https://www.godaddy.com                                          
  978                                                                            
section-5.1 Stéphane Bortzmeyer(Technical Erratum #7176) [Reported]
based on outdated version
xmlns="https://www.w3.org/2001/XMLSchema"
It should say:
xmlns="http://www.w3.org/2001/XMLSchema"

XML Schema standard https://www.w3.org/TR/xmlschema-1/ "The XML
representation of schema components uses a vocabulary identified by the
namespace name http://www.w3.org/2001/XMLSchema. "