Re: Fwd: New Version Notification for draft-brown-epp-fees-01.txt
Seth Goldman <[email protected]> Thu, 8 May 2014 11:54:51 -0400
| Newsgroups | gmane.ietf.provreg |
|---|---|
| Message-ID | <CAAHh_-J+o3ssgTRm=9XVrNuGWC-BYjOny3fVdSazLwESz-iGQw@mail.gmail.com> |
--===============0046516205328989252== Content-Type: multipart/alternative; boundary=089e013a04fa5ae93d04f8e58006 --089e013a04fa5ae93d04f8e58006 Content-Type: text/plain; charset=ISO-8859-1 I think most/any of these scenarios are possible, depending on the registry's business logic. For example, perhaps the price returned on an <info> is different price than on a <check> because the registry has some special incentive program for existing renewals versus new registrations (assuming that's allowable under ICANN rules). Same might go for a repeated <fee:domain> element. In general, I'd advocate for making the protocol as flexible as possible for expressing the data (within reason), while leaving the exact semantics of that data as "server policy". Otherwise you end up embedding a lot of business logic into the protocol, which then forces registries and resellers to modify or add extensions when their use case doesn't exactly match the canonical use case of the spec. On Thu, May 8, 2014 at 11:42 AM, Jens Wagner <[email protected]> wrote: > Thank you Gavin! > > Got a couple of questions regarding the fee extension: > > 1. Is there are reason, that a client provides the <fee:currency> element > when sending a query command, e.g. <check>? > > 2. Do the <fee:domain> elements in <fee:check> need to match the > <domain:name> elements in <domain:check>? > > 3. May a <fee:domain> element for a single domain get repeated in > <domain:check>, e.g. for different periods? > E.g. useful, when providing a [period => price] dropdown in a shoppingcart: > > > C: <fee:domain> > C: <fee:name>example.com</fee:name> > C: <fee:currency>USD</fee:currency> > C: <fee:command>create</fee:command> > > C: <fee:period unit="y">1</fee:period> > C: </fee:domain> > C: <fee:domain> > C: <fee:name>example.com</fee:name> > > C: <fee:currency>USD</fee:currency> > C: <fee:command>create</fee:command> > C: <fee:period unit="y">2</fee:period> > C: </fee:domain> > ... > > C: <fee:domain> > C: <fee:name>example.com</fee:name> > C: <fee:currency>USD</fee:currency> > C: <fee:command>create</fee:command> > C: <fee:period unit="y">10</fee:period> > C: </fee:domain> > > Btw, this would not be needed, if supporting price classes. > > 4. Some registries return an error on <domain:info>, if a different > registrar manages the domain, so <fee:infData> wouldn't get returned > either, correct? Does <fee:info> have any advantage over <fee:check>? > > 5. The EPP <renew> command example should use <fee:renew> instead of > <fee:create>? > > Best, > - jens > > > Am 01.05.2014 19:12, schrieb Gavin Brown: > > Thanks to all for the feedback. I am working on a revised draft that > will use a single <fee:check> element in commands and a single > <fee:chkData> element in responses. > > Here are some example commands and responses: let me know what you think. > > Thanks, > > 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>example.com</domain:name> > C: <domain:name>example.net</domain:name> > C: <domain:name>example.org</domain:name> > C: </domain:check> > C: </check> > C: <extension> > C: <fee:check > C: xmlns:fee="urn:ietf:params:xml:ns:fee-0.5"> > C: <fee:domain> > C: <fee:name>example.com</fee:name> > C: <fee:currency>USD</fee:currency> > C: <fee:command phase="sunrise">create</fee:command> > C: <fee:period unit="y">1</fee:period> > C: </fee:domain> > C: <fee:domain> > C: <fee:name>example.net</fee:name> > C: <fee:currency>EUR</fee:currency> > C: <fee:command phase="claims" subphase="landrush"> > C: create</fee:command> > C: <fee:period unit="y">2</fee:name> > C: </fee:domain> > C: <fee:domain> > C: <fee:name>example.org</fee:name> > C: <fee:currency>EUR</fee:currency> > C: <fee:command>transfer</fee:command> > C: </fee:domain> > C: <fee:domain> > C: <fee:name>example.xyz</fee:name> > C: <fee:command>restore</fee:command> > C: <fee:period unit="y">1</fee:period> > C: </fee:domain> > C: </fee:check> > C: </extension> > C: <clTRID>ABC-12345</clTRID> > C: </command> > C: </epp> > > 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:chkData > S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> > S: <domain:cd> > S: <domain:name avail="1">example.com</domain:name> > S: </domain:cd> > S: <domain:cd> > S: <domain:name avail="0">example.net</domain:name> > S: <domain:reason>In use</domain:reason> > S: </domain:cd> > S: <domain:cd> > S: <domain:name avail="0">example.org</domain:name> > S: <domain:reason>In use</domain:reason> > S: </domain:cd> > S: </domain:chkData> > S: </resData> > S: <extension> > S: <fee:chkData > S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.5"> > S: <fee:cd > S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.5"> > S: <fee:name>example.com</fee:name> > S: <fee:currency>USD</fee:currency> > S: <fee:command phase="sunrise">create</fee:command> > S: <fee:period unit="y">1</fee:period> > S: <fee:fee description="Application Fee">5.00</fee:fee> > S: <fee:fee description="Registration Fee">5.00</fee:fee> > S: </fee:cd> > S: <fee:cd > S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.5"> > S: <fee:name>example.net</fee:name> > S: <fee:currency>EUR</fee:currency> > S: <fee:command phase="claims" subphase="landrush"> > S: create</fee:command> > S: <fee:period unit="y">2</fee:period> > S: <fee:fee>5.00</fee:fee> > S: </fee:cd> > S: <fee:cd > S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.5"> > S: <fee:name>example.org</fee:name> > S: <fee:currency>EUR</fee:currency> > S: <fee:command>transfer</fee:command> > S: <fee:period unit="y">2</fee:period> > S: <fee:fee description="Transfer Fee">2.50</fee:fee> > S: <fee:fee description="Renewal Fee">10.00</fee:fee> > S: </fee:cd> > S: <fee:cd > S: xmlns:fee="urn:ietf:params:xml:ns:fee-0.5"> > S: <fee:name>example.xyz</fee:name> > S: <fee:currency>GBP</fee:currency> > S: <fee:command>restore</fee:command> > S: <fee:period unit="y">1</fee:period> > S: <fee:fee description="Restore Fee">25</fee:fee> > S: <fee:fee description="Renewal Fee">5.00</fee:fee> > S: </fee:cd> > S: </fee:chkData> > S: </extension> > S: <trID> > S: <clTRID>ABC-12345</clTRID> > S: <svTRID>54322-XYZ</svTRID> > S: </trID> > S: </response> > S: </epp> > > > > > _______________________________________________ > provreg mailing [email protected]://www.ietf.org/mailman/listinfo/provreg > > > _______________________________________________ > provreg mailing list > [email protected] > https://www.ietf.org/mailman/listinfo/provreg > > --089e013a04fa5ae93d04f8e58006 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>I think most/any of these scenarios are possible, dep= ending on the registry's business logic. For example, perhaps the price= returned on an <info> is different price than on a <check> bec= ause the registry has some special incentive program for existing renewals = versus new registrations (assuming that's allowable under ICANN rules).= Same might go for a repeated <fee:domain> element.</div> <div><br></div>In general, I'd advocate for making the protocol as flex= ible as possible for expressing the data (within reason), while leaving the= exact semantics of that data as "server policy". Otherwise you e= nd up embedding a lot of business logic into the protocol, which then force= s registries and resellers to modify or add extensions when their use case = doesn't exactly match the canonical use case of the spec.<div class=3D"= gmail_extra"> <br><div class=3D"gmail_quote">On Thu, May 8, 2014 at 11:42 AM, Jens Wagner= <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" target=3D"_bl= ank">[email protected]</a>></span> wrote:<br><blockquote class=3D"gmai= l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left= :1ex"> =20 =20 =20 <div bgcolor=3D"#FFFFFF" text=3D"#000000"> <div>Thank you Gavin!<br> <br> Got a couple of questions regarding the fee extension:<br> <br> 1. Is there are reason, that a client provides the <fee:currency> element when sending a query command, e.g. <check>?<br> <br> 2. Do the <fee:domain> elements in <fee:check> need to match the <domain:name> elements in <domain:check>?<br> <br> 3. May a <fee:domain> element for a single domain get repeated in <domain:check>, e.g. for different periods?<br> E.g. useful, when providing a [period =3D> price] dropdown in a shoppingcart:<div><br> <br> <tt>C:=A0=A0=A0=A0=A0=A0=A0=A0 <fee:domain></tt><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:name><a href=3D"= http://example.com" target=3D"_blank">example.com</a></fee:name></tt>= <tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:currency>USD<= /fee:currency></tt><tt><br> </tt></div><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:command>create</fee:command></tt><div><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:period unit=3D"y">1</fee:period></tt><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0 </fee:domain></tt><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0 <fee:domain></tt><tt><br> </tt></div><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:name><a hr= ef=3D"http://example.com" target=3D"_blank">example.com</a></fee:name>= ;</tt><div><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:currency>USD<= /fee:currency></tt><tt><br> </tt></div><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:command>create</fee:command></tt><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:period unit=3D"y">2</fee:period></tt><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0 </fee:domain></tt><tt><br> </tt><tt>...</tt><div><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0 <fee:domain></tt><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:name><a href=3D"= http://example.com" target=3D"_blank">example.com</a></fee:name></tt>= <tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:currency>USD<= /fee:currency></tt><tt><br> </tt></div><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:command>create</fee:command></tt><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <fee:period unit=3D"y">10</fee:period></tt><tt><br> </tt><tt>C:=A0=A0=A0=A0=A0=A0=A0=A0 </fee:domain></tt><br> <br> Btw, this would not be needed, if supporting price classes.<br> <br> 4. Some registries return an error on <domain:info>, if a different registrar manages the domain, so <fee:infData> wouldn't get returned either, correct? Does <fee:info> have any advantage over <fee:check>?<br> <br> 5. The EPP <renew> command example should use <fee:renew> instead of <fee:create>?<br> <br> Best,<br> - jens<br> <br> <br> Am 01.05.2014 19:12, schrieb Gavin Brown:<br> </div> <blockquote type=3D"cite"><div><div> <pre>Thanks to all for the feedback. I am working on a revised draft = that will use a single <fee:check> element in commands and a single <fee:chkData> element in responses. Here are some example commands and responses: let me know what you think. Thanks, C: <?xml version=3D"1.0" encoding=3D"utf-8" standalo= ne=3D"no"?> C: <epp xmlns=3D"urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <domain:check C: xmlns:domain=3D"urn:ietf:params:xml:ns:domain-1.0"> C: <domain:name><a href=3D"http://example.com" target=3D"_bla= nk">example.com</a></domain:name> C: <domain:name><a href=3D"http://example.net" target=3D"_bla= nk">example.net</a></domain:name> C: <domain:name><a href=3D"http://example.org" target=3D"_bla= nk">example.org</a></domain:name> C: </domain:check> C: </check> C: <extension> C: <fee:check C: xmlns:fee=3D"urn:ietf:params:xml:ns:fee-0.5"> C: <fee:domain> C: <fee:name><a href=3D"http://example.com" target=3D"_blan= k">example.com</a></fee:name> C: <fee:currency>USD</fee:currency> C: <fee:command phase=3D"sunrise">create</fee:= command> C: <fee:period unit=3D"y">1</fee:period> C: </fee:domain> C: <fee:domain> C: <fee:name><a href=3D"http://example.net" target=3D"_blan= k">example.net</a></fee:name> C: <fee:currency>EUR</fee:currency> C: <fee:command phase=3D"claims" subphase=3D"la= ndrush"> C: create</fee:command> C: <fee:period unit=3D"y">2</fee:name> C: </fee:domain> C: <fee:domain> C: <fee:name><a href=3D"http://example.org" target=3D"_blan= k">example.org</a></fee:name> C: <fee:currency>EUR</fee:currency> C: <fee:command>transfer</fee:command> C: </fee:domain> C: <fee:domain> C: <fee:name>example.xyz</fee:name> C: <fee:command>restore</fee:command> C: <fee:period unit=3D"y">1</fee:period> C: </fee:domain> C: </fee:check> C: </extension> C: <clTRID>ABC-12345</clTRID> C: </command> C: </epp> S: <?xml version=3D"1.0" encoding=3D"utf-8" standalo= ne=3D"no"?> S: <epp xmlns=3D"urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code=3D"1000"> S: <msg>Command completed successfully</msg> S: </result> S: <resData> S: <domain:chkData S: xmlns:domain=3D"urn:ietf:params:xml:ns:domain-1.0"> S: <domain:cd> S: <domain:name avail=3D"1"><a href=3D"http://exa= mple.com" target=3D"_blank">example.com</a></domain:name> S: </domain:cd> S: <domain:cd> S: <domain:name avail=3D"0"><a href=3D"http://exa= mple.net" target=3D"_blank">example.net</a></domain:name> S: <domain:reason>In use</domain:reason> S: </domain:cd> S: <domain:cd> S: <domain:name avail=3D"0"><a href=3D"http://exa= mple.org" target=3D"_blank">example.org</a></domain:name> S: <domain:reason>In use</domain:reason> S: </domain:cd> S: </domain:chkData> S: </resData> S: <extension> S: <fee:chkData S: xmlns:fee=3D"urn:ietf:params:xml:ns:fee-0.5"> S: <fee:cd S: xmlns:fee=3D"urn:ietf:params:xml:ns:fee-0.5"> S: <fee:name><a href=3D"http://example.com" target=3D"_blan= k">example.com</a></fee:name> S: <fee:currency>USD</fee:currency> S: <fee:command phase=3D"sunrise">create</fee:= command> S: <fee:period unit=3D"y">1</fee:period> S: <fee:fee description=3D"Application Fee">5.00&= lt;/fee:fee> S: <fee:fee description=3D"Registration Fee">5.00= </fee:fee> S: </fee:cd> S: <fee:cd S: xmlns:fee=3D"urn:ietf:params:xml:ns:fee-0.5"> S: <fee:name><a href=3D"http://example.net" target=3D"_blan= k">example.net</a></fee:name> S: <fee:currency>EUR</fee:currency> S: <fee:command phase=3D"claims" subphase=3D"la= ndrush"> S: create</fee:command> S: <fee:period unit=3D"y">2</fee:period> S: <fee:fee>5.00</fee:fee> S: </fee:cd> S: <fee:cd S: xmlns:fee=3D"urn:ietf:params:xml:ns:fee-0.5"> S: <fee:name><a href=3D"http://example.org" target=3D"_blan= k">example.org</a></fee:name> S: <fee:currency>EUR</fee:currency> S: <fee:command>transfer</fee:command> S: <fee:period unit=3D"y">2</fee:period> S: <fee:fee description=3D"Transfer Fee">2.50<= /fee:fee> S: <fee:fee description=3D"Renewal Fee">10.00<= /fee:fee> S: </fee:cd> S: <fee:cd S: xmlns:fee=3D"urn:ietf:params:xml:ns:fee-0.5"> S: <fee:name>example.xyz</fee:name> S: <fee:currency>GBP</fee:currency> S: <fee:command>restore</fee:command> S: <fee:period unit=3D"y">1</fee:period> S: <fee:fee description=3D"Restore Fee">25</fe= e:fee> S: <fee:fee description=3D"Renewal Fee">5.00</= fee:fee> S: </fee:cd> S: </fee:chkData> S: </extension> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54322-XYZ</svTRID> S: </trID> S: </response> S: </epp> </pre> <br> <fieldset></fieldset> <br> </div></div><div><pre>_______________________________________________ provreg mailing list <a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a> <a href=3D"https://www.ietf.org/mailman/listinfo/provreg" target=3D"_blank"= >https://www.ietf.org/mailman/listinfo/provreg</a> </pre> </div></blockquote> </div> <br>_______________________________________________<br> provreg mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a><= br> <a href=3D"https://www.ietf.org/mailman/listinfo/provreg" target=3D"_blank"= >https://www.ietf.org/mailman/listinfo/provreg</a><br> <br></blockquote></div><br></div></div> --089e013a04fa5ae93d04f8e58006-- --===============0046516205328989252== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ provreg mailing list [email protected] https://www.ietf.org/mailman/listinfo/provreg --===============0046516205328989252==--