3. EPP Command Mapping
A detailed description of the EPP syntax and semantics can be found in the EPP core protocol specification [RFC5730]. The command mappings described here are specifically for use in the Launch Phase Extension. This mapping is designed to be flexible, requiring only a minimum set of required elements. While it is meant to serve several use cases, it does not prescribe any interpretation by the client or server. Such processing is typically highly policy dependent and therefore specific to implementations. Operations on application objects are done via one or more of the existing EPP commands defined in the EPP domain name mapping [RFC5731]. Registries MAY choose to support a subset of the operations.3.1. EPP <check> Command
There are three forms of the extension to the EPP <check> command: the Claims Check Form (Section 3.1.1), the Availability Check Form (Section 3.1.2), and the Trademark Check Form (Section 3.1.3). The <launch:check> element "type" attribute defines the form, with the value of "claims" for the Claims Check Form (Section 3.1.1), "avail" for the Availability Check Form (Section 3.1.2), and "trademark" for the Trademark Check Form (Section 3.1.3). The default value of the "type" attribute is "claims". The forms supported by the server is determined by server policy. The server MUST return an EPP error result code of 2307 [RFC5730] if it receives a check form that is not supported.3.1.1. Claims Check Form
The Claims Check Form defines a new command called the Claims Check Command that is used to determine whether or not there are any matching trademarks, in the specified launch phase, for each domain name passed in the command, that require the use of the "Claims Create Form" on a Domain Create Command. The availability check information defined in the EPP domain name mapping [RFC5731] MUST NOT be returned for the Claims Check Command. This form is the default form and MAY be explicitly identified by setting the <launch:check> "type" attribute to "claims".
Instead of returning whether the domain name is available, the Claims Check Command will return whether or not at least one matching trademark exists for the domain name, which requires the use of the "Claims Create Form" on a Domain Create Command. If there is at least one matching trademark that exists for the domain name, a <launch:claimKey> element is returned. The client MAY then use the value of the <launch:claimKey> element to obtain information needed to generate the Trademark Claims Notice from the Trademark Validator based on the Validator Identifier (Section 2.2). The unique notice identifier of the Trademark Claims Notice MUST be passed in the <launch:noticeID> element of the extension to the Create Command (Section 3.3). The <domain:name> elements in the EPP <check> command of EPP domain name mapping [RFC5731] define the domain names to check for matching trademarks. The <launch:check> element contains the following child element: <launch:phase>: Contains the value of the active launch phase of the server. The server SHOULD validate the value according to Section 2.3.
The following is an example Claims Check Command using the <check> domain command and the <launch:check> extension with the "type" explicitly set to "claims", to determine if "domain1.example", "domain2.example", and "domain3.example" require claims notices during the "claims" launch phase: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <domain:check C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain1.example</domain:name> C: <domain:name>domain2.example</domain:name> C: <domain:name>domain3.example</domain:name> C: </domain:check> C: </check> C: <extension> C: <launch:check C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" C: type="claims"> C: <launch:phase>claims</launch:phase> C: </launch:check> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp> If the <check> command has been processed successfully, the EPP <response> MUST contain an <extension> <launch:chkData> element that identifies the launch namespace. The <launch:chkData> element contains the following child elements: <launch:phase>: The phase that mirrors the <launch:phase> element included in the <launch:check>. <launch:cd>: One or more <launch:cd> elements that contain the following child elements: <launch:name>: Contains the fully qualified name of the queried domain name. This element MUST contain an "exists" attribute whose value indicates if a matching trademark exists for the domain name that requires the use of the "Claims Create Form" on a Domain Create Command. A value of "1" (or "true") means that a matching trademark does exist and that the "Claims Create Form" is required on a Domain Create Command. A value
of "0" (or "false") means that a matching trademark does not exist or that the "Claims Create Form" is NOT required on a Domain Create Command. <launch:claimKey>: Zero or more OPTIONAL claim keys that MAY be passed to a third-party Trademark Validator such as the ICANN TMCH for querying the information needed to generate a Trademark Claims Notice. The <launch:claimKey> is used as the key for the query in place of the domain name to securely query the service without using a well-known value like a domain name. The OPTIONAL "validatorID" attribute is the Validator Identifier (Section 2.2) whose value indicates which Trademark Validator to query for the claims notice information, with the default being the ICANN TMCH. The "validatorID" attribute MAY reference a non-trademark claims clearinghouse identifier to support other forms of claims notices.
The following is an example Claims Check response when a claims notice for the "claims" launch phase is not required for the domain name domain1.example, is required for the domain name domain2.example in the "tmch", and is required for the domain name domain3.example in the "tmch" and "custom-tmch": S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1000"> S: <msg>Command completed successfully</msg> S: </result> S: <extension> S: <launch:chkData S: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> S: <launch:phase>claims</launch:phase> S: <launch:cd> S: <launch:name exists="0">domain1.example</launch:name> S: </launch:cd> S: <launch:cd> S: <launch:name exists="1">domain2.example</launch:name> S: <launch:claimKey validatorID="tmch"> S: 2013041500/2/6/9/rJ1NrDO92vDsAzf7EQzgjX4R0000000001 S: </launch:claimKey> S: </launch:cd> S: <launch:cd> S: <launch:name exists="1">domain3.example</launch:name> S: <launch:claimKey validatorID="tmch"> S: 2013041500/2/6/9/rJ1NrDO92vDsAzf7EQzgjX4R0000000001 S: </launch:claimKey> S: <launch:claimKey validatorID="custom-tmch"> S: 20140423200/1/2/3/rJ1Nr2vDsAzasdff7EasdfgjX4R000000002 S: </launch:claimKey> S: </launch:cd> S: </launch:chkData> S: </extension> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
3.1.2. Availability Check Form
The Availability Check Form defines additional elements to extend the EPP <check> command described in the EPP domain name mapping [RFC5731]. No additional elements are defined for the EPP <check> response. This form MUST be identified by setting the <launch:check> "type" attribute to "avail". The EPP <check> command is used to determine if an object can be provisioned within a repository. Domain names may be made available only in unique launch phases, whilst remaining unavailable for concurrent launch phases. In addition to the elements expressed in the <domain:check>, the command is extended with the <launch:check> element that contains the following child element: <launch:phase>: The launch phase to which domain name availability should be determined. The server SHOULD validate the value and return an EPP error result code of 2306 [RFC5730] if it is invalid. The following is an example Availability Check Form Command using the <check> domain command and the <launch:check> extension with the "type" set to "avail", to determine the availability of two domain names in the "idn-release" custom launch phase: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <domain:check C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain1.example</domain:name> C: <domain:name>domain2.example</domain:name> C: </domain:check> C: </check> C: <extension> C: <launch:check C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" C: type="avail"> C: <launch:phase name="idn-release">custom</launch:phase> C: </launch:check> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
The Availability Check Form does not define any extension to the response of a <check> domain command. After processing the command, the server replies with a standard EPP response as defined in the EPP domain name mapping [RFC5731].3.1.3. Trademark Check Form
The Trademark Check Form defines a new command called the Trademark Check Command that is used to determine whether or not there are any matching trademarks for each domain name passed in the command, independent of the active launch phase of the server and whether the "Claims Create Form" is required on a Domain Create Command. The availability check information defined in the EPP domain name mapping [RFC5731] MUST NOT be returned for the Trademark Check Command. This form MUST be identified by setting the <launch:check> "type" attribute to "trademark". Instead of returning whether the domain name is available, the Trademark Check Command will return whether or not at least one matching trademark exists for the domain name. If there is at least one matching trademark that exists for the domain name, a <launch:claimKey> element is returned. The client MAY then use the value of the <launch:claimKey> element to obtain Trademark Claims Notice information from the Trademark Validator based on the Validator Identifier (Section 2.2). The <domain:name> elements in the EPP <check> command of EPP domain name mapping [RFC5731] define the domain names to check for matching trademarks. The <launch:check> element does not contain any child elements with the "Trademark Check Form":
The following is an example Trademark Check Command using the <check> domain command and the <launch:check> extension with the "type" set to "trademark", to determine if "domain1.example", "domain2.example", and "domain3.example" have any matching trademarks: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <domain:check C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain1.example</domain:name> C: <domain:name>domain2.example</domain:name> C: <domain:name>domain3.example</domain:name> C: </domain:check> C: </check> C: <extension> C: <launch:check C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" C: type="trademark"/> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp> If the <check> command has been processed successfully, the EPP <response> MUST contain an <extension> <launch:chkData> element that identifies the launch namespace. The <launch:chkData> element contains the following child elements: <launch:cd>: One or more <launch:cd> elements that contain the following child elements: <launch:name>: Contains the fully qualified name of the queried domain name. This element MUST contain an "exists" attribute whose value indicates if a matching trademark exists for the domain name. A value of "1" (or "true") means that a matching trademark does exist. A value of "0" (or "false") means that a matching trademark does not exist. <launch:claimKey>: Zero or more OPTIONAL claim keys that MAY be passed to a third-party Trademark Validator such as the ICANN TMCH for querying the information needed to generate a Trademark Claims Notice. The <launch:claimKey> is used as the key for the query in place of the domain name to securely query the service without using a well-known value like a domain name. The OPTIONAL "validatorID" attribute is the Validator Identifier (Section 2.2) whose value indicates
which Trademark Validator to query for the claims notice information, with the default being the ICANN TMCH. The "validatorID" attribute MAY reference a non-trademark claims clearinghouse identifier to support other forms of claims notices. The following is an example Trademark Check response for the "claims" launch phase when no matching trademarks are found for the domain name domain1.example, matching trademarks are found for the domain name domain2.example in the "tmch", and matching trademarks are found for domain name domain3.example in the "tmch" and "custom-tmch": S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1000"> S: <msg>Command completed successfully</msg> S: </result> S: <extension> S: <launch:chkData S: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> S: <launch:cd> S: <launch:name exists="0">domain1.example</launch:name> S: </launch:cd> S: <launch:cd> S: <launch:name exists="1">domain2.example</launch:name> S: <launch:claimKey validatorID="tmch"> S: 2013041500/2/6/9/rJ1NrDO92vDsAzf7EQzgjX4R0000000001 S: </launch:claimKey> S: </launch:cd> S: <launch:cd> S: <launch:name exists="1">domain3.example</launch:name> S: <launch:claimKey validatorID="tmch"> S: 2013041500/2/6/9/rJ1NrDO92vDsAzf7EQzgjX4R0000000001 S: </launch:claimKey> S: <launch:claimKey validatorID="custom-tmch"> S: 20140423200/1/2/3/rJ1Nr2vDsAzasdff7EasdfgjX4R000000002 S: </launch:claimKey> S: </launch:cd> S: </launch:chkData> S: </extension> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
3.2. EPP <info> Command
This extension defines additional elements to extend the EPP <info> command and response to be used in conjunction with the EPP domain name mapping [RFC5731]. The EPP <info> command is used to retrieve information for a Launch Registration or Launch Application. The Application Identifier (Section 2.1) returned in the <launch:creData> element of the create response (Section 3.3) can be used for retrieving information for a Launch Application. A <launch:info> element is sent along with the regular <info> domain command. The <launch:info> element includes an OPTIONAL "includeMark" boolean attribute, with a default value of "false", to indicate whether or not to include the mark in the response. The <launch:info> element contains the following child elements: <launch:phase>: The phase during which the application or registration was submitted or is associated with. Server policy defines the phases that are supported. The server SHOULD validate the value and return an EPP error result code of 2306 [RFC5730] if it is invalid. <launch:applicationID>: OPTIONAL application identifier of the Launch Application.
The following is an example <info> domain command with the <launch:info> extension to retrieve information for the sunrise application for domain.example and application identifier "abc123": C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <info> C: <domain:info C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain.example</domain:name> C: </domain:info> C: </info> C: <extension> C: <launch:info C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" C: includeMark="true"> C: <launch:phase>sunrise</launch:phase> C: <launch:applicationID>abc123</launch:applicationID> C: </launch:info> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp> The following is an example <info> domain command with the <launch:info> extension to retrieve information for the sunrise registration for domain.example: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <info> C: <domain:info C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain.example</domain:name> C: </domain:info> C: </info> C: <extension> C: <launch:info C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> C: <launch:phase>sunrise</launch:phase> C: </launch:info> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
If the query was successful, the server replies with a <launch:infData> element along with the regular EPP <resData>. The <launch:infData> contains the following child elements: <launch:phase>: The phase during which the application was submitted or is associated with that matches the associated <info> command <launch:phase>. <launch:applicationID>: OPTIONAL Application Identifier of the Launch Application. <launch:status>: OPTIONAL status of the Launch Application using one of the supported status values (Section 2.4). <mark:mark>: Zero or more <mark:mark> (Section 2.6.2) elements only if the "includeMark" attribute is "true" in the command.
The following is an example <info> domain response using the <launch:infData> extension with the mark information: S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1000"> S: <msg>Command completed successfully</msg> S: </result> S: <resData> S: <domain:infData S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: <domain:name>domain.example</domain:name> S: <domain:roid>EXAMPLE1-REP</domain:roid> S: <domain:status s="pendingCreate"/> S: <domain:registrant>jd1234</domain:registrant> S: <domain:contact type="admin">sh8013</domain:contact> S: <domain:contact type="tech">sh8013</domain:contact> S: <domain:clID>ClientX</domain:clID> S: <domain:crID>ClientY</domain:crID> S: <domain:crDate>2012-04-03T22:00:00.0Z</domain:crDate> S: <domain:authInfo> S: <domain:pw>2fooBAR</domain:pw> S: </domain:authInfo> S: </domain:infData> S: </resData> S: <extension> S: <launch:infData S: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> S: <launch:phase>sunrise</launch:phase> S: <launch:applicationID>abc123</launch:applicationID> S: <launch:status s="pendingValidation"/> S: <mark:mark S: xmlns:mark="urn:ietf:params:xml:ns:mark-1.0"> S: ... S: </mark:mark> S: </launch:infData> S: </extension> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
3.3. EPP <create> Command
There are four forms of the extension to the EPP <create> command that include the Sunrise Create Form (Section 3.3.1), the Claims Create Form (Section 3.3.2), the General Create Form (Section 3.3.3), and the Mixed Create Form (Section 3.3.4). The form used is dependent on the supported launch phases (Section 2.3) as defined below. sunrise: The EPP <create> command with the "sunrise" launch phase is used to submit a registration with trademark information that can be verified by the server with the <domain:name> value. The Sunrise Create Form (Section 3.3.1) is used for the "sunrise" launch phase. landrush: The EPP <create> command with the "landrush" launch phase MAY use the General Create Form (Section 3.3.3) to explicitly specify the phase and optionally define the expected type of object to create. claims: The EPP <create> command with the "claims" launch phase is used to pass the information associated with the presentation and acceptance of the claims notice. The Claims Create Form (Section 3.3.2) is used, and the General Create Form (Section 3.3.3) MAY be used for the "claims" launch phase. open: The EPP <create> command with the "open" launch phase is undefined, but the form supported is up to server policy. The Claims Create Form (Section 3.3.2) MAY be used to pass the information associated with the presentation and acceptance of the claims notice if required for the domain name. custom: The EPP <create> command with the "custom" launch phase is undefined, but the form supported is up to server policy.3.3.1. Sunrise Create Form
The Sunrise Create Form of the extension to the EPP domain name mapping [RFC5731] includes the verifiable trademark information that the server uses to match against the domain name to authorize the domain create. A server MUST support one of four models in Mark Validation Models (Section 2.6) to verify the trademark information passed by the client. A <launch:create> element is sent along with the regular <create> domain command. The <launch:create> element has an OPTIONAL "type" attribute that defines the expected type of object ("application" or "registration") to create. The server SHOULD validate the "type"
attribute, when passed, against the type of object that will be created, and return an EPP error result code of 2306 [RFC5730] if the type is incorrect. The <launch:create> element contains the following child elements: <launch:phase>: The identifier for the launch phase. The server SHOULD validate the value according to Section 2.3. <launch:codeMark> or <smd:signedMark> or <smd:encodedSignedMark>: <launch:codeMark>: Zero or more <launch:codeMark> elements. The <launch:codeMark> child elements are defined in "<launch:codeMark> Element" (Section 2.6.1). <smd:signedMark>: Zero or more <smd:signedMark> elements. The <smd:signedMark> child elements are defined in "<smd:signedMark> Element" (Section 2.6.3.1). <smd:encodedSignedMark>: Zero or more <smd:encodedSignedMark> elements. The <smd:encodedSignedMark> child elements are defined in "<smd:encodedSignedMark> Element" (Section 2.6.3.2).
The following is an example <create> domain command using the <launch:create> extension, following the "code" validation model, with multiple sunrise codes: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <create> C: <domain:create C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain.example</domain:name> C: <domain:registrant>jd1234</domain:registrant> C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="tech">sh8013</domain:contact> C: <domain:authInfo> C: <domain:pw>2fooBAR</domain:pw> C: </domain:authInfo> C: </domain:create> C: </create> C: <extension> C: <launch:create C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> C: <launch:phase>sunrise</launch:phase> C: <launch:codeMark> C: <launch:code validatorID="sample1"> C: 49FD46E6C4B45C55D4AC</launch:code> C: </launch:codeMark> C: <launch:codeMark> C: <launch:code>49FD46E6C4B45C55D4AD</launch:code> C: </launch:codeMark> C: <launch:codeMark> C: <launch:code validatorID="sample2"> C: 49FD46E6C4B45C55D4AE</launch:code> C: </launch:codeMark> C: </launch:create> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
The following is an example <create> domain command using the <launch:create> extension, following the "mark" validation model, with the mark information: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <create> C: <domain:create C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domainone.example</domain:name> C: <domain:registrant>jd1234</domain:registrant> C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="tech">sh8013</domain:contact> C: <domain:authInfo> C: <domain:pw>2fooBAR</domain:pw> C: </domain:authInfo> C: </domain:create> C: </create> C: <extension> C: <launch:create C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> C: <launch:phase>sunrise</launch:phase> C: <launch:codeMark> C: <mark:mark C: xmlns:mark="urn:ietf:params:xml:ns:mark-1.0"> C: ... C: </mark:mark> C: </launch:codeMark> C: </launch:create> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
The following is an example <create> domain command using the <launch:create> extension, following the "code with mark" validation model, with the code and mark information: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <create> C: <domain:create C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain.example</domain:name> C: <domain:registrant>jd1234</domain:registrant> C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="tech">sh8013</domain:contact> C: <domain:authInfo> C: <domain:pw>2fooBAR</domain:pw> C: </domain:authInfo> C: </domain:create> C: </create> C: <extension> C: <launch:create C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> C: <launch:phase>sunrise</launch:phase> C: <launch:codeMark> C: <launch:code validatorID="sample"> C: 49FD46E6C4B45C55D4AC</launch:code> C: <mark:mark C: xmlns:mark="urn:ietf:params:xml:ns:mark-1.0"> C: ... C: </mark:mark> C: </launch:codeMark> C: </launch:create> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
The following is an example <create> domain command using the <launch:create> extension, following the "signed mark" validation model, with the signed mark information for a sunrise application: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <create> C: <domain:create C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domainone.example</domain:name> C: <domain:registrant>jd1234</domain:registrant> C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="tech">sh8013</domain:contact> C: <domain:authInfo> C: <domain:pw>2fooBAR</domain:pw> C: </domain:authInfo> C: </domain:create> C: </create> C: <extension> C: <launch:create C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" C: type="application"> C: <launch:phase>sunrise</launch:phase> C: <smd:signedMark id="signedMark" C: xmlns:smd="urn:ietf:params:xml:ns:signedMark-1.0"> C: ... C: </smd:signedMark> C: </launch:create> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
The following is an example <create> domain command using the <launch:create> extension, following the "signed mark" validation model, with the base64-encoded signed mark information: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <create> C: <domain:create C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domainone.example</domain:name> C: <domain:registrant>jd1234</domain:registrant> C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="tech">sh8013</domain:contact> C: <domain:authInfo> C: <domain:pw>2fooBAR</domain:pw> C: </domain:authInfo> C: </domain:create> C: </create> C: <extension> C: <launch:create C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> C: <launch:phase>sunrise</launch:phase> C: <smd:encodedSignedMark C: xmlns:smd="urn:ietf:params:xml:ns:signedMark-1.0"> C: ... C: </smd:encodedSignedMark> C: </launch:create> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>3.3.2. Claims Create Form
The Claims Create Form of the extension to the EPP domain name mapping [RFC5731] includes the information related to the registrant's acceptance of the claims notice. A <launch:create> element is sent along with the regular <create> domain command. The <launch:create> element has an OPTIONAL "type" attribute that defines the expected type of object ("application" or "registration") to create. The server SHOULD validate the "type" attribute, when passed, against the type of object that will be created, and return an EPP error result code of 2306 [RFC5730] if the type is incorrect. The <launch:create> element contains the following child elements:
<launch:phase>: Contains the value of the active launch phase of the server. The server SHOULD validate the value according to Section 2.3. <launch:notice>: One or more <launch:notice> elements that contain the following child elements: <launch:noticeID>: Unique notice identifier for the claims notice. The <launch:noticeID> element has an OPTIONAL "validatorID" attribute that is used to define the Validator Identifier (Section 2.2); it's value indicates which Trademark Validator is the source of the claims notice, with the default being the ICANN TMCH. <launch:notAfter>: Expiry of the claims notice. <launch:acceptedDate>: Contains the date and time that the claims notice was accepted.
The following is an example <create> domain command using the <launch:create> extension with the <launch:notice> information for the "tmch" and the "custom-tmch" validators, for the "claims" launch phase: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <create> C: <domain:create C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain.example</domain:name> C: <domain:registrant>jd1234</domain:registrant> C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="tech">sh8013</domain:contact> C: <domain:authInfo> C: <domain:pw>2fooBAR</domain:pw> C: </domain:authInfo> C: </domain:create> C: </create> C: <extension> C: <launch:create C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> C: <launch:phase>claims</launch:phase> C: <launch:notice> C: <launch:noticeID validatorID="tmch"> C: 370d0b7c9223372036854775807</launch:noticeID> C: <launch:notAfter>2014-06-19T10:00:00.0Z C: </launch:notAfter> C: <launch:acceptedDate>2014-06-19T09:00:00.0Z C: </launch:acceptedDate> C: </launch:notice> C: <launch:notice> C: <launch:noticeID validatorID="custom-tmch"> C: 470d0b7c9223654313275808</launch:noticeID> C: <launch:notAfter>2014-06-19T10:00:00.0Z C: </launch:notAfter> C: <launch:acceptedDate>2014-06-19T09:00:30.0Z C: </launch:acceptedDate> C: </launch:notice> C: </launch:create> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
3.3.3. General Create Form
The General Create Form of the extension to the EPP domain name mapping [RFC5731] includes the launch phase and optionally the object type to create. The OPTIONAL "type" attribute defines the expected type of object ("application" or "registration") to create. The server SHOULD validate the "type" attribute, when passed, against the type of object that will be created, and return an EPP error result code of 2306 [RFC5730] if the type is incorrect. A <launch:create> element is sent along with the regular <create> domain command. The <launch:create> element contains the following child element: <launch:phase>: Contains the value of the active launch phase of the server. The server SHOULD validate the value according to Section 2.3. The following is an example <create> domain command using the <launch:create> extension for a "landrush" launch phase application: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <create> C: <domain:create C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain.example</domain:name> C: <domain:registrant>jd1234</domain:registrant> C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="tech">sh8013</domain:contact> C: <domain:authInfo> C: <domain:pw>2fooBAR</domain:pw> C: </domain:authInfo> C: </domain:create> C: </create> C: <extension> C: <launch:create C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" C: type="application"> C: <launch:phase>landrush</launch:phase> C: </launch:create> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
3.3.4. Mixed Create Form
The Mixed Create Form supports a mix of the create forms where, for example, the Sunrise Create Form (Section 3.3.1) and the Claims Create Form (Section 3.3.2) MAY be supported in a single command by including both the verified trademark information and the information related to the registrant's acceptance of the claims notice. The server MAY support the Mixed Create Form. The "custom" launch phase SHOULD be used when using the Mixed Create Form.
The following is an example <create> domain command using the <launch:create> extension, with a mix of the Sunrise Create Form (Section 3.3.1) and the Claims Create Form (Section 3.3.2), including both a mark and a notice: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <create> C: <domain:create C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domainone.example</domain:name> C: <domain:registrant>jd1234</domain:registrant> C: <domain:contact type="admin">sh8013</domain:contact> C: <domain:contact type="tech">sh8013</domain:contact> C: <domain:authInfo> C: <domain:pw>2fooBAR</domain:pw> C: </domain:authInfo> C: </domain:create> C: </create> C: <extension> C: <launch:create C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" C: type="application"> C: <launch:phase name="non-tmch-sunrise">custom</launch:phase> C: <launch:codeMark> C: <mark:mark C: xmlns:mark="urn:ietf:params:xml:ns:mark-1.0"> C: ... C: </mark:mark> C: </launch:codeMark> C: <launch:notice> C: <launch:noticeID validatorID="tmch"> C: 49FD46E6C4B45C55D4AC C: </launch:noticeID> C: <launch:notAfter>2012-06-19T10:00:10.0Z C: </launch:notAfter> C: <launch:acceptedDate>2012-06-19T09:01:30.0Z C: </launch:acceptedDate> C: </launch:notice> C: </launch:create> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
3.3.5. Create Response
If the create was successful, the server MAY add a <launch:creData> element to the regular EPP <resData> to indicate that the server generated an Application Identifier (Section 2.1), when multiple applications of a given domain name are supported; otherwise, no extension is included with the regular EPP <resData>. The <launch:creData> element contains the following child elements: <launch:phase>: The phase of the application that mirrors the <launch:phase> element included in the <launch:create>. <launch:applicationID>: The application identifier of the application. The following is an example response when multiple overlapping applications are supported by the server: S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1001"> S: <msg>Command completed successfully; action pending</msg> S: </result> S: <resData> S: <domain:creData S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: <domain:name>domain.example</domain:name> S: <domain:crDate>2010-08-10T15:38:26.623854Z</domain:crDate> S: </domain:creData> S: </resData> S: <extension> S: <launch:creData S: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> S: <launch:phase>sunrise</launch:phase> S: <launch:applicationID>2393-9323-E08C-03B1 S: </launch:applicationID> S: </launch:creData> S: </extension> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
3.4. EPP <update> Command
This extension defines additional elements to extend the EPP <update> command to be used in conjunction with the domain name mapping. When an EPP <update> command with the extension is sent to a server that does not support Launch Applications, it will fail. A server that does not support Launch Applications during its launch phase MUST return an EPP error result code of 2102 [RFC5730] when receiving an EPP <update> command with the extension. Registry policies permitting, clients may update an application object by submitting an EPP <update> command along with a <launch:update> element to indicate the application object to be updated. The <launch:update> element contains the following child elements: <launch:phase>: The phase during which the application was submitted or is associated with. The server SHOULD validate the value and return an EPP error result code of 2306 [RFC5730] if it is invalid. <launch:applicationID>: The application identifier for which the client wishes to update.
The following is an example <update> domain command with the <launch:update> extension to add and remove a name server of a sunrise application with the application identifier "abc123": C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <update> C: <domain:update C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain.example</domain:name> C: <domain:add> C: <domain:ns> C: <domain:hostObj>ns2.domain.example</domain:hostObj> C: </domain:ns> C: </domain:add> C: <domain:rem> C: <domain:ns> C: <domain:hostObj>ns1.domain.example</domain:hostObj> C: </domain:ns> C: </domain:rem> C: </domain:update> C: </update> C: <extension> C: <launch:update C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> C: <launch:phase>sunrise</launch:phase> C: <launch:applicationID>abc123</launch:applicationID> C: </launch:update> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp> This extension does not define any extension to the response of an <update> domain command. After processing the command, the server replies with a standard EPP response as defined in the EPP domain name mapping [RFC5731].3.5. EPP <delete> Command
This extension defines additional elements to extend the EPP <delete> command to be used in conjunction with the domain name mapping. A client MUST NOT pass the extension on an EPP <delete> command to a server that does not support Launch Applications. A server that does
not support Launch Applications during its launch phase MUST return an EPP error result code of 2102 [RFC5730] when receiving an EPP <delete> command with the extension. Registry policies permitting, clients MAY withdraw an application by submitting an EPP <delete> command along with a <launch:delete> element to indicate the application object to be deleted. The <launch:delete> element contains the following child elements: <launch:phase>: The phase during which the application was submitted or is associated with. The server SHOULD validate the value and return an EPP error result code of 2306 [RFC5730] if it is invalid. <launch:applicationID>: The application identifier for which the client wishes to delete. The following is an example <delete> domain command with the <launch:delete> extension: C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <delete> C: <domain:delete C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name>domain.example</domain:name> C: </domain:delete> C: </delete> C: <extension> C: <launch:delete C: xmlns:launch="urn:ietf:params:xml:ns:launch-1.0"> C: <launch:phase>sunrise</launch:phase> C: <launch:applicationID>abc123</launch:applicationID> C: </launch:delete> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp> This extension does not define any extension to the response of a <delete> domain command. After processing the command, the server replies with a standard EPP response as defined in the EPP domain name mapping [RFC5731].
3.6. EPP <renew> Command
This extension does not define any extension to the EPP <renew> command or response described in the EPP domain name mapping [RFC5731].3.7. EPP <transfer> Command
This extension does not define any extension to the EPP <transfer> command or response described in the EPP domain name mapping [RFC5731].