Tech-invite3GPPspaceIETFspace
959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 8334

Launch Phase Mapping for the Extensible Provisioning Protocol (EPP)

Pages: 58
Proposed Standard
Part 3 of 3 – Pages 46 to 58
First   Prev   None

Top   ToC   RFC8334 - Page 46   prevText

4. Formal Syntax

The EPP Launch Phase Mapping schema is presented in Section 4.1. The formal syntax presented 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. Launch Schema

Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: o Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. o Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. o Neither the name of Internet Society, IETF or IETF Trust, nor the names of specific contributors, may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
Top   ToC   RFC8334 - Page 47
   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

   BEGIN
   <?xml version="1.0" encoding="UTF-8"?>
   <schema
     targetNamespace="urn:ietf:params:xml:ns:launch-1.0"
     xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"
     xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
     xmlns:mark="urn:ietf:params:xml:ns:mark-1.0"
     xmlns:smd="urn:ietf:params:xml:ns:signedMark-1.0"
     xmlns="http://www.w3.org/2001/XMLSchema"
     elementFormDefault="qualified">

     <!-- Import common element types -->
     <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>
     <import namespace="urn:ietf:params:xml:ns:mark-1.0"/>
     <import namespace="urn:ietf:params:xml:ns:signedMark-1.0"/>

     <annotation>
       <documentation>
         Extensible Provisioning Protocol v1.0
         domain name
         extension schema
         for the launch phase processing.
       </documentation>
     </annotation>

     <!-- Child elements found in EPP commands -->
     <element
       name="check"
       type="launch:checkType"/>
     <element
       name="info"
       type="launch:infoType"/>
     <element
       name="create"
       type="launch:createType"/>
     <element
       name="update"
       type="launch:idContainerType"/>
     <element
       name="delete"
Top   ToC   RFC8334 - Page 48
       type="launch:idContainerType"/>

     <!-- Common container of id (identifier) element -->
     <complexType name="idContainerType">
       <sequence>
         <element
           name="phase"
           type="launch:phaseType"/>
         <element
           name="applicationID"
           type="launch:applicationIDType"/>
       </sequence>
     </complexType>

     <!-- Definition for application identifier -->
     <simpleType name="applicationIDType">
       <restriction base="token"/>
     </simpleType>

     <!-- Definition for launch phase.  Name is an
          optional attribute used to extend the phase type.
          For example, when using the phase type value
          of "custom", the "name" can be used to specify the
          custom phase. -->
     <complexType name="phaseType">
       <simpleContent>
         <extension base="launch:phaseTypeValue">
           <attribute
             name="name"
             type="token"/>
         </extension>
       </simpleContent>
     </complexType>

     <!-- Enumeration of launch phase values -->
     <simpleType name="phaseTypeValue">
       <restriction base="token">
         <enumeration value="sunrise"/>
         <enumeration value="landrush"/>
         <enumeration value="claims"/>
         <enumeration value="open"/>
         <enumeration value="custom"/>
       </restriction>
     </simpleType>


     <!-- Definition for the sunrise code -->
     <simpleType name="codeValue">
Top   ToC   RFC8334 - Page 49
       <restriction base="token">
         <minLength value="1"/>
       </restriction>
     </simpleType>

     <complexType name="codeType">
       <simpleContent>
         <extension base="launch:codeValue">
           <attribute
             name="validatorID"
             type="launch:validatorIDType"
             use="optional"/>
         </extension>
       </simpleContent>
     </complexType>

     <!-- Definition for the notice identifier -->
     <simpleType name="noticeIDValue">
       <restriction base="token">
         <minLength value="1"/>
       </restriction>
     </simpleType>

     <complexType name="noticeIDType">
       <simpleContent>
         <extension base="launch:noticeIDValue">
           <attribute
             name="validatorID"
             type="launch:validatorIDType"
             use="optional"/>
         </extension>
       </simpleContent>
     </complexType>

     <!-- Definition for the validator identifier -->
     <simpleType name="validatorIDType">
       <restriction base="token">
         <minLength value="1"/>
       </restriction>
     </simpleType>

     <!-- Possible status values for sunrise application -->
     <simpleType name="statusValueType">
       <restriction base="token">
         <enumeration value="pendingValidation"/>
         <enumeration value="validated"/>
         <enumeration value="invalid"/>
         <enumeration value="pendingAllocation"/>
Top   ToC   RFC8334 - Page 50
         <enumeration value="allocated"/>
         <enumeration value="rejected"/>
         <enumeration value="custom"/>
       </restriction>
     </simpleType>

     <!-- Status type definition -->
     <complexType name="statusType">
       <simpleContent>
         <extension base="normalizedString">
           <attribute
             name="s"
             type="launch:statusValueType"
             use="required"/>
           <attribute
             name="lang"
             type="language"
             default="en"/>
           <attribute
             name="name"
             type="token"/>
         </extension>
       </simpleContent>
     </complexType>

     <!-- codeMark Type that contains an optional
          code with mark information -->
     <complexType name="codeMarkType">
       <sequence>
         <element
           name="code"
           type="launch:codeType"
           minOccurs="0"/>
         <element
           ref="mark:abstractMark"
           minOccurs="0"/>
       </sequence>
     </complexType>

     <!-- Child elements for the create command -->
     <complexType name="createType">
       <sequence>
         <element
           name="phase"
           type="launch:phaseType"/>
         <choice minOccurs="0">
           <element
             name="codeMark"
Top   ToC   RFC8334 - Page 51
             type="launch:codeMarkType"
             maxOccurs="unbounded"/>
           <element
             ref="smd:abstractSignedMark"
             maxOccurs="unbounded"/>
           <element
             ref="smd:encodedSignedMark"
             maxOccurs="unbounded"/>
         </choice>
         <element
           name="notice"
           type="launch:createNoticeType"
           minOccurs="0"
           maxOccurs="unbounded"/>
       </sequence>
       <attribute
         name="type"
         type="launch:objectType"/>
     </complexType>

     <!-- Type of launch object -->
     <simpleType name="objectType">
       <restriction base="token">
         <enumeration value="application"/>
         <enumeration value="registration"/>
       </restriction>
     </simpleType>


     <!-- Child elements of the create notice element -->
     <complexType name="createNoticeType">
       <sequence>
         <element
           name="noticeID"
           type="launch:noticeIDType"/>
         <element
           name="notAfter"
           type="dateTime"/>
         <element
           name="acceptedDate"
           type="dateTime"/>
       </sequence>
     </complexType>


     <!-- Child elements of check (Claims Check Command) -->
     <complexType name="checkType">
       <sequence>
Top   ToC   RFC8334 - Page 52
         <element
           name="phase"
           type="launch:phaseType"
           minOccurs="0"/>
       </sequence>
       <attribute
         name="type"
         type="launch:checkFormType"
         default="claims"/>
     </complexType>


     <!-- Type of check form (Claims Check or Availability Check) -->
     <simpleType name="checkFormType">
       <restriction base="token">
         <enumeration value="claims"/>
         <enumeration value="avail"/>
         <enumeration value="trademark"/>
       </restriction>
     </simpleType>


     <!-- Child elements of info command -->
     <complexType name="infoType">
       <sequence>
         <element
           name="phase"
           type="launch:phaseType"/>
         <element
           name="applicationID"
           type="launch:applicationIDType"
           minOccurs="0"/>
       </sequence>
       <attribute
         name="includeMark"
         type="boolean"
         default="false"/>
     </complexType>

     <!-- Child response elements -->
     <element
       name="chkData"
       type="launch:chkDataType"/>
     <element
       name="creData"
       type="launch:idContainerType"/>
     <element
       name="infData"
Top   ToC   RFC8334 - Page 53
       type="launch:infDataType"/>

     <!-- <check> response elements -->
     <complexType name="chkDataType">
       <sequence>
         <element
           name="phase"
           type="launch:phaseType"
           minOccurs="0"/>
         <element
           name="cd"
           type="launch:cdType"
           maxOccurs="unbounded"/>
       </sequence>
     </complexType>

     <complexType name="cdType">
       <sequence>
         <element
           name="name"
           type="launch:cdNameType"/>
         <element
           name="claimKey"
           type="launch:claimKeyType"
           minOccurs="0"
           maxOccurs="unbounded"/>
       </sequence>
     </complexType>

     <complexType name="cdNameType">
       <simpleContent>
         <extension base="eppcom:labelType">
           <attribute
             name="exists"
             type="boolean"
             use="required"/>
         </extension>
       </simpleContent>
     </complexType>

     <complexType name="claimKeyType">
       <simpleContent>
         <extension base="token">
           <attribute
             name="validatorID"
             type="launch:validatorIDType"
             use="optional"/>
         </extension>
Top   ToC   RFC8334 - Page 54
       </simpleContent>
     </complexType>

     <!-- <info> response elements -->
     <complexType name="infDataType">
       <sequence>
         <element
           name="phase"
           type="launch:phaseType"/>
         <element
           name="applicationID"
           type="launch:applicationIDType"
           minOccurs="0"/>
         <element
           name="status"
           type="launch:statusType"
           minOccurs="0"/>
         <element
           ref="mark:abstractMark"
           minOccurs="0"
           maxOccurs="unbounded"/>
       </sequence>
     </complexType>

   </schema>
   END

5. IANA Considerations

5.1. XML Namespace

This document uses URNs to describe XML namespaces and XML schemas conforming to a registry mechanism described in [RFC3688]. IANA has registered the launch namespace as follows: URI: urn:ietf:params:xml:ns:launch-1.0 Registrant Contact: IESG XML: None. Namespace URIs do not represent an XML specification.
Top   ToC   RFC8334 - Page 55
   IANA has registered the launch XML schema as follows:

      URI: urn:ietf:params:xml:schema:launch-1.0

      Registrant Contact: IESG

      XML: See the "Formal Syntax" section of this document.

5.2. EPP Extension Registry

IANA has registered the EPP extension described in this document in the "Extensions for the Extensible Provisioning Protocol (EPP)" registry described in [RFC7451]. The details of the registration are as follows: Name of Extension: "Launch Phase Mapping for the Extensible Provisioning Protocol (EPP)" Document Status: Standards Track Reference: RFC 8334 Registrant Name and Email Address: IESG, <iesg@ietf.org> TLDs: Any IPR Disclosure: None Status: Active Notes: None

6. Security Considerations

The mapping extensions described in this document do not provide any security services beyond those described by EPP [RFC5730], the EPP domain name mapping [RFC5731], and protocol layers used by EPP. The security considerations described in these other specifications apply to this specification as well. Updates to, and deletion of, an application object MUST be restricted to clients authorized to perform the said operation on the object. Information contained within an application, or even the mere fact that an application exists, may be confidential. Any attempt to operate on an application object by an unauthorized client MUST be rejected with an EPP 2201 (authorization error) return code. Server policy may allow an <info> operation with filtered output by clients
Top   ToC   RFC8334 - Page 56
   other than the sponsoring client, in which case the <domain:infData>
   and <launch:infData> responses SHOULD be filtered to include only
   fields that are publicly accessible.

7. References

7.1. Normative References

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>. [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, <https://www.rfc-editor.org/info/rfc3688>. [RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, September 2009, <https://www.rfc-editor.org/info/rfc5646>. [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009, <https://www.rfc-editor.org/info/rfc5730>. [RFC5731] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) Domain Name Mapping", STD 69, RFC 5731, DOI 10.17487/RFC5731, August 2009, <https://www.rfc-editor.org/info/rfc5731>. [RFC7848] Lozano, G., "Mark and Signed Mark Objects Mapping", RFC 7848, DOI 10.17487/RFC7848, June 2016, <https://www.rfc-editor.org/info/rfc7848>. [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>. [W3C.REC-xml11-20060816] Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., Yergeau, F., and J. Cowan, "Extensible Markup Language (XML) 1.1 (Second Edition)", World Wide Web Consortium Recommendation REC-xml11-20060816, August 2006, <http://www.w3.org/TR/2006/REC-xml11-20060816>.
Top   ToC   RFC8334 - Page 57

7.2. Informative References

[ICANN-TMCH] Lozano, G., "ICANN TMCH functional specifications", Work in Progress, draft-ietf-regext-tmch-func-spec-03, July 2017. [RFC7451] Hollenbeck, S., "Extension Registry for the Extensible Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451, February 2015, <https://www.rfc-editor.org/info/rfc7451>.

Acknowledgements

The authors wish to acknowledge the efforts of the leading participants of the Community TMCH Model that led to many of the changes to this document, which include Chris Wright, Jeff Neuman, Jeff Eckhaus, and Will Shorter. Special suggestions that have been incorporated into this document were provided by Harald Alvestrand, Ben Campbell, Spencer Dawkins, Jothan Frakes, Keith Gaughan, Seth Goldman, Scott Hollenbeck, Michael Holloway, Jan Jansen, Rubens Kuhl, Mirja Kuehlewind, Warren Kumari, Ben Levac, Gustavo Lozano, Klaus Malorny, Alexander Mayrhofer, Alexey Melnikov, Patrick Mevzek, James Mitchell, Francisco Obispo, Mike O'Connell, Eric Rescorla, Bernhard Reutner-Fischer, Sabrina Tanamal, Trung Tran, Ulrich Wisser, and Sharon Wodjenski. Some of the description of the Trademark Claims Phase was based on the work done by Gustavo Lozano in the ICANN TMCH functional specifications.
Top   ToC   RFC8334 - Page 58

Authors' Addresses

James Gould VeriSign, Inc. 12061 Bluemont Way Reston, VA 20190 United States of America Email: jgould@verisign.com URI: http://www.verisign.com Wil Tan Cloud Registry Suite 32 Seabridge House 377 Kent St Sydney, NSW 2000 Australia Phone: +61 414 710899 Email: wil@cloudregistry.net URI: http://www.cloudregistry.net Gavin Brown CentralNic Ltd 35-39 Mooregate London, England EC2R 6AR United Kingdom Phone: +44 20 33 88 0600 Email: gavin.brown@centralnic.com URI: https://www.centralnic.com