idnits 2.17.1 draft-nzrs-srs-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document seems to contain a disclaimer for pre-RFC5378 work, and may have content which was first submitted before 10 November 2008. The disclaimer is necessary when there are original authors that you have been unable to contact, or if some do not wish to grant the BCP78 rights to the IETF Trust. If you are able to get all authors (current and original) to grant those rights, you can and should remove the disclaimer; otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (July 26, 2010) is 5022 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 2616 (Obsoleted by RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235) ** Obsolete normative reference: RFC 2818 (Obsoleted by RFC 9110) Summary: 2 errors (**), 0 flaws (~~), 1 warning (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group M. Hunt 3 Internet-Draft New Zealand Registry Services 4 Intended status: Standards Track July 26, 2010 5 Expires: January 27, 2011 7 System for Managing a Shared Domain Registry 8 draft-nzrs-srs-02 10 Abstract 12 This document describes the typical usage and communication protocol 13 of a client/server shared registry system for management of domain 14 name registrations. The system described is a "thick registry" 15 system, providing support for the storage and management of both the 16 technical and the registrant contact information concerning domain 17 registrations. The system relies on the existing HTTP and HTTPS 18 infrastructure for transport and secure transfer to avoid having to 19 implement a dedicated protocol and server environment. A bespoke XML 20 format is used to communicate between clients and the SRS server. 22 Comments are solicited and should be addressed to the author: 23 matt@nzrs.net.nz 25 Status of this Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on January 27, 2011. 42 Copyright Notice 44 Copyright (c) 2010 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. 54 This document may contain material from IETF Documents or IETF 55 Contributions published or made publicly available before November 56 10, 2008. The person(s) controlling the copyright in some of this 57 material may not have granted the IETF Trust the right to allow 58 modifications of such material outside the IETF Standards Process. 59 Without obtaining an adequate license from the person(s) controlling 60 the copyright in such materials, this document may not be modified 61 outside the IETF Standards Process, and derivative works of it may 62 not be created outside the IETF Standards Process, except to format 63 it for publication as an RFC or to translate it into languages other 64 than English. 66 Table of Contents 68 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 7 69 2. Conventions used in this Document . . . . . . . . . . . . . . 7 70 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 8 71 3. System Description . . . . . . . . . . . . . . . . . . . . . 8 72 3.1. The Public . . . . . . . . . . . . . . . . . . . . . . . 9 73 3.2. Registrars . . . . . . . . . . . . . . . . . . . . . . . 10 74 3.3. The Registry . . . . . . . . . . . . . . . . . . . . . . 10 75 3.4. The Domain Registration Cycle . . . . . . . . . . . . . . 11 76 3.4.1. Registration Grace Period . . . . . . . . . . . . . . 11 77 3.4.2. Renewal Grace Period . . . . . . . . . . . . . . . . 12 78 3.4.3. Auto-renew Grace Period . . . . . . . . . . . . . . . 12 79 3.4.4. Redemption Grace Period . . . . . . . . . . . . . . . 12 80 4. Authentication, Security and Authorization . . . . . . . . . 12 81 4.1. Authentication . . . . . . . . . . . . . . . . . . . . . 12 82 4.2. Security . . . . . . . . . . . . . . . . . . . . . . . . 13 83 4.3. Authorization . . . . . . . . . . . . . . . . . . . . . . 13 84 5. Communication . . . . . . . . . . . . . . . . . . . . . . . . 14 85 5.1. Request Format . . . . . . . . . . . . . . . . . . . . . 15 86 5.2. Response Format . . . . . . . . . . . . . . . . . . . . . 17 87 5.2.1. Response . . . . . . . . . . . . . . . . . . . . . . 18 88 5.2.2. Error . . . . . . . . . . . . . . . . . . . . . . . . 19 89 6. SRS Requests . . . . . . . . . . . . . . . . . . . . . . . . 19 90 6.1. Domain Query Actions . . . . . . . . . . . . . . . . . . 20 91 6.1.1. ActionDetailsQry . . . . . . . . . . . . . . . . . . 21 92 6.1.2. DomainDetailsQry . . . . . . . . . . . . . . . . . . 22 93 6.1.3. UDAIValidQry . . . . . . . . . . . . . . . . . . . . 26 94 6.1.4. Whois . . . . . . . . . . . . . . . . . . . . . . . . 27 95 6.2. Domain Write Actions . . . . . . . . . . . . . . . . . . 29 96 6.2.1. DomainCreate . . . . . . . . . . . . . . . . . . . . 29 97 6.2.2. DomainUpdate . . . . . . . . . . . . . . . . . . . . 31 98 6.3. Handle Query Action . . . . . . . . . . . . . . . . . . . 35 99 6.3.1. HandleDetailsQry . . . . . . . . . . . . . . . . . . 35 100 6.4. Handle Write Actions . . . . . . . . . . . . . . . . . . 37 101 6.4.1. HandleCreate . . . . . . . . . . . . . . . . . . . . 37 102 6.4.2. HandleUpdate . . . . . . . . . . . . . . . . . . . . 38 103 6.5. Message Query Action . . . . . . . . . . . . . . . . . . 39 104 6.5.1. GetMessages . . . . . . . . . . . . . . . . . . . . . 39 105 6.6. Message Write Action . . . . . . . . . . . . . . . . . . 41 106 6.6.1. RegistrarUpdate . . . . . . . . . . . . . . . . . . . 42 107 6.7. Registrar Query Actions . . . . . . . . . . . . . . . . . 42 108 6.7.1. RegistrarAccountQry . . . . . . . . . . . . . . . . . 43 109 6.7.2. RegistrarDetailsQry . . . . . . . . . . . . . . . . . 44 110 6.8. Registrar Write Actions . . . . . . . . . . . . . . . . . 45 111 6.8.1. RegistrarUpdate . . . . . . . . . . . . . . . . . . . 46 112 6.9. Registry Actions . . . . . . . . . . . . . . . . . . . . 47 113 6.9.1. AccessControlListAdd . . . . . . . . . . . . . . . . 49 114 6.9.2. AccessControlListQry . . . . . . . . . . . . . . . . 50 115 6.9.3. AccessControlListRemove . . . . . . . . . . . . . . . 51 116 6.9.4. AdjustRegistrarAccount . . . . . . . . . . . . . . . 52 117 6.9.5. BilledUntilAdjustment . . . . . . . . . . . . . . . . 54 118 6.9.6. BuildDnsZoneFiles . . . . . . . . . . . . . . . . . . 54 119 6.9.7. DeferredIncomeDetailQry . . . . . . . . . . . . . . . 55 120 6.9.8. DeferredIncomeSummaryQry . . . . . . . . . . . . . . 57 121 6.9.9. GenerateDomainReport . . . . . . . . . . . . . . . . 58 122 6.9.10. BillingAmountQry . . . . . . . . . . . . . . . . . . 59 123 6.9.11. RegistrarCreate . . . . . . . . . . . . . . . . . . . 59 124 6.9.12. RunLogCreate . . . . . . . . . . . . . . . . . . . . 61 125 6.9.13. RunLogQry . . . . . . . . . . . . . . . . . . . . . . 62 126 6.9.14. ScheduleCancel . . . . . . . . . . . . . . . . . . . 63 127 6.9.15. ScheduleCreate . . . . . . . . . . . . . . . . . . . 64 128 6.9.16. ScheduleQry . . . . . . . . . . . . . . . . . . . . . 65 129 6.9.17. ScheduleUpdate . . . . . . . . . . . . . . . . . . . 66 130 6.9.18. BillingAmountUpdate . . . . . . . . . . . . . . . . . 67 131 6.9.19. SysParamsCreate . . . . . . . . . . . . . . . . . . . 69 132 6.9.20. SysParamsQry . . . . . . . . . . . . . . . . . . . . 70 133 6.9.21. SysParamsUpdate . . . . . . . . . . . . . . . . . . . 71 134 7. SRS Response Types . . . . . . . . . . . . . . . . . . . . . 71 135 7.1. AccessControlList . . . . . . . . . . . . . . . . . . . . 71 136 7.2. AckResponse . . . . . . . . . . . . . . . . . . . . . . . 73 137 7.3. BillingAmount . . . . . . . . . . . . . . . . . . . . . . 73 138 7.4. BillingTrans . . . . . . . . . . . . . . . . . . . . . . 74 139 7.5. DeferredRegistrarIncome . . . . . . . . . . . . . . . . . 76 140 7.6. Domain . . . . . . . . . . . . . . . . . . . . . . . . . 77 141 7.7. DomainTransfer . . . . . . . . . . . . . . . . . . . . . 81 142 7.8. Error . . . . . . . . . . . . . . . . . . . . . . . . . . 83 143 7.9. Handle . . . . . . . . . . . . . . . . . . . . . . . . . 84 144 7.10. Message . . . . . . . . . . . . . . . . . . . . . . . . . 84 145 7.11. RawRequest and RawResponse . . . . . . . . . . . . . . . 85 146 7.12. Registrar . . . . . . . . . . . . . . . . . . . . . . . . 86 147 7.13. RunLog . . . . . . . . . . . . . . . . . . . . . . . . . 88 148 7.14. Schedule . . . . . . . . . . . . . . . . . . . . . . . . 89 149 7.15. SysParam . . . . . . . . . . . . . . . . . . . . . . . . 91 150 7.16. UDAIValid . . . . . . . . . . . . . . . . . . . . . . . . 91 151 8. Information Elements . . . . . . . . . . . . . . . . . . . . 92 152 8.1. AccessControlListContentFilter . . . . . . . . . . . . . 92 153 8.2. AccessControlListEntry . . . . . . . . . . . . . . . . . 93 154 8.3. ActionIdFilter . . . . . . . . . . . . . . . . . . . . . 94 155 8.4. AddressFilter . . . . . . . . . . . . . . . . . . . . . . 94 156 8.5. Allowed2LDs . . . . . . . . . . . . . . . . . . . . . . . 94 157 8.6. AuditDetails . . . . . . . . . . . . . . . . . . . . . . 95 158 8.7. AuditText . . . . . . . . . . . . . . . . . . . . . . . . 95 159 8.8. AuditTextFilter . . . . . . . . . . . . . . . . . . . . . 95 160 8.9. CancelAuditText . . . . . . . . . . . . . . . . . . . . . 96 161 8.10. ChangedDomains . . . . . . . . . . . . . . . . . . . . . 96 162 8.11. Contact Details Elements . . . . . . . . . . . . . . . . 96 163 8.12. Contact Details Search Filters . . . . . . . . . . . . . 99 164 8.13. CreateAuditText . . . . . . . . . . . . . . . . . . . . . 99 165 8.14. Date Range Elements . . . . . . . . . . . . . . . . . . . 100 166 8.15. Description . . . . . . . . . . . . . . . . . . . . . . . 102 167 8.16. DomainNameFilter . . . . . . . . . . . . . . . . . . . . 102 168 8.17. EncryptKey . . . . . . . . . . . . . . . . . . . . . . . 102 169 8.18. EncryptKeys . . . . . . . . . . . . . . . . . . . . . . . 103 170 8.19. EPPAuth . . . . . . . . . . . . . . . . . . . . . . . . . 103 171 8.20. ErrorDetails . . . . . . . . . . . . . . . . . . . . . . 103 172 8.21. FieldList . . . . . . . . . . . . . . . . . . . . . . . . 104 173 8.22. HandleIdFilter . . . . . . . . . . . . . . . . . . . . . 105 174 8.23. NameServers . . . . . . . . . . . . . . . . . . . . . . . 106 175 8.24. NameServerFilter . . . . . . . . . . . . . . . . . . . . 106 176 8.25. ParamValue . . . . . . . . . . . . . . . . . . . . . . . 106 177 8.26. PostalAddress . . . . . . . . . . . . . . . . . . . . . . 107 178 8.27. PostalAddressFilter . . . . . . . . . . . . . . . . . . . 107 179 8.28. TypeFilter . . . . . . . . . . . . . . . . . . . . . . . 108 180 8.29. Telephone Number Details . . . . . . . . . . . . . . . . 108 181 8.30. RegistrarIdFilter . . . . . . . . . . . . . . . . . . . . 108 182 8.31. Role . . . . . . . . . . . . . . . . . . . . . . . . . . 109 183 8.32. Roles . . . . . . . . . . . . . . . . . . . . . . . . . . 109 184 8.33. RunLogDetails . . . . . . . . . . . . . . . . . . . . . . 110 185 8.34. SecondLD . . . . . . . . . . . . . . . . . . . . . . . . 110 186 8.35. Server . . . . . . . . . . . . . . . . . . . . . . . . . 110 187 8.36. ServerFilter . . . . . . . . . . . . . . . . . . . . . . 111 188 8.37. Signature . . . . . . . . . . . . . . . . . . . . . . . . 112 189 8.38. Timestamp Elements . . . . . . . . . . . . . . . . . . . 112 190 8.39. TransferredDomain . . . . . . . . . . . . . . . . . . . . 116 191 8.40. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 192 9. Internal Entities . . . . . . . . . . . . . . . . . . . . . . 116 193 9.1. Actions . . . . . . . . . . . . . . . . . . . . . . . . . 116 194 9.1.1. DomainWriteAction . . . . . . . . . . . . . . . . . . 116 195 9.1.2. DomainQueryAction . . . . . . . . . . . . . . . . . . 117 196 9.1.3. HandleQueryAction . . . . . . . . . . . . . . . . . . 117 197 9.1.4. HandleWriteAction . . . . . . . . . . . . . . . . . . 117 198 9.1.5. RegistrarWriteAction . . . . . . . . . . . . . . . . 117 199 9.1.6. RegistrarQueryAction . . . . . . . . . . . . . . . . 118 200 9.1.7. RegistryAction . . . . . . . . . . . . . . . . . . . 118 201 9.1.8. Action . . . . . . . . . . . . . . . . . . . . . . . 118 202 9.1.9. ActionEtc . . . . . . . . . . . . . . . . . . . . . . 119 203 9.2. Accounts . . . . . . . . . . . . . . . . . . . . . . . . 119 204 9.2.1. AccountingAction . . . . . . . . . . . . . . . . . . 119 205 9.2.2. BillStatus . . . . . . . . . . . . . . . . . . . . . 119 206 9.3. Booleans . . . . . . . . . . . . . . . . . . . . . . . . 120 207 9.3.1. True . . . . . . . . . . . . . . . . . . . . . . . . 120 208 9.3.2. False . . . . . . . . . . . . . . . . . . . . . . . . 120 209 9.3.3. Boolean . . . . . . . . . . . . . . . . . . . . . . . 120 211 9.4. Contact Details . . . . . . . . . . . . . . . . . . . . . 120 212 9.4.1. Contact . . . . . . . . . . . . . . . . . . . . . . . 120 213 9.4.2. ContactAttr . . . . . . . . . . . . . . . . . . . . . 120 214 9.5. Contact Details Filters . . . . . . . . . . . . . . . . . 121 215 9.5.1. ContactFilter . . . . . . . . . . . . . . . . . . . . 121 216 9.5.2. ContactFilterAttr . . . . . . . . . . . . . . . . . . 121 217 9.6. Currency . . . . . . . . . . . . . . . . . . . . . . . . 121 218 9.6.1. Dollars . . . . . . . . . . . . . . . . . . . . . . . 121 219 9.7. Dates And Times . . . . . . . . . . . . . . . . . . . . . 122 220 9.7.1. Date . . . . . . . . . . . . . . . . . . . . . . . . 122 221 9.7.2. Time . . . . . . . . . . . . . . . . . . . . . . . . 122 222 9.7.3. TimeStamp . . . . . . . . . . . . . . . . . . . . . . 122 223 9.7.4. DateRange . . . . . . . . . . . . . . . . . . . . . . 122 224 9.8. Domain Names . . . . . . . . . . . . . . . . . . . . . . 123 225 9.8.1. DomainName . . . . . . . . . . . . . . . . . . . . . 123 226 9.9. Domain Status . . . . . . . . . . . . . . . . . . . . . . 123 227 9.9.1. RegDomainStatus . . . . . . . . . . . . . . . . . . . 123 228 9.9.2. DomainStatus . . . . . . . . . . . . . . . . . . . . 123 229 9.10. Duration . . . . . . . . . . . . . . . . . . . . . . . . 123 230 9.10.1. Term . . . . . . . . . . . . . . . . . . . . . . . . 123 231 9.11. Message Types . . . . . . . . . . . . . . . . . . . . . . 124 232 9.11.1. GetMessagesTypes . . . . . . . . . . . . . . . . . . 124 233 9.12. Numeric . . . . . . . . . . . . . . . . . . . . . . . . . 124 234 9.12.1. Number . . . . . . . . . . . . . . . . . . . . . . . 124 235 9.13. Registrar Identifiers . . . . . . . . . . . . . . . . . . 124 236 9.13.1. RegistrarId . . . . . . . . . . . . . . . . . . . . . 124 237 9.13.2. RegistrarIdOrOTHERS . . . . . . . . . . . . . . . . . 125 238 9.14. Responses . . . . . . . . . . . . . . . . . . . . . . . . 125 239 9.14.1. ActionResponse . . . . . . . . . . . . . . . . . . . 125 240 9.15. System Roles . . . . . . . . . . . . . . . . . . . . . . 125 241 9.15.1. Role . . . . . . . . . . . . . . . . . . . . . . . . 125 242 9.16. Scheduled Processes . . . . . . . . . . . . . . . . . . . 126 243 9.16.1. ScheduledJob . . . . . . . . . . . . . . . . . . . . 126 244 9.17. Telephone Numbers . . . . . . . . . . . . . . . . . . . . 126 245 9.17.1. PhoneAttr . . . . . . . . . . . . . . . . . . . . . . 126 246 9.18. Unique Identifiers . . . . . . . . . . . . . . . . . . . 127 247 9.18.1. UID . . . . . . . . . . . . . . . . . . . . . . . . . 127 248 10. Text Filter . . . . . . . . . . . . . . . . . . . . . . . . . 127 249 11. Security Considerations . . . . . . . . . . . . . . . . . . . 128 250 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 129 251 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 129 252 13.1. Normative References . . . . . . . . . . . . . . . . . . 129 253 13.2. Informative References . . . . . . . . . . . . . . . . . 130 254 Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 130 255 A.1. Whois request . . . . . . . . . . . . . . . . . . . . . . 131 256 Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 131 257 Appendix C. RELAX NG schema . . . . . . . . . . . . . . . . . . 131 258 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 162 260 1. Introduction 262 This document describes the Shared Registry System (SRS), a system 263 for managing a shared domain name registry. This system broadly 264 satisfies the requirements for a generic registry-registrar protocol 265 as defined in RFC 3375 [RFC3375]. As this system only addresses the 266 issue of managing a shared registry service and uses HTTP [RFC2616] 267 as its transport layer, implementations are expected to be relatively 268 easy. 270 This document also describes the communication protocol used by the 271 SRS system. This protocol uses messages in an XML format for system 272 requests and responses. The schema for the SRS protocol, in RELAX NG 273 compact syntax, is provided in its entirety as an appendix 274 (Appendix C) to this document, and individual parts of the protocol 275 are covered in depth throughout the document. 277 The SRS works in a connection-oriented fashion with no session state. 278 The registrar sends a request document to the registry containing 279 commands to be executed by the SRS and the result of processing these 280 commands is returned as the response. Each registrar request 281 document receives a response document containing the result of 282 processing all of the requests in a single request document. 284 Public Key Infrastructure (PKI) is used to manage issues of security, 285 authentication of requests and non-repudiation of actions. Exchange 286 of keys between the registry and registrars is outside the scope of 287 this document. 289 A system built using this protocol is used by .nz Registry Services 290 (NZRS) and a sample implementation [1] consisting of client and 291 server software is available from the Sourceforge web site. 293 2. Conventions used in this Document 295 The definitions of Registry, Registrar, and Registrant from RFC 3375 296 [RFC3375] are used in this document and are included below. 298 SRS: a software implementation of the shared registry system 299 described here. 301 Registry: An entity that provides back-end domain name registration 302 services to registrars, managing a central repository of 303 information associated with domain name delegations. A registry 304 is typically responsible for publication and distribution of zone 305 files used by the Domain Name System. 307 Registrar: An entity that provides front-end domain name 308 registration services to registrants, providing a public interface 309 to registry services. 311 Registrant: An entity that registers domain names in a registry 312 through the services provided by a registrar. Registrants include 313 individuals, organizations, and corporations. 315 UDAI: The Unique Domain Authentication Identifier (UDAI) is a domain 316 code that is generated by the SRS and stored by the registrar and 317 registrant to restrict updates to domain details. The value of 318 the UDAI is not stored within the SRS, but a message digest of the 319 value is kept to check the integrity of domain update and transfer 320 requests. The UDAI SHOULD be an ASCII [US-ASCII] encoded 321 character string. 323 2.1. Terminology 325 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 326 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 327 document are to be interpreted as described in RFC 2119 [RFC2119]. 329 3. System Description 331 The SRS provides the functions required to support all of the usual 332 business functions of a domain registration service, including: 334 o creation, maintenance, querying and deletion of domain details 336 o querying of public details of a domain - to support a public WHOIS 337 service 339 o transfer of domains between registrars 341 o creation, maintenance, querying and deletion of registrar details 343 o regular zone file creation for domains delegated to appear in the 344 domain name system (DNS) 346 o registrar account query, maintenance, and message polling 348 o creation and cancellation of scheduled jobs in the SRS to support 349 business functions (such as building zone files and releasing and 350 renewing domains) 352 o management and configuration of the SRS by the registry 353 o billing and accounting functions to work with the registry's 354 accounting system 356 Direct and indirect interactions with the SRS may be split into three 357 main groups: 359 o the public (including registrants), 361 o registrars, 363 o and the registry. 365 Their interactions with the SRS are summarized below. 367 +-----------+ 368 | Public/ | 369 |registrants| 370 | | Public 371 +-----------+ 372 ^ ^ ^ 373 WHOIS | | | DNS queries 374 +-------------+ | +-------------+ 375 | v | 376 | +-----------+ | 377 | |Registrar | | 378 | |service | | 379 | | | | Registrars 380 | +-----------+ | 381 | ^ | 382 | | HTTP/HTTPS | 383 | | (SRS protocol) | 384 v v v 385 +-----------+ +-----------+ +-----------+ 386 |Whois | |SRS | |DNS | 387 |server |<--->| |---->| | 388 | | | | | | Registry 389 +-----------+ +-----------+ +-----------+ 391 3.1. The Public 393 The public (and registrants - the domain registering public) have no 394 direct access to the SRS server. They interact with the system 395 through: 397 o querying domain ownership details in the public WHOIS system, 399 o performing hostname lookups to access services hosted on the 400 internet, 402 o registering domains by establishing a business relationship with a 403 registrar, 405 o transferring their registered domains between registrars, 407 o and maintaining their own domain details through systems provided 408 by a registrar. 410 3.2. Registrars 412 Registrars generate most of the work that the SRS server handles. 413 They are expected to maintain their own registrar details within the 414 SRS as an aspect of their business relationship with the registry. 415 They also offer services to the public, or a restricted section of 416 the public, to manage domain registrations. These public services 417 are likely to include: 419 o checking availability of domain names, 421 o registering domain names, 423 o transferring domain names from another registrar, 425 o cancelling domain registrations, 427 o billing for domain registrations, 429 o and providing a service to allow registrants to maintaining domain 430 details. 432 In addition to their customer services, registrars are expected to 433 regularly poll the SRS server using the GetMessages (Section 6.5.1) 434 request, to retrieve details of actions relevant to their business 435 with the registry that they have not initiated directly (for 436 instance, registrant-initiated transfers of domains from them to 437 another registrar, and actions performed by the registry on their 438 behalf). 440 3.3. The Registry 442 Generally the registry will be responsible for maintaining all of the 443 information associated with domain name registrations (including both 444 the technical information required to produce zone files and the 445 contact information for registrars and registrants), running the SRS 446 service to support registrars' and its own maintenance of domains, 447 running a public WHOIS service compliant with RFC 3912 [RFC3912], 448 regular backups, data security, and running name servers for their 449 domains. 451 By running a "thick registry" system, the registry provides security, 452 stability and backup of the registry information, and ensures that 453 registrants are protected against registrar failures. 455 The information for the public WHOIS service and the name server zone 456 files is derived from the data held in the SRS server. Most 457 registered domains will be delegated to other nameservers. 459 3.4. The Domain Registration Cycle 461 Registrants may register domains through registrars according to the 462 limitations of the available subdomains allowed by the registry, and 463 any policy decisions that the registry applies to domain naming. 465 Registries are encouraged to apply a system of grace periods to the 466 registration cycle of domains once they have initially been 467 registered. The .nz Registry Service applies the following grace 468 periods: 470 o registration grace period 472 o renewal grace period 474 o auto-renew grace period 476 o redemption grace period 478 Each grace period exists for a specific period of time that is 479 typically measured in days. The duration of each grace period is a 480 matter of registry operational policy that is not addressed in this 481 document. 483 3.4.1. Registration Grace Period 485 The registration grace period applies after the initial registration 486 of a domain name. If the domain name is cancelled by the registrar 487 during this period, all registrar account transactions (billing) for 488 the domain will also be cancelled. The domain name is released back 489 to the available pool of names. A registrant may not transfer the 490 management of a domain to another registrar during this period. 492 The registry MAY restrict domain cancellations in this term to 493 prevent a single registrar from cancelling a particular domain more 494 than once during the registration grace period. 496 3.4.2. Renewal Grace Period 498 The renewal grace period applies after a domain name registration 499 period is explicitly extended (renewed) by the registrar. If the 500 domain name is cancelled by the registrar during this period, the 501 registrar account transaction for the renewal will also be cancelled 502 and the BilledUntil date of the domain rolled back to the previous 503 value. 505 3.4.3. Auto-renew Grace Period 507 The auto-renew grace period applies after a domain name registration 508 period expires and is extended (renewed) automatically by the 509 registry. If the domain name is cancelled by the registrar during 510 this period, the registrar account transaction for the renewal will 511 also be cancelled and the BilledUntil date of the domain rolled back 512 to the previous value. 514 3.4.4. Redemption Grace Period 516 The redemption grace period applies after a domain registration is 517 cancelled by a registrant. It defines the length of time that a 518 domain will stay in the cancelled state ("PendingRelease" status). 519 After this time expires, the registry will release the domain name 520 back to the available pool of names. 522 4. Authentication, Security and Authorization 524 4.1. Authentication 526 A two factor authentication system is used to establish the identity 527 of the user that makes a request: 529 o A unique numeric identifier issued to each registrar by the 530 registry 532 o An OpenPGP-compatible signature of the request body 534 Registrars are issued with a unique numeric identifier when their 535 account is first created in the SRS. This registrar identifier MUST 536 be included on client requests to allow the SRS server to identify 537 the client. Failure to provide a correct identifier as part of the 538 request SHALL result in the SRS server returning an error response. 540 The registrar must also maintain at least one public, private 541 OpenPGP-compatible key pair for authentication. One or more public 542 keys are provided to the registry when the registrar account is first 543 created and the registrar MUST sign requests using one of its 544 registered private keys. This information is used for authentication 545 and to ensure non-repudiation of requests. The registrar may provide 546 multiple public keys to ease the process of expiring old or revoked 547 keys without interrupting the work of the registrar. 549 If a request does not have a signature, or the signature does not 550 confirm that the identity of the registrar that signed the request 551 matches the registrar identifier attached to the request, then the 552 SRS server SHALL return an error response. 554 Responses from the SRS server MUST also be signed. Responses are 555 signed by the registry using the registry's private key. The 556 registry public key MUST be made easily available to registrars to 557 allow authentication of response messages. This ensures that 558 registrars can be confident that the responses to their requests are 559 authentic, and have not been altered in transit. 561 4.2. Security 563 The request and response signature mechanism provides a means of 564 ensuring that messages have not been tampered with in transit. In 565 addition to this, all requests for private data (data that cannot be 566 retrieved using the public WHOIS system) MUST use an encrypted HTTP 567 connection (HTTPS) for data security. If a request for private data 568 is received via an unencrypted HTTP connection, the SRS server SHALL 569 return an error response. 571 Only the Whois (Section 6.1.4) request may be issued over an 572 unencrypted HTTP connection. 574 4.3. Authorization 576 SRS implementations SHOULD impose a permissions model to restrict the 577 SRS requests that users are allowed to access. Action and role types 578 are defined in the protocol definition for this purpose. If the 579 originating user does not possess all of the permissions required to 580 complete a request, the server SHOULD reject the transaction. 582 Transactions sent to the server MUST identify the registrar making 583 the request. Registrars SHALL NOT be permitted to perform functions 584 using an effective registrar other than their own. Any such requests 585 received by the registry SHALL be rejected. 587 The registry SHOULD only access the SRS server through the same 588 interface provided to registrars and SHOULD have one or more well- 589 known registrar identifiers allocated to itself for the purpose of 590 maintaining the registry. No changes should be made to public or 591 private data in the SRS using other means of access that the registry 592 may have available (for example, direct access to a database store). 594 The registry MAY perform SRS functions using an arbitrary effective 595 registrar value. 597 Registrants and the public have no direct access to the SRS. 599 5. Communication 601 All communication with the SRS is performed using XML [W3C.REC-xml] 602 documents encoded in UTF-8 [RFC3629] and sent using HTTP [RFC2616] or 603 HTTPS [RFC2818]. The request body MAY contain multiple independent 604 requests to be performed on the SRS. The response MAY include a 605 response to each request in the XML document, or a single error 606 response. The SRS SHOULD process the requests in the order that they 607 are received in the request body. 609 The user should ensure that: 611 o requests in an XML document are ordered logically to prevent 612 errors due to sequencing (for example, attempting to update a 613 domain record before creating it) 615 o the number of requests per XML document is limited to ensure 616 acceptable processing time and response size 618 Both request and response messages MUST be accompanied by a digital 619 signature of the complete XML request body (the value of the r 620 parameter to the HTTP messages detailed below). The digital 621 signature authentication method follows the specification in section 622 2.2 of OpenPGP Message Format [RFC4880] and MUST be encoded in ASCII 623 Armor (see section 6.2 of [RFC4880]) for inclusion in the HTTP 624 request. The SRS protocol is a signature-only application of 625 OpenPGP. 627 SRS implementations MAY define a limit on the response size to 628 support service level agreements on response time. SRS 629 implementations MAY reject requests in an XML document if they would 630 otherwise exceed a defined limit on the response size or response 631 time. 633 The VerMajor and VerMinor attributes are required in the first 634 element of each request and response to allow clients and servers to 635 modify their behaviour dependent on the version of the protocol that 636 they support. The meaning of the two fields is: 638 VerMajor: Major version number of the protocol. This number only 639 changes when major changes are made to the system that are not 640 backward compatible with previous versions; for example, client/ 641 server interface changes (changes to the protocol schema). 643 VerMinor: Minor version number of the protocol. This number changes 644 for minor updates to the protocol that are backward compatible 645 with previous versions with the same major version number. 647 An SRS server MUST reject any request made with a major version 648 number that is greater than the SRS server's own supported version. 649 SRS server implementations MAY support requests made with a major 650 version number that is less than the SRS server's own supported 651 version. 653 5.1. Request Format 655 Requests MUST include three parameters in the HTTP POST request: 657 +-----------+-------------------------------------------------------+ 658 | Parameter | Description | 659 +-----------+-------------------------------------------------------+ 660 | n | The registry-assigned registrar identifier. | 661 | r | The XML request, encoded in UTF-8. | 662 | s | An OpenPGP-compatible signature of the XML request | 663 | | document, signed with the registrar's private key. | 664 | | Presented in ASCII armored format and encoded in | 665 | | UTF-8. | 666 +-----------+-------------------------------------------------------+ 668 The XML request document MUST be formatted using the NZSRSRequest 669 element. The NZSRSRequest element MAY contain one or more requests. 670 Valid requests names are defined by the Action (Section 9.1.8) 671 entity. 673 Syntax: 675 element.NZSRSRequest = 676 element NZSRSRequest { 677 attribute VerMajor { Number }, 678 attribute VerMinor { Number }, 679 attribute RegistrarId { RegistrarId }?, 680 (element.DomainCreate 681 | element.DomainUpdate 682 | element.HandleCreate 683 | element.HandleUpdate 684 | element.HandleDetailsQry 685 | element.Whois 686 | element.DomainDetailsQry 687 | element.ActionDetailsQry 688 | element.UDAIValidQry 689 | element.RegistrarCreate 690 | element.RegistrarUpdate 691 | element.RegistrarDetailsQry 692 | element.RegistrarAccountQry 693 | element.GetMessages 694 | element.AckMessage 695 | element.SysParamsCreate 696 | element.SysParamsUpdate 697 | element.SysParamsQry 698 | element.RunLogCreate 699 | element.RunLogQry 700 | element.ScheduleCreate 701 | element.ScheduleCancel 702 | element.ScheduleQry 703 | element.ScheduleUpdate 704 | element.BillingAmountUpdate 705 | element.BillingAmountQry 706 | element.DeferredIncomeSummaryQry 707 | element.DeferredIncomeDetailQry 708 | element.BilledUntilAdjustment 709 | element.BuildDnsZoneFiles 710 | element.GenerateDomainReport 711 | element.AdjustRegistrarAccount 712 | element.AccessControlListQry 713 | element.AccessControlListAdd 714 | element.AccessControlListRemove)+ 715 } 717 Example of a request body prior to encoding: 719 n=50041&r= 720 721 722 &s=-----BEGIN PGP SIGNATURE-----... 724 5.2. Response Format 726 The body of the SRS server response MUST include two parameters: 728 +-----------+-------------------------------------------------------+ 729 | Parameter | Description | 730 +-----------+-------------------------------------------------------+ 731 | r | The XML response, encoded in UTF-8. | 732 | s | An OpenPGP-compatible signature of the XML response | 733 | | document, signed with the registry's private key. | 734 | | Presented in ASCII armored format and encoded in | 735 | | UTF-8. | 736 +-----------+-------------------------------------------------------+ 738 The XML response document MUST be formatted using the NZSRSResponse 739 element. The NZSRSResponse element MAY contain one or more Response 740 (Section 5.2.1) elements or an Error (Section 7.8) element. 742 Syntax: 744 element.NZSRSResponse = 745 element NZSRSResponse { 746 attribute VerMajor { Number }, 747 attribute VerMinor { Number }, 748 attribute RegistrarId { RegistrarId }?, 749 (element.Response+ | element.Error) 750 } 752 Example of a decoded response message: 754 r= 755 756 758 760 ... 761 762 &s=-----BEGIN PGP SIGNATURE-----... 764 5.2.1. Response 766 The response element acts as a container for all response types, 767 including errors to individual requests in an XML document. If an 768 error is encountered in parsing the request, or the client specified 769 a major protocol version higher than that supported by the server, 770 the SRS server MUST return the Error (Section 7.8) element with no 771 Response container. 773 The response element may contain any of the following: 775 o multiple responses in response to a GetMessages (Section 6.5.1) 776 request, or 778 o a single action response (Section 9.14.1) specific to the type of 779 action request. 781 The Response element must specify: 783 +-----------------+-------------------------------------------------+ 784 | Attribute | Description | 785 +-----------------+-------------------------------------------------+ 786 | Action | The name of the request action (Section 9.1.9) | 787 | | that this is a response to. | 788 | FeId | The unique identifier of the SRS server that | 789 | | handled the request. | 790 | FeSeq | The unique identifier for the request on the | 791 | | server that handled the request. | 792 | OrigRegistrarId | The unique identifier for the user that | 793 | | submitted the request to the SRS server. | 794 +-----------------+-------------------------------------------------+ 796 The Response element may also specify: 798 +----------------------+--------------------------------------------+ 799 | Attribute | Description | 800 +----------------------+--------------------------------------------+ 801 | TransId | The identifier (either an ActionId or a | 802 | | QryId) for the transaction submitted by | 803 | | the user that originated the request. | 804 | Rows | The number of results returned in the | 805 | | current response body. | 806 | Count | The total number of matches found in the | 807 | | SRS that satisfied the request query | 808 | | conditions. | 809 | MoreRowsAvailable | A boolean value indicating whether this | 810 | | response was truncated by an SRS limit on | 811 | | the number of results returned. | 812 | RecipientRegistrarId | The unique identifier for the user that | 813 | | the response is returned to. | 814 +----------------------+--------------------------------------------+ 816 The Response element MUST contain an FeTimeStamp (Section 8.38) 817 element, which shows the time and date that the request was processed 818 by the SRS server, and also MAY contain one of the SRS response types 819 (Section 7). 821 Syntax: 823 element.Response = 824 element Response { 825 attribute Action { ActionEtc }, 826 attribute FeId { Number }, 827 attribute FeSeq { Number }, 828 attribute OrigRegistrarId { RegistrarId }, 829 attribute TransId { UID }?, 830 attribute Rows { Number }?, 831 attribute Count { Number }?, 832 attribute MoreRowsAvailable { Boolean }?, 833 attribute RecipientRegistrarId { RegistrarId }?, 834 element.FeTimeStamp, 835 (element.Response* | ActionResponse | element.AckResponse)? 836 } 838 5.2.2. Error 840 An Error response may be returned for a whole request - for instance, 841 when the request body failed validation or incorrect authentication 842 was provided - or for one or more requests from the XML document 843 body. In either case, the Error element will be used. 845 This document does not specify the error codes and situations. All 846 SRS server errors SHOULD be treated as a failed request by the client 847 and the SRS server MUST NOT change any stored details if it returns 848 an error to the client request. 850 6. SRS Requests 852 The SRS defines request elements that support the running of the 853 shared domain registry from both a technical and a business 854 perspective. Implementations SHOULD ensure that access to requests 855 and data is restricted to comply with legal obligations and the 856 registry's own business requirements. 858 To support the implementation of a flexible permissions model for SRS 859 users, the requests are grouped into five major categories: 861 Domain query: requests that allow users to query domain related 862 information stored in the SRS 864 Domain write: requests that allow users to create and update domain 865 related information in the SRS 867 Registrar query: requests that allow users to query registrar 868 related information stored in the SRS 870 Registrar write: requests that allow users to create and update 871 registrar related information in the SRS 873 Registry: requests that support registry business functions, SRS 874 system settings, running jobs on the SRS, and billing functions 876 Typically, registrars will have access to the domain query, domain 877 write and registrar query requests, as well as the ability to 878 maintain their own registrar information within the SRS. 879 Administrative users will be able to create registrars and run 880 registry requests - normally this will be restricted to the registry 881 itself. 883 All requests that result in an update to data held by the SRS server 884 MUST provide an ActionId to identify the request. The combination of 885 RegistrarId and ActionId for a request MUST be unique. This allows 886 requests to be fully identified by the user that made the request and 887 the ActionId that the user assigned to it. SRS server 888 implementations SHOULD maintain a full audit trail by logging all 889 update requests and their outcomes. 891 If the SRS server receives a request with the same RegistrarId and 892 ActionId as a previous request, but different request details, it 893 MUST return an Error (Section 7.8) response. If the SRS server 894 receives a request with the same RegistrarId and ActionId as a 895 previous request, and identical request details, it MUST respond by 896 returning the response that was sent to the original request. 898 6.1. Domain Query Actions 900 The domain query requests are: 902 +------------------+------------------------------------------------+ 903 | Action | Description | 904 +------------------+------------------------------------------------+ 905 | ActionDetailsQry | Retrieve the XML content and signature for a | 906 | | previous SRS request and the response that it | 907 | | received. | 908 | DomainDetailsQry | Retrieve the current stored details for a | 909 | | domain. | 910 | UDAIValidQry | Check the validity of a UDAI code for a | 911 | | domain. | 912 | Whois | Retrieve the public WHOIS data for a domain. | 913 +------------------+------------------------------------------------+ 915 6.1.1. ActionDetailsQry 917 The ActionDetailsQry request allows the user to retrieve the original 918 XML document and signature for a previous request to the SRS, and 919 also the XML document and signature for the response that was 920 returned. The user must supply the correct ActionId of the original 921 request. Registrars SHOULD be restricted to only retrieving the 922 details of requests that they were the originating registrar for. 924 6.1.1.1. Request 926 The ActionDetailsQry request is an empty element that must specify: 928 +-----------+-------------------------------------------------------+ 929 | Attribute | Description | 930 +-----------+-------------------------------------------------------+ 931 | ActionId | An action identifier. This is the action identifier | 932 | | for a previous request to the SRS. | 933 +-----------+-------------------------------------------------------+ 935 Additionally, the request may specify: 937 +------------------------+------------------------------------------+ 938 | Attribute | Description | 939 +------------------------+------------------------------------------+ 940 | QryId | A query identifier. This has no meaning | 941 | | within the SRS; if provided, it will be | 942 | | returned in the response to this | 943 | | request. | 944 | OriginatingRegistrarId | A user identifier. The identifier of the | 945 | | registrar that originally requested the | 946 | | action that matches the provided | 947 | | ActionId. | 948 +------------------------+------------------------------------------+ 949 Syntax: 951 element.ActionDetailsQry = 952 element ActionDetailsQry { 953 attribute QryId { UID }?, 954 attribute ActionId { UID }, 955 attribute OriginatingRegistrarId { UID }?, 956 empty 957 } 959 6.1.1.2. Response 961 The response to an ActionDetailsQry request will be either an Error 962 (Section 7.8) element or a RawRequest and a RawResponse 963 (Section 7.11) element containing the XML and the registrar signature 964 of the original request and response. If a QryId was provided in the 965 request, it is returned in the TransId attribute of the Response 966 element. 968 6.1.2. DomainDetailsQry 970 The DomainDetailsQry request allows the user to retrieve the stored 971 details (including details that will not be shown for a public WHOIS 972 query) for one or more domains. The request can be used to view 973 historical details for a domain and may return a full update history 974 for a domain. 976 Registrars are expected to only request information on domains that 977 they currently manage. SRS implementations SHOULD restrict access to 978 non-public domain information to the managing registrar. If 979 historical data is requested for a period when the registrar did not 980 manage a particular domain - for example, in the case of domain 981 transfers - then only the public details as returned by the Whois 982 (Section 6.1.4) request shall be returned for this time. 984 6.1.2.1. Request 986 The DomainDetailsQry request may specify: 988 +---------------+---------------------------------------------------+ 989 | Attribute | Description | 990 +---------------+---------------------------------------------------+ 991 | QryId | A query identifier. This has no meaning within | 992 | | the SRS; if provided, it will be returned in the | 993 | | response to this request. | 994 | Status | A text filter. Matched against the registration | 995 | | status of domains. Valid values are "Active" and | 996 | | "PendingRelease". | 997 | Delegate | A boolean value. Matched against the delegation | 998 | | status of domains. | 999 | Term | A numeric value. Matched against the billing term | 1000 | | for domains. | 1001 | RegistrantRef | A text filter. Matched against the | 1002 | | registrar-provided customer reference of a | 1003 | | domain's registrant. | 1004 | MaxResults | A numeric value. Used to specify the maximum | 1005 | | number of domain records to return. If not | 1006 | | specified, the default defined by the server | 1007 | | implementation will be used. | 1008 | SkipResults | A numeric value that defaults to 0. Used to | 1009 | | specify the number of records at the start of a | 1010 | | results set to be skipped before returning domain | 1011 | | results. Can be used with MaxResults to retrieve | 1012 | | a large result set in pages. | 1013 | CountResults | A boolean value that defaults to false. If true, | 1014 | | the response should only return the number of | 1015 | | matches for the query and no specific domain | 1016 | | details. If MaxResults or SkipResults is defined | 1017 | | and CountResults is true then the server SHALL | 1018 | | return an error response. | 1019 +---------------+---------------------------------------------------+ 1021 For the optional Status, Delegate, Term, and RegistrantRef filters, 1022 if the attribute is not specified, then the results will not be 1023 filtered on these fields. 1025 The request may also include elements to specify other filters to 1026 limit the results returned by the SRS server and to change the list 1027 of fields that are returned in the results. All of the filters are 1028 optional and, with the exception of the DomainNameFilter, may only 1029 occur once in the request. The DomainNameFilter may occur multiple 1030 times in the request and details of domains that match any of the 1031 provided filters will be returned in the results. 1033 The elements that can be included in the DomainDetailsQry request 1034 are: 1036 o DomainNameFilter (Section 8.16) 1038 o NameServerFilter (Section 8.24) 1040 o RegistrantContactFilter (Section 8.12) 1042 o AdminContactFilter (Section 8.12) 1044 o TechnicalContactFilter (Section 8.12) 1046 o ResultDateRange (Section 8.14) 1048 o SearchDateRange (Section 8.14) 1050 o ChangedInDateRange (Section 8.14) 1052 o RegisteredDateRange (Section 8.14) 1054 o LockedDateRange (Section 8.14) 1056 o CancelledDateRange (Section 8.14) 1058 o BilledUntilDateRange (Section 8.14) 1060 o AuditTextFilter (Section 8.8) 1062 o ActionIdFilter (Section 8.3) 1064 o FieldList (Section 8.21) 1066 The FieldList element specifies the fields to be returned for each 1067 domain in the result set. If no FieldList is specified, the SRS 1068 server will only return the DomainName and Status for each domain. 1070 Syntax: 1072 element.DomainDetailsQry = 1073 element DomainDetailsQry { 1074 attribute QryId { UID }?, 1075 attribute Status { RegDomainStatus }?, 1076 attribute Delegate { Boolean }?, 1077 attribute Term { Term }?, 1078 attribute RegistrantRef { UID }?, 1079 attribute MaxResults { Number }?, 1080 attribute SkipResults { Number }?, 1081 [ a:defaultValue = "0" ] attribute CountResults { Boolean }?, 1082 element.DomainNameFilter*, 1083 element.NameServerFilter?, 1084 element.RegistrantContactFilter?, 1085 element.AdminContactFilter?, 1086 element.TechnicalContactFilter?, 1087 element.ResultDateRange?, 1088 element.SearchDateRange?, 1089 element.ChangedInDateRange?, 1090 element.RegisteredDateRange?, 1091 element.LockedDateRange?, 1092 element.CancelledDateRange?, 1093 element.BilledUntilDateRange?, 1094 element.AuditTextFilter?, 1095 element.ActionIdFilter?, 1096 element.FieldList? 1097 } 1099 6.1.2.2. Response 1101 The response to a DomainDetailsQry request will be either an Error 1102 (Section 7.8) element, or zero or more Domain (Section 7.6) elements 1103 that matched the filters specified in the request. If a QryId was 1104 provided in the request, it is returned in the TransId attribute of 1105 the Response element. 1107 If a FieldList was specified in the request, the fields provided in 1108 any returned Domain elements will match the list provided unless 1109 restricted due to ownership by a registrar other than the registrar 1110 making the request - in such cases only the public Whois information 1111 shall be returned. DomainName will always be returned for all 1112 matched domains. 1114 By default, only the DomainName and Status details shall be returned 1115 for each Domain. 1117 The ResultDateRange element in a DomainDetailsQry request has a 1118 number of affects on the response: 1120 o the results shall be extracted by first selecting all of the 1121 domains that were managed by the requesting registrar during the 1122 given date range and then applying the other filters to this new 1123 result set to produce the final response 1125 o the EffectiveDateRange will also be returned for each result 1126 domain, regardless of whether it was specified by a FieldList 1127 attribute 1129 o the MaxResults and SkipResults elements in the request (if 1130 specified) are treated as a maximum number of distinct domains and 1131 a number of distinct domains to skip - the actual number of 1132 results returned may exceed MaxResults due to having multiple 1133 entries for each domain returned with different effective date 1134 ranges 1136 6.1.3. UDAIValidQry 1138 The UDAIValidQry request allows users to check a UDAI strings against 1139 the details stored by the SRS for a domain. Changes to domains may 1140 only be made with a valid UDAI. 1142 6.1.3.1. Request 1144 The UDAIValidQry request is an empty element that must specify: 1146 +------------+--------------------------------------------------+ 1147 | Attribute | Description | 1148 +------------+--------------------------------------------------+ 1149 | DomainName | A text string. The name of the domain to check. | 1150 | UDAI | A text string. The UDAI to be checked. | 1151 +------------+--------------------------------------------------+ 1153 Additionally, the request may specify: 1155 +-----------+-------------------------------------------------------+ 1156 | Attribute | Description | 1157 +-----------+-------------------------------------------------------+ 1158 | QryId | A query identifier. This has no meaning within the | 1159 | | SRS; if provided, it will be returned in the response | 1160 | | to this request. | 1161 +-----------+-------------------------------------------------------+ 1162 Syntax: 1164 element.UDAIValidQry = 1165 element UDAIValidQry { 1166 attribute QryId { UID }?, 1167 attribute DomainName { DomainName }, 1168 attribute UDAI { UID }, 1169 empty 1170 } 1172 6.1.3.2. Response 1174 The response to a UDAIValidQry request will be a UDAIValid 1175 (Section 7.16) element. If a QryId was provided in the request, it 1176 is returned in the TransId attribute of the Response element. 1178 6.1.4. Whois 1180 The Whois request allows users to retrieve the public information 1181 stored on domains. The details requested may be the full public 1182 details, or a simple check of the status of the domain. 1184 6.1.4.1. Request 1186 The Whois request is an empty element that must specify: 1188 +------------+------------------------------------------------------+ 1189 | Attribute | Description | 1190 +------------+------------------------------------------------------+ 1191 | DomainName | A text string. The domain name for which the details | 1192 | | are requested. | 1193 +------------+------------------------------------------------------+ 1195 Additionally, the request may specify: 1197 +------------+------------------------------------------------------+ 1198 | Attribute | Description | 1199 +------------+------------------------------------------------------+ 1200 | QryId | A query identifier. This has no meaning within the | 1201 | | SRS; if provided, it will be returned in the | 1202 | | response to this request. | 1203 | FullResult | A boolean value. Indicates whether the full domain | 1204 | | details should be returned. If false, only the | 1205 | | status of the domain shall be returned. Defaults to | 1206 | | true. | 1207 | SourceIP | An IP address. The source IP address of the request. | 1208 | | This may be used to monitor and limit Whois | 1209 | | requests. | 1210 +------------+------------------------------------------------------+ 1212 Syntax: 1214 element.Whois = 1215 element Whois { 1216 attribute QryId { UID }?, 1217 [ a:defaultValue = "1" ] attribute FullResult { Boolean }?, 1218 attribute SourceIP { text }?, 1219 attribute DomainName { DomainName }, 1220 empty 1221 } 1223 6.1.4.2. Response 1225 The response to a Whois request will be either an Error (Section 7.8) 1226 element, or a Domain (Section 7.6) element. If a QryId was provided 1227 in the request, it is returned in the TransId attribute of the 1228 Response element. 1230 The amount of detail returned for matched domains will depend on the 1231 request details and the domain status: 1233 o if the domain is not currently registered, only the domain's name 1234 and status ("Available") will be returned, 1236 o if the request is not for a full result, only the domain status 1237 will be returned, 1239 o otherwise, the Domain element will be returned with any of the 1240 public details for which the SRS server has a value stored 1242 The public details for a domain should be set by the registry's 1243 policy. For the .nz registry, the public details are: 1245 o DomainName 1247 o Status 1249 o RegisteredDate 1251 o CancelledDate 1253 o LockedDate 1254 o BilledUntil 1256 o EffectiveFrom 1258 o Delegate 1260 o RegistrarPublicContact 1262 o RegistrantContact 1264 o AdminContact 1266 o TechnicalContact 1268 o NameServers 1270 o AuditDetails 1272 6.2. Domain Write Actions 1274 The domain write requests are: 1276 +--------------+----------------------------------------------------+ 1277 | Request | Description | 1278 +--------------+----------------------------------------------------+ 1279 | DomainCreate | Register a new domain in the SRS. | 1280 | DomainUpdate | Update the stored details of an existing domain in | 1281 | | the SRS. | 1282 +--------------+----------------------------------------------------+ 1284 6.2.1. DomainCreate 1286 The DomainCreate request allows users to request the creation of a 1287 new domain in the SRS. The domain created will be managed by the 1288 registrar that makes the request - or by the effective registrar for 1289 the request, if the request is made by the registry. This request 1290 will only be successful if the domain name is available. 1292 SRS implementations SHOULD support internationalized domain names 1293 (IDNs). Domain names containing non-ASCII characters MUST use the 1294 Punycode encoding RFC3492 [RFC3492] for the DomainName attribute, and 1295 provide the domain name in the original scripts in the 1296 DomainNameUnicode attribute. The DomainNameLanguage attribute may be 1297 used to provide a description of the original script and language for 1298 the domain name. 1300 6.2.1.1. Request 1302 The DomainCreate request must specify: 1304 +------------+------------------------------------------------------+ 1305 | Attribute | Description | 1306 +------------+------------------------------------------------------+ 1307 | ActionId | An action identifier. This is a unique identifier | 1308 | | for the request to the SRS server. | 1309 | DomainName | A text string. The domain name to be created. Must | 1310 | | conform to the format and syntax in RFC 1035 | 1311 | | [RFC1035], RFC 1123 [RFC1123], and RFC 2181 | 1312 | | [RFC2181]. For domain names containing non-ASCII | 1313 | | characters this MUST be formatted according to RFC | 1314 | | 3492 [RFC3492]. | 1315 | Term | A numeric value. The number of months to bill when | 1316 | | the domain is registered or renewed. | 1317 +------------+------------------------------------------------------+ 1319 Additionally, the request may specify: 1321 +--------------------+----------------------------------------------+ 1322 | Attribute | Description | 1323 +--------------------+----------------------------------------------+ 1324 | DomainNameUnicode | A UTF-8 text string. The domain name in the | 1325 | | script intended by the registrant. Used for | 1326 | | internationalized domain names (IDNs). | 1327 | DomainNameLanguage | A text string. For domain names using | 1328 | | non-ASCII characters, this should provide | 1329 | | the language and script for the unicode | 1330 | | domain name. For example, ".NZ LATIN" | 1331 | RegistrantRef | A customer identifier. Assigned to the | 1332 | | registrant by the registrar. | 1333 | Delegate | A boolean value that defaults to true. | 1334 | | Indicates whether the domain should be | 1335 | | delegated to appear in the DNS. Requires | 1336 | | details of name servers to be provided with | 1337 | | the domain creation request. | 1338 +--------------------+----------------------------------------------+ 1340 The request must also include a RegistrantContact (Section 8.11) 1341 details element for the domain, and may include elements defining the 1342 AdminContact (Section 8.11), TechnicalContact (Section 8.11), and 1343 NameServers (Section 8.23) for the domain, and also AuditText 1344 (Section 8.7) for the transaction. 1346 Syntax: 1348 element.DomainCreate = 1349 element DomainCreate { 1350 attribute ActionId { UID }, 1351 attribute DomainName { DomainName }, 1352 attribute DomainNameUnicode { DomainNameUnicode }?, 1353 attribute DomainNameLanguage { DomainNameLanguage }?, 1354 attribute RegistrantRef { UID }?, 1355 attribute Term { Term }, 1356 [ a:defaultValue = "1" ] attribute Delegate { Boolean }?, 1357 element.RegistrantContact, 1358 element.AdminContact?, 1359 element.TechnicalContact?, 1360 element.NameServers?, 1361 element.AuditText? 1362 } 1364 6.2.1.2. Response 1366 The response to a DomainCreate request will be either an Error 1367 (Section 7.8) element, or a full Domain (Section 7.6) element. The 1368 Domain element will only be returned if the domain creation is 1369 successful. 1371 6.2.2. DomainUpdate 1373 The DomainUpdate request allows users to update the details of 1374 existing domains and to perform various update functions, including: 1376 o transferring a domain 1378 o cancelling a domain 1380 o un-cancelling a domain 1382 o renewing a domain 1384 o changing the delegation status of a domain 1386 o requesting a new domain UDAI 1388 Domain details may be updated individually or combined in a single 1389 request that updates multiple parts of the domain information. 1391 In the absence of a valid UDAI, domain updates are restricted to the 1392 registrar that currently manages a domain, or to suitably authorized 1393 registry users. If a registrant provides the UDAI for their domain 1394 to a registrar other than the one that currently manages the domain, 1395 the other registrar will be able to perform an update to the domain. 1396 If the UDAI is valid, then the new registrar may make any required 1397 updates to the domain details and the SRS server will automatically 1398 initiate a domain transfer as part of processing the request. 1400 A domain can be transferred regardless of the status of the domain 1401 (that is, the status of the domain can be "Active" or 1402 "PendingRelease" at the time of the transfer), however, the domain 1403 MUST NOT be locked. A locked domain cannot be transferred until it 1404 is unlocked. Registrants SHOULD have access to the UDAI for their 1405 domains to allow them to transfer their domains freely between 1406 registrars. 1408 6.2.2.1. Request 1410 The DomainUpdate request must specify: 1412 +-----------+-------------------------------------------------------+ 1413 | Attribute | Description | 1414 +-----------+-------------------------------------------------------+ 1415 | ActionId | An action identifier. This is a unique identifier for | 1416 | | the request to the SRS server. | 1417 +-----------+-------------------------------------------------------+ 1419 Additionally, the request may specify: 1421 +---------------+---------------------------------------------------+ 1422 | Attribute | Description | 1423 +---------------+---------------------------------------------------+ 1424 | UDAI | A text string. The UDAI for the domain. | 1425 | NewUDAI | A boolean value. Allows the user to request | 1426 | | generation of a new UDAI for the domain. The | 1427 | | server MAY provide a new UDAI value regardless of | 1428 | | the value of this parameter. | 1429 | RegistrantRef | A customer identifier. Assigned to the registrant | 1430 | | by the registrar. | 1431 | Term | A numeric value. The number of months to bill | 1432 | | when the domain is registered or renewed. | 1433 | Delegate | A boolean value. Indicates whether the domain | 1434 | | should be delegated to appear in the DNS. | 1435 | | Requires details of name servers to be available | 1436 | | to the SRS server. | 1437 | Renew | A boolean value. Indicates that the domain should | 1438 | | be billed for a further billing period | 1439 | | immediately, rather than waiting for it to | 1440 | | expire. | 1441 | NoAutoRenew | A boolean value. Indicates that the domain should | 1442 | | not automatically renew at the expiry date. Only | 1443 | | the registry can change the automatic renewal | 1444 | | status for a domain. | 1445 | Lock | A boolean value. Specifies the lock status of the | 1446 | | domain. Locked domains cannot be updated until | 1447 | | they are unlocked by the registry. If the | 1448 | | attribute is not specified, the current lock | 1449 | | setting will remain unchanged. SRS | 1450 | | implementations MAY allow registrars to change | 1451 | | the lock status of domains. | 1452 | Cancel | A boolean value. Specifies a request to change | 1453 | | the status of a domain. If true, a domain in | 1454 | | "Active" status will change to "PendingRelease"; | 1455 | | domains in any other status will remain | 1456 | | unchanged. If false, a domain in "PendingRelease" | 1457 | | status will change to "Active"; domains in any | 1458 | | other status will remain unchanged. If the | 1459 | | attribute is not specified, the current status | 1460 | | will remain unchanged. | 1461 | Release | A boolean value. Specifies that the domain should | 1462 | | become "Available" after the cancellation grace | 1463 | | period expires. | 1464 | FullResult | A boolean value. Specifies that a full domain | 1465 | | result is required (if true), or only the changed | 1466 | | fields (if false). Defaults to true. | 1467 +---------------+---------------------------------------------------+ 1469 For the boolean attributes, if the attribute is not specified in the 1470 update request, then no change will be made to the related domain 1471 details. 1473 The DomainUpdate request must also include a DomainNameFilter 1474 (Section 8.16) element to identify the domain(s) to be updated and 1475 may include elements defining the new details for RegistrantContact 1476 (Section 8.11), AdminContact (Section 8.11), TechnicalContact 1477 (Section 8.11), and NameServers (Section 8.23) for the domain, and 1478 also AuditText (Section 8.7) for the transaction. 1480 Syntax: 1482 element.DomainUpdate = 1483 element DomainUpdate { 1484 attribute ActionId { UID }, 1485 attribute UDAI { UID }?, 1486 attribute NewUDAI { Boolean }?, 1487 attribute RegistrantRef { UID }?, 1488 attribute Term { Term }?, 1489 attribute Delegate { Boolean }?, 1490 attribute Renew { Boolean }?, 1491 attribute NoAutoRenew { Boolean }?, 1492 attribute Lock { Boolean }?, 1493 attribute Cancel { Boolean }?, 1494 attribute Release { Boolean }?, 1495 [ a:defaultValue = "1" ] attribute FullResult { Boolean }?, 1496 element.DomainNameFilter+, 1497 element.RegistrantContact?, 1498 element.AdminContact?, 1499 element.TechnicalContact?, 1500 element.NameServers?, 1501 element.AuditText? 1502 } 1504 6.2.2.2. Response 1506 The response to a DomainUpdate request will be either an Error 1507 (Section 7.8) element, or a Domain (Section 7.6) element. By default 1508 the Domain element returned will include the following fields: 1510 o DomainName 1512 o AuditDetails 1514 o Status 1516 o Delegate 1518 o Term 1520 o NameServers 1522 o RegistrantRef 1524 o RegistrarId 1526 o RegistrantContact 1527 o AdminContact 1529 o TechnicalContact 1531 o BilledUntil 1533 o RegisteredDate 1535 o CancelledDate 1537 o LockedDate 1539 If the FullResult parameter in the request is false, the DomainName 1540 and AuditDetails fields will be returned along with any of the other 1541 fields above that have been updated by the transaction. 1543 6.3. Handle Query Action 1545 The system provides a single request for accessing details of 1546 handles: 1548 +------------------+-----------------------------------------+ 1549 | Action | Description | 1550 +------------------+-----------------------------------------+ 1551 | HandleDetailsQry | Retrieve the details of object handles. | 1552 +------------------+-----------------------------------------+ 1554 6.3.1. HandleDetailsQry 1556 The HandleDetailsQry request allows the user to retrieve the details 1557 of handles that match their search parameters. Handles are used to 1558 provide a simple shorthand for referring to registrant details in the 1559 registry. 1561 Registrars SHALL be limited to accessing details of handles 1562 associated directly with their RegistrarID. The registry user may 1563 search details of all handles. 1565 6.3.1.1. Request 1567 The HandleDetailsQry request may specify: 1569 +--------------+----------------------------------------------------+ 1570 | Attribute | Description | 1571 +--------------+----------------------------------------------------+ 1572 | MaxResults | A numeric value. Used to specify the maximum | 1573 | | number of handle records to return. If not | 1574 | | specified, the default defined by the server | 1575 | | implementation will be used. | 1576 | SkipResults | A numeric value that defaults to 0. Used to | 1577 | | specify the number of records at the start of a | 1578 | | results set to be skipped before returning handle | 1579 | | results. Can be used with MaxResults to retrieve a | 1580 | | large result set in pages. | 1581 | CountResults | A boolean value that defaults to false. If true, | 1582 | | the response should only return the number of | 1583 | | matches for the query and no specific handle | 1584 | | details. If MaxResults or SkipResults is defined | 1585 | | and CountResults is true then the server SHALL | 1586 | | return an error response. | 1587 +--------------+----------------------------------------------------+ 1589 The elements that can be included in the HandleDetailsQry request 1590 are: 1592 o HandleIdFilter (Section 8.22) 1594 o SearchDateRange (Section 8.14) 1596 o ChangedInDateRange (Section 8.14) 1598 o ContactFilter (Section 8.12) 1600 Syntax: 1602 element.HandleDetailsQry = 1603 element HandleDetailsQry { 1604 attribute MaxResults { Number }?, 1605 attribute SkipResults { Number }?, 1606 [ a:defaultValue = "0" ] attribute CountResults { Boolean }?, 1607 element.HandleIdFilter*, 1608 element.SearchDateRange?, 1609 element.ChangedInDateRange?, 1610 element.ContactFilter? 1611 } 1613 6.3.1.2. Response 1615 The response to a HandleDetailsQry request will be either an Error 1616 (Section 7.8) element or zero or more Handle (Section 7.9) elements - 1617 dependent on the number of handles matched the query specification. 1619 If CountResults was specified in the request and the request was 1620 valid, then the number of rows that matched the query specification 1621 shall be returned, but no Handle elements will be included. 1623 6.4. Handle Write Actions 1625 The handle write requests are: 1627 +--------------+----------------------------------------------------+ 1628 | Request | Description | 1629 +--------------+----------------------------------------------------+ 1630 | HandleCreate | Request creation of a new handle belonging to the | 1631 | | current registrar (or effective registrar) with | 1632 | | the provided details. | 1633 | HandleUpdate | Request update of handle details for a handle | 1634 | | belonging to the current registrar (or effective | 1635 | | registar). | 1636 +--------------+----------------------------------------------------+ 1638 6.4.1. HandleCreate 1640 The HandleCreate request allows users to request the creation of a 1641 new handle in the SRS. The handle created will belong to the 1642 registrar that makes the request - or to the effective registrar for 1643 the request, if the request is made by the registry. This request 1644 will only be successful if a handle with the same identifier 1645 belonging to the current effective registrar does not already exist. 1647 6.4.1.1. Request 1649 The HandleCreate request must specify: 1651 +--------------------------------+----------------------------------+ 1652 | Attribute | Description | 1653 +--------------------------------+----------------------------------+ 1654 | ActionId | An action identifier. This is a | 1655 | | unique identifier for the | 1656 | | request to the SRS server. | 1657 | A handle identifier. This is a | | 1658 | unique identifier for the | | 1659 | handle to be created. | | 1660 +--------------------------------+----------------------------------+ 1662 The request may also include ContactAttr (Section 9.4.2) entity and a 1663 Contact (Section 9.4.1) entity to provide contact details for the 1664 handle, and AuditText (Section 8.7) for the transaction. 1666 Syntax: 1668 element.HandleCreate = 1669 element HandleCreate { 1670 attribute ActionId { UID }, 1671 attribute HandleId { UID }, 1672 ContactAttr, 1673 Contact, 1674 element.AuditText? 1675 } 1677 6.4.1.2. Response 1679 The response to a HandleCreate request will be either an Error 1680 (Section 7.8) element, or a full Handle (Section 7.9) element. The 1681 Handle element will only be returned if the handle creation is 1682 successful. 1684 6.4.2. HandleUpdate 1686 The HandleUpdate request allows the user to update detais for a 1687 contact handle that they previously created. The registry may 1688 maintain information for handles belonging to any registrar. 1690 6.4.2.1. Request 1692 The request must specify: 1694 +-----------+-------------------------------------------------------+ 1695 | Attribute | Description | 1696 +-----------+-------------------------------------------------------+ 1697 | ActionId | An action identifier. This is a unique identifier for | 1698 | | the request to the SRS server. | 1699 | HandleId | A handle identifier. This is a unique identifier for | 1700 | | the handle to be created. | 1701 +-----------+-------------------------------------------------------+ 1703 Additionally, the request may specify: 1705 +-----------+-------------------------------------------------------+ 1706 | Attribute | Description | 1707 +-----------+-------------------------------------------------------+ 1708 | Delete | A boolean value that defaults to false. If true, the | 1709 | | update should cause the matching handle belonging to | 1710 | | the effective registrar to be deleted. | 1711 +-----------+-------------------------------------------------------+ 1713 The HandleUpdate request may also include new contact details for the 1714 handle and audit details for the update: 1716 o ContactAttr (Section 9.4.2) 1718 o Contact (Section 9.4.1) 1720 o AuditText (Section 8.7) 1722 If an attribute or element is not provided in the request, then the 1723 related details SHALL NOT be updated by the SRS server. 1725 Syntax: 1727 element.HandleUpdate = 1728 element HandleUpdate { 1729 attribute ActionId { UID }, 1730 attribute HandleId { UID }, 1731 attribute Delete { Boolean }?, 1732 ContactAttr, 1733 Contact, 1734 element.AuditText? 1735 } 1737 6.4.2.2. Response 1739 The response to a HandleUpdate request will be either an Error 1740 (Section 7.8) element or a Handle (Section 7.12) element showing the 1741 updated state of the handle details. 1743 6.5. Message Query Action 1745 Registrars are provided with a single request for obtaining messages 1746 from the system: 1748 +-------------+-----------------------------------------------------+ 1749 | Request | Description | 1750 +-------------+-----------------------------------------------------+ 1751 | GetMessages | Retrieve responses generated by the SRS server for | 1752 | | a registrar. | 1753 +-------------+-----------------------------------------------------+ 1755 6.5.1. GetMessages 1757 The GetMessages request allows the user to retrieve messages that 1758 they may have been unaware of, or to confirm the status of a specific 1759 transaction that had been sent previously. Messages that registrars 1760 may miss are likely to include requests that are made by the registry 1761 on the registrar's behalf, and domain transfer requests issued by 1762 other registrars transferring domains at the request of a registrant. 1764 The GetMessages request MUST NOT be accompanied by any other requests 1765 within a request document. 1767 6.5.1.1. Request 1769 The GetMessages request that may specify: 1771 +------------------------+------------------------------------------+ 1772 | Attribute | Description | 1773 +------------------------+------------------------------------------+ 1774 | QryId | A query identifier. This has no meaning | 1775 | | within the SRS; if provided, it will be | 1776 | | returned in the response to this | 1777 | | request. | 1778 | OriginatingRegistrarId | A user identifier. The identifier of the | 1779 | | registrar that originally requested the | 1780 | | action. Also accepts the special "other | 1781 | | registrar" (Section 9.13.2) value. | 1782 | ActionId | An action identifier. This is the action | 1783 | | identifier for a previous request to the | 1784 | | SRS. | 1785 | RecipientRegistrarId | A user identifier. The registrar | 1786 | | identifier of the registrar that the | 1787 | | messages retrieved were intended for. | 1788 | | Only registry users can retrieve | 1789 | | messages intended for a user other than | 1790 | | themselves. | 1791 | MaxResults | A numeric value. Used to specify the | 1792 | | maximum number of messages to return. If | 1793 | | not specified, the default defined by | 1794 | | the server implementation will be used. | 1795 | SkipResults | A numeric value. Used to specify the | 1796 | | number of records at the start of a | 1797 | | results set to be skipped before | 1798 | | returning domain results. Can be used | 1799 | | with MaxResults to retrieve a large | 1800 | | result set in pages. | 1801 | CountResults | A boolean value that defaults to false. | 1802 | | If true, the response should only return | 1803 | | the number of matches for the query and | 1804 | | no messages. If MaxResults or | 1805 | | SkipResults is defined and CountResults | 1806 | | is true then the server SHALL return an | 1807 | | error response. | 1808 | QueueMode | A boolean value that defaults to false. | 1809 | | If true, the response should only return | 1810 | | messages that have not previously been | 1811 | | acknowledged (using AckMessage). | 1812 +------------------------+------------------------------------------+ 1814 The GetMessages request may also include a TransDateRange 1815 (Section 8.14) element, an AuditTextFilter (Section 8.8) element and 1816 may include one or more TypeFilter (Section 8.28) elements to limit 1817 the type of messages returned. 1819 Either an ActionId or a TransDateRange MUST be specified in order for 1820 the request to succeed. 1822 Syntax: 1824 element.GetMessages = 1825 element GetMessages { 1826 attribute QryId { UID }?, 1827 attribute OriginatingRegistrarId { RegistrarIdOrOTHERS }?, 1828 attribute ActionId { UID }?, 1829 attribute RecipientRegistrarId { RegistrarId }?, 1830 attribute MaxResults { Number }?, 1831 attribute SkipResults { Number }?, 1832 [ a:defaultValue = "0" ] attribute CountResults { Boolean }?, 1833 [ a:defaultValue = "0" ] attribute QueueMode { Boolean }?, 1834 element.TransDateRange?, 1835 element.AuditTextFilter?, 1836 element.TypeFilter* 1837 } 1839 6.5.1.2. Response 1841 The response to a GetMessages request will be either an Error 1842 (Section 7.8) element or one or more Response (Section 5.2.1) 1843 elements containing the details of messages that match the request 1844 specification. 1846 6.6. Message Write Action 1848 Registrars are provided with a single request for acknowledging 1849 receipt of messages from the system: 1851 +------------+------------------------------------------------------+ 1852 | Request | Description | 1853 +------------+------------------------------------------------------+ 1854 | AckMessage | Acknowledge receipt of a message retrieved using | 1855 | | GetMessages. | 1856 +------------+------------------------------------------------------+ 1858 6.6.1. RegistrarUpdate 1860 The AckMessage request allows the user to acknowledge receipt of a 1861 message retrieved using GetMessages to prevent the system from 1862 returning the message in response to subsequent GetMessages requests. 1864 6.6.1.1. Request 1866 The request must specify: 1868 +-----------------+-------------------------------------------------+ 1869 | Attribute | Description | 1870 +-----------------+-------------------------------------------------+ 1871 | ActionId | An action identifier. This is a unique | 1872 | | identifier for the request to the SRS server. | 1873 | OrigRegistrarId | The unique identifier for the user that | 1874 | | submitted the request to the SRS server. | 1875 | TransId | The identifier (either an ActionId or a QryId) | 1876 | | for the transaction submitted by the user that | 1877 | | originated the request. | 1878 +-----------------+-------------------------------------------------+ 1880 Syntax: 1882 element.AckMessage = 1883 element AckMessage { 1884 attribute ActionId { UID }, 1885 attribute OriginatingRegistrarId { RegistrarId }, 1886 attribute TransId { UID } 1887 } 1889 6.6.1.2. Response 1891 The response to an AckMessage request will be either an Error 1892 (Section 7.8) element or a Response (Section 5.2.1) element. 1894 6.7. Registrar Query Actions 1896 The registrar query requests are: 1898 +---------------------+---------------------------------------------+ 1899 | Request | Description | 1900 +---------------------+---------------------------------------------+ 1901 | RegistrarAccountQry | Request details of transactions in the | 1902 | | account of a registrar. | 1903 | RegistrarDetailsQry | Request the registrar details stored by the | 1904 | | SRS server. | 1905 +---------------------+---------------------------------------------+ 1907 6.7.1. RegistrarAccountQry 1909 The RegistrarAccountQry request allows the user to retrieve the 1910 details of billing transactions made in the account of a registrar. 1912 6.7.1.1. Request 1914 The request may specify: 1916 +---------------+---------------------------------------------------+ 1917 | Attribute | Description | 1918 +---------------+---------------------------------------------------+ 1919 | QryId | A query identifier. This has no meaning within | 1920 | | the SRS; if provided, it will be returned in the | 1921 | | response to this request. | 1922 | RegistrantRef | A text filter. Matched against the | 1923 | | registrar-provided customer reference of a | 1924 | | registrant. | 1925 | DomainName | A text filter. Matched against the domain name | 1926 | | that billing amounts relate to. | 1927 | InvoiceId | An invoice identifier. Used to match billing | 1928 | | records that have been associated with an | 1929 | | invoice. | 1930 | MaxResults | A numeric value. Used to specify the maximum | 1931 | | number of messages to return. If not specified, | 1932 | | the default defined by the server implementation | 1933 | | will be used. | 1934 | SkipResults | A numeric value. Used to specify the number of | 1935 | | records at the start of a results set to be | 1936 | | skipped before returning domain results. Can be | 1937 | | used with MaxResults to retrieve a large result | 1938 | | set in pages. | 1939 | TransStatus | A BillStatus (Section 9.2.2) value. Used to | 1940 | | filter on the bill status of billing amounts. | 1941 | CountResults | A boolean value that defaults to false. If true, | 1942 | | the response should only return the number of | 1943 | | matches for the query and no messages. If | 1944 | | MaxResults or SkipResults is defined and | 1945 | | CountResults is true then the server SHALL return | 1946 | | an error response. | 1947 +---------------+---------------------------------------------------+ 1949 The RegistrarAccountQry request may also include a TransDateRange 1950 (Section 8.14) element and an InvoiceDateRange (Section 8.14) 1951 element. 1953 Syntax: 1955 element.RegistrarAccountQry = 1956 element RegistrarAccountQry { 1957 attribute QryId { UID }?, 1958 attribute RegistrantRef { UID }?, 1959 attribute DomainName { DomainName }?, 1960 attribute InvoiceId { UID }?, 1961 attribute MaxResults { Number }?, 1962 attribute SkipResults { Number }?, 1963 attribute TransStatus { BillStatus }?, 1964 [ a:defaultValue = "0" ] attribute CountResults { Boolean }?, 1965 element.TransDateRange?, 1966 element.InvoiceDateRange? 1967 } 1969 6.7.1.2. Response 1971 The response to a RegistrarAccountQry request will be either an Error 1972 (Section 7.8) element or a set of BillingTrans (Section 7.4) 1973 elements. 1975 6.7.2. RegistrarDetailsQry 1977 The RegistrarDetailsQry request allows the user to retrieve the 1978 stored details for a registrar account. Registrars SHOULD be 1979 restricted to only retrieving details of their own account. The 1980 registry may retrieve information about any registrar. 1982 6.7.2.1. Request 1984 The request may specify: 1986 +-------------+-----------------------------------------------------+ 1987 | Attribute | Description | 1988 +-------------+-----------------------------------------------------+ 1989 | QryId | A query identifier. This has no meaning within the | 1990 | | SRS; if provided, it will be returned in the | 1991 | | response to this request. | 1992 | RegistrarId | A user identifier. The registrar identifier of the | 1993 | | registrar to retrieve stored details for. | 1994 | NameFilter | A text filter. Matched against the registrar names | 1995 | | stored in the SRS server. | 1996 +-------------+-----------------------------------------------------+ 1998 The RegistrarDetailsQry request may also include a ResultDateRange 1999 (Section 8.14) element. 2001 If the ResultDateRange element is supplied, it will cause the server 2002 to return multiple records for each registrar, describing all the 2003 changes that the registrar went through during the given period. 2004 Otherwise, if it is not specified, only the latest data for each 2005 registrar that matches the filters will be returned. When a 2006 ResultDateRange is requested, the Allowed2LDs and the Roles are not 2007 returned (there is no historical data available for these fields). 2009 Syntax: 2011 element.RegistrarDetailsQry = 2012 element RegistrarDetailsQry { 2013 attribute QryId { UID }?, 2014 attribute RegistrarId { RegistrarId }?, 2015 attribute NameFilter { text }?, 2016 element.ResultDateRange? 2017 } 2019 6.7.2.2. Response 2021 The response to a RegistrarDetailsQry request will be either an Error 2022 (Section 7.8) element or one or more Registrar (Section 7.12) 2023 elements matching the provided filter details. 2025 6.8. Registrar Write Actions 2027 Registrars typically only have access to a single request for the 2028 maintenance of their details stored at the SRS: 2030 +-----------------+-----------------------------------------------+ 2031 | Request | Description | 2032 +-----------------+-----------------------------------------------+ 2033 | RegistrarUpdate | Updates the details stored about a registrar. | 2034 +-----------------+-----------------------------------------------+ 2036 6.8.1. RegistrarUpdate 2038 The RegistrarUpdate request allows the user to update their own 2039 account details and allows the registry to maintain registrar 2040 information for any registrar. 2042 6.8.1.1. Request 2044 The request must specify: 2046 +-----------+-------------------------------------------------------+ 2047 | Attribute | Description | 2048 +-----------+-------------------------------------------------------+ 2049 | ActionId | An action identifier. This is a unique identifier for | 2050 | | the request to the SRS server. | 2051 +-----------+-------------------------------------------------------+ 2053 Additionally, the request may specify: 2055 +-----------+-------------------------------------------------------+ 2056 | Attribute | Description | 2057 +-----------+-------------------------------------------------------+ 2058 | Name | A text string. The registrar's identifier in the | 2059 | | registry's accounting system. | 2060 | AccRef | A text string. The registrar's identifier in the | 2061 | | registry's accounting system. | 2062 | URL | A text string. The registrar's public web site | 2063 | | address. | 2064 +-----------+-------------------------------------------------------+ 2066 The RegistrarUpdate request may also include new details for any of 2067 the related registrar information elements: 2069 o RegistrarPublicContact (Section 8.11) 2071 o RegistrarSRSContact (Section 8.11) 2073 o DefaultTechnicalContact (Section 8.11) 2075 o EncryptKeys (Section 8.18) 2076 o EPPAuth (Section 8.19) 2078 o Allowed2LDs (Section 8.5) 2080 o Roles (Section 8.32) 2082 o AuditText (Section 8.7) 2084 If an attribute or element is not provided in the request, then the 2085 related details SHALL NOT be updated by the SRS server. 2087 Syntax: 2089 element.RegistrarUpdate = 2090 element RegistrarUpdate { 2091 attribute ActionId { UID }, 2092 attribute Name { text }?, 2093 attribute AccRef { text }?, 2094 attribute URL { text }?, 2095 element.RegistrarPublicContact?, 2096 element.RegistrarSRSContact?, 2097 element.DefaultTechnicalContact?, 2098 element.EncryptKeys?, 2099 element.EPPAuth?, 2100 element.Allowed2LDs?, 2101 element.Roles?, 2102 element.AuditText? 2103 } 2105 6.8.1.2. Response 2107 The response to a RegistrarUpdate request will be either an Error 2108 (Section 7.8) element or a Registrar (Section 7.12) element showing 2109 the updated state of the user details. 2111 6.9. Registry Actions 2113 The registry requests are used by the registry to manage the business 2114 functions of the SRS. Registrars MUST NOT have access to these 2115 functions. 2117 The registry requests are: 2119 +--------------------------+----------------------------------------+ 2120 | Request | Description | 2121 +--------------------------+----------------------------------------+ 2122 | AccessControlListAdd | Adds one or more entries to the | 2123 | | registry's access control list. | 2124 | AccessControlListQry | Queries the registry's access control | 2125 | | list. | 2126 | AccessControlListRemove | Removes one or more entries from the | 2127 | | registry's access control list. | 2128 | AdjustRegistrarAccount | Creates billing transactions in order | 2129 | | to adjust the details of a registrar's | 2130 | | account with the registry. | 2131 | BilledUntilAdjustment | Adjusts the end date of billing for a | 2132 | | domain name. | 2133 | BuildDnsZoneFiles | Builds the registry's DNS zone files | 2134 | | including details of all of the | 2135 | | currently delegated domain. | 2136 | DeferredIncomeDetailQry | Reports on the billing transactions | 2137 | | that contribute to an amount of | 2138 | | deferred income for an income month. | 2139 | DeferredIncomeSummaryQry | Reports on all deferred income for an | 2140 | | income month. | 2141 | GenerateDomainReport | Generates a report on all of the | 2142 | | domains registered in the SRS. | 2143 | BillingAmountQry | Queries the per-term charge for domain | 2144 | | registration over time. | 2145 | RegistrarCreate | Creates a new registrar in the SRS and | 2146 | | assigns initial details to the record. | 2147 | RunLogCreate | Creates an entry in the SRS server | 2148 | | log. | 2149 | RunLogQry | Queries details of entries in the SRS | 2150 | | server log. | 2151 | ScheduleCancel | Cancels a scheduled process in the SRS | 2152 | | server. | 2153 | ScheduleCreate | Creates a scheduled process in the SRS | 2154 | | server. | 2155 | ScheduleQry | Queries details of a scheduled process | 2156 | | in the SRS server. | 2157 | ScheduleUpdate | Updates the details of a scheduled | 2158 | | process in the SRS server. | 2159 | BillingAmountUpdate | Inserts a new per-term charge for | 2160 | | domain registrations. | 2161 | SysParamsCreate | Creates new configurable system | 2162 | | parameter entries in the SRS server. | 2163 | SysParamsQry | Queries the details of configurable | 2164 | | system parameters in the SRS server. | 2165 | SysParamsUpdate | Updates the details of configurable | 2166 | | system parameters in the SRS server. | 2167 +--------------------------+----------------------------------------+ 2169 6.9.1. AccessControlListAdd 2171 The AccessControlListAdd request allows the registry to add entries 2172 to its access control lists. 2174 6.9.1.1. Request 2176 The request must specify: 2178 +-----------+-------------------------------------------------------+ 2179 | Attribute | Description | 2180 +-----------+-------------------------------------------------------+ 2181 | ActionId | An action identifier. This is a unique identifier for | 2182 | | the request to the SRS server. | 2183 | Resource | A text string. An identifier for the system or | 2184 | | resource to which the access control list entries | 2185 | | should be added. For example, this might specify a | 2186 | | service name such as "whoisd". | 2187 | List | A text string. A description of the function of the | 2188 | | access control list to which the access control lists | 2189 | | should be added. For example, "allow" or "deny". | 2190 +-----------+-------------------------------------------------------+ 2192 Additionally, the request may specify: 2194 +------------+------------------------------------------------------+ 2195 | Attribute | Description | 2196 +------------+------------------------------------------------------+ 2197 | FullResult | A boolean value. Indicates whether the result | 2198 | | returned should contain full details of entries in | 2199 | | the modified access control lists. | 2200 +------------+------------------------------------------------------+ 2202 The AccessControlListAdd request must also include one or more 2203 AccessControlListEntry (Section 8.2) elements to specify the entries 2204 to be added to the access control lists, and may include an AuditText 2205 (Section 8.7) element giving a description for the addition. 2207 Syntax: 2209 element.AccessControlListAdd = 2210 element AccessControlListAdd { 2211 attribute Resource { text }, 2212 attribute List { text }, 2213 attribute ActionId { UID }, 2214 [ a:defaultValue = "1" ] attribute FullResult { Boolean }?, 2215 element.AccessControlListEntry+, 2216 element.AuditText? 2217 } 2219 6.9.1.2. Response 2221 The response to an AccessControlListAdd request will be either an 2222 Error (Section 7.8) or one AccessControlList (Section 7.1) element. 2223 The attribute SizeChange will indicate the number of entries added. 2225 6.9.2. AccessControlListQry 2227 The AccessControlListQry request allows the registry to retrieve 2228 details of the current state of access control lists. 2230 6.9.2.1. Request 2232 The request may specify: 2234 +------------+------------------------------------------------------+ 2235 | Attribute | Description | 2236 +------------+------------------------------------------------------+ 2237 | Resource | A text string. Used to match the system or resource | 2238 | | name of the access control list. | 2239 | List | A text string. Used to match the name of the access | 2240 | | control list. | 2241 | Type | A text string. Specifies what datatype the list is. | 2242 | FullResult | A boolean value. Indicates whether the result | 2243 | | returned should contain full details of entries in | 2244 | | the matched access control lists. | 2245 +------------+------------------------------------------------------+ 2246 Syntax: 2248 element.AccessControlListQry = 2249 element AccessControlListQry { 2250 attribute Resource { text }?, 2251 attribute List { text }?, 2252 attribute Type { text }?, 2253 [ a:defaultValue = "0" ] attribute FullResult { Boolean }?, 2254 AccessControlListContentFilter* 2255 } 2257 6.9.2.2. Response 2259 The response to an AccessControlListQry request will be either an 2260 Error (Section 7.8) element or zero or more AccessControlList 2261 (Section 7.1) elements - dependent on the number of access control 2262 lists that matched the query specification. 2264 Type must be provided to return AccessControlListEntry elements 2265 inside the AccessControlList (Section 7.1) element. Currently 2266 supported values for Type are: "ip", "domain", "registrar", 2267 "registrar_ip" and "registrar_domain". 2269 If Type is provided the AccessControlListQry element may contain some 2270 AccessControlListContentFilter (Section 8.1) elements to search on 2271 the list's contents. 2273 If Type is provided and FullResult is 1, the response will contain 2274 AccessControlList elements and AccessControlListEntry elements with 2275 their EffectiveDate elements for matched lists. 2277 6.9.3. AccessControlListRemove 2279 The AccessControlListRemove request allows the registry to remove 2280 entries from access control lists. 2282 6.9.3.1. Request 2284 The request must specify: 2286 +-----------+-------------------------------------------------------+ 2287 | Attribute | Description | 2288 +-----------+-------------------------------------------------------+ 2289 | ActionId | An action identifier. This is a unique identifier for | 2290 | | the request to the SRS server. | 2291 | Resource | A text string. An identifier for the system or | 2292 | | resource of the access control list from which the | 2293 | | entries should be removed. | 2294 | List | A text string. A description of the function of the | 2295 | | access control list from which the entries should be | 2296 | | removed. | 2297 +-----------+-------------------------------------------------------+ 2299 Additionally, the request may specify: 2301 +------------+------------------------------------------------------+ 2302 | Attribute | Description | 2303 +------------+------------------------------------------------------+ 2304 | FullResult | A boolean value. Indicates whether the result | 2305 | | returned should contain full details of entries in | 2306 | | the modified access control lists. | 2307 +------------+------------------------------------------------------+ 2309 The AccessControlListRemove request must also include one or more 2310 AccessControlListEntry (Section 8.2) elements to specify the entries 2311 to be removed from the access control lists, and may include an 2312 AuditText (Section 8.7) element. 2314 Syntax: 2316 element.AccessControlListRemove = 2317 element AccessControlListRemove { 2318 attribute Resource { text }, 2319 attribute List { text }, 2320 attribute ActionId { UID }, 2321 [ a:defaultValue = "1" ] attribute FullResult { Boolean }?, 2322 element.AccessControlListEntry*, 2323 element.AuditText? 2324 } 2326 6.9.3.2. Response 2328 The response to an AccessControlListRemove request will be either an 2329 Error (Section 7.8) or one AccessControlList (Section 7.1) element. 2330 The attribute SizeChange will indicate the number of entries removed; 2331 this will be a negative integer or zero. 2333 6.9.4. AdjustRegistrarAccount 2335 The AdjustRegistrarAccount request allows the registry to adjust the 2336 account of a registrar by creating a billing transaction in the 2337 registrar's name. This allows the registry to make adjustments by 2338 crediting or debiting the registrar account, for instance, in the 2339 case of a refunded payment. 2341 6.9.4.1. Request 2343 The request must specify: 2345 +-------------+-----------------------------------------------------+ 2346 | Attribute | Description | 2347 +-------------+-----------------------------------------------------+ 2348 | ActionId | An action identifier. This is a unique identifier | 2349 | | for the request to the SRS server. | 2350 | RegistrarId | A user identifier. The identifier of the registrar | 2351 | | whose account is to be adjusted. | 2352 | DomainName | A text string. The name of the domain for which the | 2353 | | registrar's account is being adjusted. | 2354 | Months | An integer. The number of months of payment to | 2355 | | credit to, or debit from the registrar's account | 2356 | | for the specified domain. | 2357 | ActionType | A text string. A valid accounting action; either | 2358 | | 'Credit' or 'Debit'. | 2359 +-------------+-----------------------------------------------------+ 2361 The AdjustRegistrarAccount request must also include the date details 2362 for the billing transaction as a TransactionDate (Section 8.38) 2363 element, a BillPeriodStart (Section 8.38) element, and a 2364 BillPeriodEnd (Section 8.38) element, and also an AuditText 2365 (Section 8.7) element providing audit details for the adjustment. 2367 Syntax: 2369 element.AdjustRegistrarAccount = 2370 element AdjustRegistrarAccount { 2371 attribute RegistrarId { RegistrarId }, 2372 attribute DomainName { DomainName }, 2373 attribute ActionId { UID }, 2374 attribute Months { Number }, 2375 attribute ActionType { AccountingAction }, 2376 element.TransactionDate, 2377 element.BillPeriodStart, 2378 element.BillPeriodEnd, 2379 element.AuditText 2380 } 2382 6.9.4.2. Response 2384 The response to a AdjustRegistrarAccount request will be either an 2385 Error (Section 7.8) element or a BillingTrans (Section 7.4) element 2386 for the new transaction details provided. 2388 6.9.5. BilledUntilAdjustment 2390 The BilledUntilAdjustment request allows the registry to change the 2391 date that a domain has been billed until, for example, when a domain 2392 is renewed by the registrar before the automatic renewal date 2393 arrives. 2395 6.9.5.1. Request 2397 The request must specify: 2399 +------------+------------------------------------------------------+ 2400 | Attribute | Description | 2401 +------------+------------------------------------------------------+ 2402 | DomainName | A text string. The name of the domain to adjust the | 2403 | | billed until date for. | 2404 | ActionId | An action identifier. This is a unique identifier | 2405 | | for the request to the SRS server. | 2406 +------------+------------------------------------------------------+ 2408 The BilledUntilAdjustment request must also include a 2409 NewBilledUntilDate (Section 8.38) element providing the new date for 2410 the domain billed until record, and an AuditText (Section 8.7) 2411 element describing the reason for the change. 2413 Syntax: 2415 element.BilledUntilAdjustment = 2416 element BilledUntilAdjustment { 2417 attribute DomainName { DomainName }, 2418 attribute ActionId { UID }, 2419 element.NewBilledUntilDate, 2420 element.AuditText 2421 } 2423 6.9.5.2. Response 2425 The response to a BilledUntilAdjustment request will be either an 2426 Error (Section 7.8) element or a full Domain (Section 7.6) element 2427 showing all details for the updated domain, including the new 2428 BilledUntil date. 2430 6.9.6. BuildDnsZoneFiles 2432 The BuildDnsZoneFiles request allows the registry to initiate the 2433 creation of DNS zone and configuration files for all registered 2434 domains that have been set to delegate. The SRS server SHALL 2435 generate a run-log entry for this request recording the final status 2436 and MAY include statistics on the domains exported to the DNS. 2438 The SRS server MUST NOT allow multiple instances of this request to 2439 run simultaneously. 2441 6.9.6.1. Request 2443 The request must specify: 2445 +-----------+-------------------------------------------------------+ 2446 | Attribute | Description | 2447 +-----------+-------------------------------------------------------+ 2448 | ActionId | An action identifier. This is a unique identifier for | 2449 | | the request to the SRS server. | 2450 +-----------+-------------------------------------------------------+ 2452 The BuildDnsZoneFiles request may also include a RunDate 2453 (Section 8.38) element to specify the date and time to run the zone 2454 build process. 2456 Syntax: 2458 element.BuildDnsZoneFiles = 2459 element BuildDnsZoneFiles { 2460 attribute ActionId { UID }, 2461 element.RunDate 2462 } 2464 6.9.6.2. Response 2466 The response to a BuildDnsZoneFiles request will be either an Error 2467 (Section 7.8) element or a RunLog (Section 7.13) element containing 2468 details produced by the zone file build process. 2470 6.9.7. DeferredIncomeDetailQry 2472 The DeferredIncomeDetailQry request allows the registry to obtain a 2473 report of billing transactions that contribute to an amount of 2474 deferred income (for example, to provide a breakdown of the billing 2475 transactions that make up an amount of deferred income reported by 2476 the DeferredIncomeSummaryQry (Section 6.9.8) request). 2478 6.9.7.1. Request 2480 The request must specify: 2482 +-------------+-----------------------------------------------------+ 2483 | Attribute | Description | 2484 +-------------+-----------------------------------------------------+ 2485 | BaseMonth | An integer. The latest month (January = 1, December | 2486 | | = 12) of the base year to consider billing | 2487 | | transactions for when calculating deferred income. | 2488 | | Billing transactions up to, and including, this | 2489 | | month will be included. | 2490 | BaseYear | An integer. The latest year to consider billing | 2491 | | transactions for when calculating deferred income. | 2492 | IncomeMonth | An integer. The month (January = 1, December = 12) | 2493 | | of the income year to calculate deferred income | 2494 | | for. | 2495 | IncomeYear | An integer. The year to calculate deferred income | 2496 | | for. | 2497 +-------------+-----------------------------------------------------+ 2499 Additionally, the request may specify: 2501 +-----------+-------------------------------------------------------+ 2502 | Attribute | Description | 2503 +-----------+-------------------------------------------------------+ 2504 | QryId | A query identifier. This has no meaning within the | 2505 | | SRS; if provided, it will be returned in the response | 2506 | | to this request. | 2507 +-----------+-------------------------------------------------------+ 2509 Syntax: 2511 element.DeferredIncomeDetailQry = 2512 element DeferredIncomeDetailQry { 2513 attribute BaseMonth { text }, 2514 attribute BaseYear { text }, 2515 attribute IncomeMonth { text }, 2516 attribute IncomeYear { text }, 2517 attribute QryId { UID }?, 2518 empty 2519 } 2521 6.9.7.2. Response 2523 The response to a DeferredIncomeDetailQry request will be either an 2524 Error (Section 7.8) element or a set of BillingTrans (Section 7.4) 2525 elements consisting of all of the billing transactions that 2526 contributed to deferred income for the specified period. 2528 6.9.8. DeferredIncomeSummaryQry 2530 The DeferredIncomeSummaryQry request allows the registry to generate 2531 a report on the amount of deferred income that can be realised in any 2532 given month for the period provided in the request. 2534 6.9.8.1. Request 2536 The request must specify: 2538 +-------------+-----------------------------------------------------+ 2539 | Attribute | Description | 2540 +-------------+-----------------------------------------------------+ 2541 | BaseMonth | An integer. The latest month (January = 1, December | 2542 | | = 12) of the base year to consider billing | 2543 | | transactions for when calculating deferred income. | 2544 | | Billing transactions up to, and including, this | 2545 | | month will be included. | 2546 | BaseYear | An integer. The latest year to consider billing | 2547 | | transactions for when calculating deferred income. | 2548 | IncomeMonth | An integer. The month (January = 1, December = 12) | 2549 | | of the income year to calculate deferred income | 2550 | | for. | 2551 | IncomeYear | An integer. The year to calculate deferred income | 2552 | | for. | 2553 +-------------+-----------------------------------------------------+ 2555 Additionally, the request may specify: 2557 +-----------+-------------------------------------------------------+ 2558 | Attribute | Description | 2559 +-----------+-------------------------------------------------------+ 2560 | QryId | A query identifier. This has no meaning within the | 2561 | | SRS; if provided, it will be returned in the response | 2562 | | to this request. | 2563 +-----------+-------------------------------------------------------+ 2564 Syntax: 2566 element.DeferredIncomeSummaryQry = 2567 element DeferredIncomeSummaryQry { 2568 attribute BaseMonth { text }, 2569 attribute BaseYear { text }, 2570 attribute IncomeMonth { text }, 2571 attribute IncomeYear { text }, 2572 attribute QryId { UID }?, 2573 empty 2574 } 2576 6.9.8.2. Response 2578 The response to a DeferredIncomeSummaryQry request will be either an 2579 Error (Section 7.8) element or a set of DeferredRegistrarIncome 2580 (Section 7.5) elements containing the deferred income contribution 2581 for each registrar for the specified period. 2583 6.9.9. GenerateDomainReport 2585 The GenerateDomainReport request allows the registry to initiate the 2586 creation of a domain report containing details of the domains 2587 registered in the SRS system. SRS implementations may vary in the 2588 information that they include in this report. 2590 6.9.9.1. Request 2592 The request must specify: 2594 +-----------+-------------------------------------------------------+ 2595 | Attribute | Description | 2596 +-----------+-------------------------------------------------------+ 2597 | ActionId | An action identifier. This is a unique identifier for | 2598 | | the request to the SRS server. | 2599 +-----------+-------------------------------------------------------+ 2601 The GenerateDomainReport request must also include a RunDate 2602 (Section 8.38) element providing the date and time at which the 2603 domain report creation process should run. 2605 Syntax: 2607 element.GenerateDomainReport = 2608 element GenerateDomainReport { 2609 attribute ActionId { UID }, 2610 element.RunDate 2611 } 2613 6.9.9.2. Response 2615 The response to a GenerateDomainReport request will be either an 2616 Error (Section 7.8) element or a RunLog (Section 7.13) element 2617 containing details produced by the domain report creation process. 2619 6.9.10. BillingAmountQry 2621 The BillingAmountQry request allows the registry to query all of the 2622 billing amounts in the system (including all historical billing 2623 amounts, the current effective billing amount and any future billing 2624 amounts). It does not set a new billing amount. 2626 6.9.10.1. Request 2628 The BillingAmountQry request has no required parameters. The request 2629 may specify: 2631 +-----------+-------------------------------------------------------+ 2632 | Attribute | Description | 2633 +-----------+-------------------------------------------------------+ 2634 | QryId | A query identifier. This has no meaning within the | 2635 | | SRS; if provided, it will be returned in the response | 2636 | | to this request. | 2637 +-----------+-------------------------------------------------------+ 2639 Syntax: 2641 element.BillingAmountQry = 2642 element BillingAmountQry { 2643 attribute QryId { UID }?, 2644 empty 2645 } 2647 6.9.10.2. Response 2649 The BillingAmountQry response will either be an Error (Section 7.8) 2650 element or a set of BillingAmount (Section 7.3) elements. If a QryId 2651 was provided with the request, this will be returned in the TransId 2652 attribute of the Response (Section 5.2.1) element. 2654 6.9.11. RegistrarCreate 2656 The RegistrarCreate request allows the user to create a new registrar 2657 user account in the SRS server and to provide details for it. 2659 6.9.11.1. Request 2661 The request must specify: 2663 +-------------+-----------------------------------------------------+ 2664 | Attribute | Description | 2665 +-------------+-----------------------------------------------------+ 2666 | ActionId | An action identifier. This is a unique identifier | 2667 | | for the request to the SRS server. | 2668 | Name | A text string. The name of the registrar. | 2669 | AccRef | A text string. The registrar's identifier in the | 2670 | | registry's accounting system. | 2671 | RegistrarId | A user identifier. The unique number to be assigned | 2672 | | to the new registrar. | 2673 +-------------+-----------------------------------------------------+ 2675 Additionally, the request may specify: 2677 +-----------+-------------------------------------------------------+ 2678 | Attribute | Description | 2679 +-----------+-------------------------------------------------------+ 2680 | URL | A text string. The registrar's public web site | 2681 | | address. | 2682 +-----------+-------------------------------------------------------+ 2684 The RegistrarCreate request must also include a 2685 RegistrarPublicContact (Section 8.11) element specifying the public 2686 contact details for the registrar, a RegistrarSRSContact 2687 (Section 8.11) element specifying the contact details for the 2688 registry's use, a DefaultTechnicalContact (Section 8.11) element 2689 which will be applied to domains registered through the registrar if 2690 no other technical contact is specified, and an EncryptKeys 2691 (Section 8.18) element providing one or more public keys that the 2692 registrar will use. 2694 The RegistrarCreate request may also include the Allowed2LDs 2695 (Section 8.5) element specifying the domains in which the registrar 2696 may manage domain registrations, a Roles (Section 8.32) element 2697 defining system access roles for the registrar, and the AuditText 2698 (Section 8.7) element to provide details on the addition of the new 2699 registrar account. 2701 Syntax: 2703 element.RegistrarCreate = 2704 element RegistrarCreate { 2705 attribute ActionId { UID }, 2706 attribute Name { text }, 2707 attribute AccRef { text }, 2708 attribute RegistrarId { RegistrarId }, 2709 attribute URL { text }?, 2710 element.RegistrarPublicContact, 2711 element.RegistrarSRSContact, 2712 element.DefaultTechnicalContact, 2713 element.EncryptKeys, 2714 element.EPPAuth?, 2715 element.Allowed2LDs?, 2716 element.Roles?, 2717 element.AuditText? 2718 } 2720 6.9.11.2. Response 2722 The response to a RegistrarCreate request will be either an Error 2723 (Section 7.8) element or a Registrar (Section 7.12) element showing 2724 the details for the new registrar account. 2726 6.9.12. RunLogCreate 2728 The RunLogCreate request allows the registry to request creation of a 2729 log entry in the SRS server's run log. This is useful for allowing 2730 batch processes that interface with the SRS server to log messages to 2731 a standard location. 2733 6.9.12.1. Request 2735 The request must specify: 2737 +-----------+-------------------------------------------------------+ 2738 | Attribute | Description | 2739 +-----------+-------------------------------------------------------+ 2740 | ActionId | An action identifier. This is a unique identifier for | 2741 | | the request to the SRS server. | 2742 +-----------+-------------------------------------------------------+ 2744 The RunLogCreate request must also include a FirstRunDate 2745 (Section 8.38) element specifying the date at which the process was 2746 initiated, and a RunLog (Section 7.13) element containing the details 2747 of the log entry to be created. 2749 Syntax: 2751 element.RunLogCreate = 2752 element RunLogCreate { 2753 attribute ActionId { UID }, 2754 element.FirstRunDate, 2755 element.RunLog 2756 } 2758 6.9.12.2. Response 2760 The response to a RunLogCreate request will be either an Error 2761 (Section 7.8) element or a RunLog (Section 7.13) element containing 2762 the details of the log entry that was created. 2764 6.9.13. RunLogQry 2766 The RunLogQry request allows the registry to query the SRS server for 2767 details of log entries created by processes that interact with the 2768 SRS server. 2770 6.9.13.1. Request 2772 The request may specify: 2774 +-------------+-----------------------------------------------------+ 2775 | Attribute | Description | 2776 +-------------+-----------------------------------------------------+ 2777 | QryId | A query identifier. This has no meaning within the | 2778 | | SRS; if provided, it will be returned in the | 2779 | | response to this request. | 2780 | ProcessName | A text string. The name of a scheduled job process | 2781 | | that created the run log. This will be matched | 2782 | | against existing run log entries to limit the | 2783 | | results returned. | 2784 | Parameters | A text string. The parameters with which a process | 2785 | | was called. This will be matched against existing | 2786 | | run log entries to limit the results returned. | 2787 +-------------+-----------------------------------------------------+ 2789 The RunLogQry request may also include a LogDateRange (Section 8.14) 2790 element defining the period for which to return run log entry 2791 details. 2793 If no limiting terms are specified, the SRS server will return all 2794 run log entries. The server MAY impose a limit on the number of 2795 entries that are returned in a single response. 2797 Syntax: 2799 element.RunLogQry = 2800 element RunLogQry { 2801 attribute QryId { UID }?, 2802 attribute ProcessName { text }?, 2803 attribute Parameters { text }?, 2804 element.LogDateRange? 2805 } 2807 6.9.13.2. Response 2809 The response to a RunLogQry request will be either an Error 2810 (Section 7.8) element or a set of RunLog (Section 7.13) elements 2811 matching the provided terms. 2813 6.9.14. ScheduleCancel 2815 The ScheduleCancel request allows the registry to cancel a scheduled 2816 process that has been registered in the SRS server using the 2817 ScheduleCreate (Section 6.9.15) request. 2819 6.9.14.1. Request 2821 The request must specify: 2823 +-------------+-----------------------------------------------------+ 2824 | Attribute | Description | 2825 +-------------+-----------------------------------------------------+ 2826 | ActionId | An action identifier. This is a unique identifier | 2827 | | for the request to the SRS server. | 2828 | ProcessName | A text string. The name of a scheduled job process | 2829 | | to be cancelled. | 2830 +-------------+-----------------------------------------------------+ 2832 Additionally, the request may specify: 2834 +------------+------------------------------------------------------+ 2835 | Attribute | Description | 2836 +------------+------------------------------------------------------+ 2837 | Parameters | A text string. The parameters with which a process | 2838 | | to be cancelled was called. | 2839 +------------+------------------------------------------------------+ 2841 The ScheduleCancel request must also include a FirstRunDate 2842 (Section 8.38) element identifying the first run date of the 2843 scheduled job process to be cancelled, and may include a AuditText 2844 (Section 8.7) element providing the reasons for the job cancellation. 2846 Syntax: 2848 element.ScheduleCancel = 2849 element ScheduleCancel { 2850 attribute ActionId { UID }, 2851 attribute ProcessName { ScheduledJob }, 2852 attribute Parameters { text }?, 2853 element.FirstRunDate, 2854 element.AuditText? 2855 } 2857 6.9.14.2. Response 2859 The response to a ScheduleCancel request will be either an Error 2860 (Section 7.8) element or a Schedule (Section 7.14) element giving the 2861 details of the cancelled job, including the new cancellation date. 2863 6.9.15. ScheduleCreate 2865 The ScheduleCreate request allows the registry to insert a scheduled 2866 job entry into the SRS server to be run at a specified time, and 2867 possibly at regular intervals after that time. This may be used to 2868 set times for running processes that support the day-to-day work of 2869 the registry. These processes are defined by the ScheduledJob 2870 (Section 9.16.1) entity. 2872 6.9.15.1. Request 2874 The request must specify: 2876 +-------------+-----------------------------------------------------+ 2877 | Attribute | Description | 2878 +-------------+-----------------------------------------------------+ 2879 | ActionId | An action identifier. This is a unique identifier | 2880 | | for the request to the SRS server. | 2881 | ProcessName | A text string. The name of the process to be | 2882 | | executed at the designated time. | 2883 | Frequency | An text string. The delay between repeat executions | 2884 | | of the process, after the initial run date. The | 2885 | | format for this is implementation dependent but it | 2886 | | is recommended that a simple text description be | 2887 | | used; as examples: "15 minutes", "1 hour", "1 day". | 2888 | | Registries should ensure that the frequency is not | 2889 | | shorter than the run-time for the process. | 2890 +-------------+-----------------------------------------------------+ 2892 Additionally, the request may specify: 2894 +------------+------------------------------------------------------+ 2895 | Attribute | Description | 2896 +------------+------------------------------------------------------+ 2897 | Parameters | A text string. The parameters to be passed to the | 2898 | | process when it is executed. | 2899 +------------+------------------------------------------------------+ 2901 The ScheduleCreate request must also include a FirstRunDate 2902 (Section 8.38) element providing the date and time at which the 2903 process should first be executed. The request may also include a 2904 FinalRunDate (Section 8.38) element providing the last date and time 2905 at which a repeating process should be executed, and an AuditText 2906 (Section 8.7) element providing details about the process creation 2907 request. 2909 Syntax: 2911 element.ScheduleCreate = 2912 element ScheduleCreate { 2913 attribute ProcessName { ScheduledJob }, 2914 attribute Frequency { text }, 2915 attribute Parameters { text }?, 2916 attribute ActionId { UID }, 2917 element.FirstRunDate, 2918 element.FinalRunDate?, 2919 element.AuditText? 2920 } 2922 6.9.15.2. Response 2924 The response to a ScheduleCreate request will be either an Error 2925 (Section 7.8) element or a Schedule (Section 7.14) element with the 2926 newly created scheduled job details. 2928 6.9.16. ScheduleQry 2930 The ScheduleQry request allows the registry to query details of 2931 scheduled jobs in the SRS system. The results may be filtered to 2932 return only scheduled events with particular characteristics. 2934 6.9.16.1. Request 2936 The request may specify: 2938 +-------------+-----------------------------------------------------+ 2939 | Attribute | Description | 2940 +-------------+-----------------------------------------------------+ 2941 | QryId | A query identifier. This has no meaning within the | 2942 | | SRS; if provided, it will be returned in the | 2943 | | response to this request. | 2944 | ProcessName | A text string. Used to match against the name of a | 2945 | | scheduled process. | 2946 | Parameters | A text string. Used to match against the parameters | 2947 | | specified for a scheduled process. | 2948 +-------------+-----------------------------------------------------+ 2950 The ScheduleQry request may also include an ActiveOn (Section 8.38) 2951 element providing a date and time at which a process must have been 2952 active (between the first run date and the last run date of a 2953 repeating process), and a FirstRunDate (Section 8.38) element to 2954 match against the first run dates of scheduled jobs. 2956 Syntax: 2958 element.ScheduleQry = 2959 element ScheduleQry { 2960 attribute QryId { UID }?, 2961 attribute ProcessName { text }?, 2962 attribute Parameters { text }?, 2963 element.ActiveOn?, 2964 element.FirstRunDate? 2965 } 2967 6.9.16.2. Response 2969 The response to a ScheduleQry request will be either an Error 2970 (Section 7.8) element or a set of Schedule (Section 7.14) elements, 2971 one for each schedule that matched the request parameters. 2973 6.9.17. ScheduleUpdate 2975 The ScheduleUpdate request allows the registry to amend the details 2976 for an existing Schedule (Section 7.14) entry in the SRS server. 2978 6.9.17.1. Request 2980 The request may specify: 2982 +-------------+-----------------------------------------------------+ 2983 | Attribute | Description | 2984 +-------------+-----------------------------------------------------+ 2985 | ActionId | An action identifier. This is a unique identifier | 2986 | | for the request to the SRS server. | 2987 | ProcessName | A text string. The name of the process to be | 2988 | | executed at the designated time. | 2989 +-------------+-----------------------------------------------------+ 2991 Additionally, the request may specify: 2993 +------------+------------------------------------------------------+ 2994 | Attribute | Description | 2995 +------------+------------------------------------------------------+ 2996 | Parameters | A text string. The parameters to be passed to the | 2997 | | process when it is executed. | 2998 +------------+------------------------------------------------------+ 3000 The ScheduleUpdate request must also include a FirstRunDate 3001 (Section 8.38) element to specify the new first run date for the 3002 process. The request may include a LastRunDate (Section 8.38) 3003 element to specify a new date at which the process last ran and an 3004 AuditText (Section 8.7) element providing details about the schedule 3005 update request. 3007 Syntax: 3009 element.ScheduleUpdate = 3010 element ScheduleUpdate { 3011 attribute ActionId { UID }, 3012 attribute Parameters { text }?, 3013 attribute Frequency { text }?, 3014 attribute ProcessName { ScheduledJob }, 3015 element.FirstRunDate, 3016 element.LastRunDate?, 3017 element.AuditText? 3018 } 3020 6.9.17.2. Response 3022 The response to a ScheduleUpdate request will be either an Error 3023 (Section 7.8) element or a Schedule (Section 7.14) element with the 3024 new scheduled job details. 3026 6.9.18. BillingAmountUpdate 3028 The BillingAmountUpdate request allows the registry to set a new per- 3029 domain monthly charge for registered domains within the SRS. 3031 Each change to the monthly charge MUST also include a date that the 3032 new charge will become effective. SRS implementations SHOULD ensure 3033 that the effective date is not in the past (that is, charges should 3034 not be altered retroactively). Future billing amount changes may be 3035 amended by issuing a new BillingAmountUpdate request with the same 3036 effective date. 3038 If the request succeeds, the response will provide a list of all 3039 stored billing amounts and their effective dates. On failure an 3040 error response is returned. 3042 6.9.18.1. Request 3044 The request must specify: 3046 +-----------+-------------------------------------------------------+ 3047 | Attribute | Description | 3048 +-----------+-------------------------------------------------------+ 3049 | ActionId | An action identifier. This is a unique identifier for | 3050 | | the request to the SRS server. | 3051 +-----------+-------------------------------------------------------+ 3053 The BillingAmountUpdate request must also include a BillingAmount 3054 (Section 7.3) element specifying the new per-domain monthly charge 3055 and the effective date for the new charge. 3057 Syntax: 3059 element.BillingAmountUpdate = 3060 element BillingAmountUpdate { 3061 attribute ActionId { UID }, 3062 element.BillingAmount 3063 } 3065 Example: 3067 3068 3069 3071 3072 3074 6.9.18.2. Response 3076 The response to a BillingAmountUpdate request will be either an Error 3077 (Section 7.8) element or a set of BillingAmount (Section 7.3) 3078 elements, one for each billing amount in the history of the SRS 3079 server and the new value. 3081 Example: 3083 3085 3086 3088 3089 3090 3092 3093 3094 3096 3097 3098 3100 3101 3103 6.9.19. SysParamsCreate 3105 The SysParamsCreate request allows the registry to add configurable 3106 parameters to the SRS server. 3108 6.9.19.1. Request 3110 The request must specify: 3112 +-----------+-------------------------------------------------------+ 3113 | Attribute | Description | 3114 +-----------+-------------------------------------------------------+ 3115 | ActionId | An action identifier. This is a unique identifier for | 3116 | | the request to the SRS server. | 3117 +-----------+-------------------------------------------------------+ 3119 The SysParamsCreate request must include one or more SysParam 3120 (Section 7.15) elements containing the new parameters and their 3121 details. 3123 The SysParamsCreate request may also include an AuditText 3124 (Section 8.7) element giving further details of the action. 3126 Syntax: 3128 element.SysParamsCreate = 3129 element SysParamsCreate { 3130 attribute ActionId { UID }, 3131 element.SysParam+, 3132 element.AuditText? 3133 } 3135 6.9.19.2. Response 3137 The response to a SysParamsCreate request will be either an Error 3138 (Section 7.8) element or a set of SysParam (Section 7.15) elements, 3139 one for each new system parameter. 3141 6.9.20. SysParamsQry 3143 The SysParamsQry request allows the registry to obtain a list of the 3144 current state of the SRS server's configurable parameters. 3146 6.9.20.1. Request 3148 The request may specify: 3150 +-----------+-------------------------------------------------------+ 3151 | Attribute | Description | 3152 +-----------+-------------------------------------------------------+ 3153 | QryId | A query identifier. This has no meaning within the | 3154 | | SRS; if provided, it will be returned in the response | 3155 | | to this request. | 3156 +-----------+-------------------------------------------------------+ 3158 Syntax: 3160 element.SysParamsQry = 3161 element SysParamsQry { 3162 attribute QryId { UID }?, 3163 empty 3164 } 3166 6.9.20.2. Response 3168 The response to a SysParamsQry request will be either an Error 3169 (Section 7.8) element or a set of SysParam (Section 7.15) elements, 3170 one for each user-configurable system parameter in the SRS server 3171 implementation. 3173 6.9.21. SysParamsUpdate 3175 The SysParamsUpdate request allows the registry to update the value 3176 of any user configurable parameters in the SRS server implementation. 3178 6.9.21.1. Request 3180 The request must specify: 3182 +-----------+-------------------------------------------------------+ 3183 | Attribute | Description | 3184 +-----------+-------------------------------------------------------+ 3185 | ActionId | An action identifier. This is a unique identifier for | 3186 | | the request to the SRS server. | 3187 +-----------+-------------------------------------------------------+ 3189 The SysParamsUpdate request must include one or more SysParam 3190 (Section 7.15) elements containing the new parameter details. 3192 The SysParamsUpdate request may also include an AuditText 3193 (Section 8.7) element giving further details of the configuration 3194 changes. 3196 Syntax: 3198 element.SysParamsUpdate = 3199 element SysParamsUpdate { 3200 attribute ActionId { UID }, 3201 element.SysParam+, 3202 element.AuditText? 3203 } 3205 6.9.21.2. Response 3207 The response to a SysParamsUpdate request will be either an Error 3208 (Section 7.8) element or a set of SysParam (Section 7.15) elements, 3209 one for each changed system parameter, showing the new value. 3211 7. SRS Response Types 3213 7.1. AccessControlList 3215 The AccessControlList element is used by the SRS to return details of 3216 the registry's access control lists. 3218 The AccessControlList element must specify: 3220 +-----------+-------------------------------------------------------+ 3221 | Attribute | Description | 3222 +-----------+-------------------------------------------------------+ 3223 | Resource | A text string. The system that the access control | 3224 | | list is intended to be applied to. | 3225 | List | A text string. A descriptive name for the access | 3226 | | control list; for example, "whitelist". | 3227 | Type | A text string. The type of access control list that | 3228 | | is being returned. Registries may maintain different | 3229 | | lists for different purposes, for example, blacklists | 3230 | | and whitelists for controlling access. | 3231 +-----------+-------------------------------------------------------+ 3233 Additionally, the AccessControlList element may specify: 3235 +------------+------------------------------------------------------+ 3236 | Attribute | Description | 3237 +------------+------------------------------------------------------+ 3238 | Size or | An integer. For a list query, the Size attribute | 3239 | SizeChange | should be included, providing the number of entries | 3240 | | in the list. For a list change, the SizeChange | 3241 | | element should be included, providing the number of | 3242 | | list entries changed (positive for additions, | 3243 | | negative for deletions). | 3244 +------------+------------------------------------------------------+ 3246 The AccessControlList element may include one or more 3247 AccessControlListEntry (Section 8.2) elements. 3249 Syntax: 3251 element.AccessControlList = 3252 element AccessControlList { 3253 attribute Resource { text }, 3254 attribute List { text }, 3255 ( attribute Size { Number } 3256 | attribute SizeChange { Number } )?, 3257 attribute Type { text }?, 3258 element.AccessControlListEntry* 3259 } 3261 Example: 3263 3265 3267 3269 3271 3273 7.2. AckResponse 3275 The AckResponse element is used by the SRS to return the result of an 3276 AckMessage request. 3278 The AckResponse element must specify: 3280 +------------------------+------------------------------------------+ 3281 | Attribute | Description | 3282 +------------------------+------------------------------------------+ 3283 | OriginatingRegistrarId | The unique identifier for the user that | 3284 | | submitted the AckMessage request to the | 3285 | | SRS server. | 3286 | TransId | The identifier for the transaction | 3287 | | submitted by the user that originated | 3288 | | the request. | 3289 | Remaining | An integer. The number of messages for | 3290 | | the originating user that have not yet | 3291 | | been acknowledged. | 3292 +------------------------+------------------------------------------+ 3294 Definition: 3296 element.AckResponse = 3297 element AckResponse { 3298 attribute OriginatingRegistrarId { RegistrarId }, 3299 attribute TransId { UID }, 3300 attribute Remaining { Number } 3301 } 3303 7.3. BillingAmount 3305 The BillingAmount element is used by the SRS to return details of the 3306 amount charged for registered domains and the date that the amount 3307 became effective in the SRS. 3309 The element content consists of an Amount attribute containing the 3310 charge in the registry's chosen currency, and may also include an 3311 EffectiveDate (Section 8.38) element containing the date and time 3312 that the charge became (or will become, for future changes) 3313 effective. The Amount value should be validated as an acceptable 3314 currency value. 3316 The BillingAmount element must specify: 3318 +-----------+-------------------------------------------------------+ 3319 | Attribute | Description | 3320 +-----------+-------------------------------------------------------+ 3321 | Amount | A numeric currency value. The amount charged per-term | 3322 | | for domain registration and renewal. | 3323 +-----------+-------------------------------------------------------+ 3325 The BillingAmount element may also include an EffectiveDate 3326 (Section 8.38) element. 3328 Syntax: 3330 element.BillingAmount = 3331 element BillingAmount { 3332 attribute Amount { Dollars }, 3333 element.EffectiveDate? 3334 } 3336 Example: 3338 3339 3341 3343 7.4. BillingTrans 3345 The BillingTrans element is used by the SRS to return details of 3346 charges that have been incurred by registrars over a given billing 3347 period. 3349 The BillingTrans element must specify: 3351 +-------------+-----------------------------------------------------+ 3352 | Attribute | Description | 3353 +-------------+-----------------------------------------------------+ 3354 | RegistrarId | A user identifier. The identifier of the registrar | 3355 | | that manages the domain that the billing amount | 3356 | | relates to. | 3357 | Type | A text string. The type of transaction that the | 3358 | | billing amount relates to, for instance, "Create" | 3359 | | or "Renew" a domain. | 3360 | TransStatus | A text string. The status of the billing | 3361 | | transaction; valid values are defined by the | 3362 | | BillStatus (Section 9.2.2) entity. | 3363 | DomainName | A text string. The domain name that the billing | 3364 | | transaction relates to. | 3365 | BillingTerm | An integer. The number of months of payment for | 3366 | | which the billing transaction was issued. | 3367 | Amount | A numeric currency value. The amount of money | 3368 | | attached to the billing transaction. | 3369 +-------------+-----------------------------------------------------+ 3371 The BillingTrans element may also specify: 3373 +---------------+---------------------------------------------------+ 3374 | Attribute | Description | 3375 +---------------+---------------------------------------------------+ 3376 | RegistrantRef | A customer identifier. A reference assigned to | 3377 | | the registrant by the registrar. | 3378 | InvoiceId | An invoice identifier. The identifier from the | 3379 | | registry's accounting system that relates to the | 3380 | | billing transaction. | 3381 +---------------+---------------------------------------------------+ 3383 The BillingTrans element must also include a TransDate (Section 8.38) 3384 element containing the date on which the billing transaction (domain 3385 creation, renewal, etc.) occurred, a BillPeriodStart (Section 8.38) 3386 and a BillPeriodEnd (Section 8.38) element containing the start and 3387 end of the billing period to which the transaction belongs. The 3388 element may include an InvoiceDate (Section 8.38) element containing 3389 the date of the invoice to which the billing transaction has been 3390 assigned. 3392 Syntax: 3394 element.BillingTrans = 3395 element BillingTrans { 3396 attribute RegistrarId { RegistrarId }, 3397 attribute Type { text }, 3398 attribute TransStatus { BillStatus }, 3399 attribute DomainName { DomainName }, 3400 attribute RegistrantRef { UID }?, 3401 attribute BillingTerm { Term }, 3402 attribute InvoiceId { UID }?, 3403 attribute Amount { Dollars }, 3404 element.InvoiceDate?, 3405 element.TransDate, 3406 element.BillPeriodStart, 3407 element.BillPeriodEnd 3408 } 3410 Example: 3412 3415 3417 3419 3421 3423 7.5. DeferredRegistrarIncome 3425 The DeferredRegistrarIncome element allows the SRS server to return 3426 details of deferred income that may be realised in a particular month 3427 by considering the domain registration payments that have been made 3428 by a registrar up to and including a base month. 3430 The DeferredRegistrarIncome element must specify: 3432 +--------------+----------------------------------------------------+ 3433 | Attribute | Description | 3434 +--------------+----------------------------------------------------+ 3435 | RegistrarId | A user identifier. The identifier of the registrar | 3436 | | that the deferred income amount relates to. | 3437 | BilledAmount | A numeric currency value. The amount of a billed | 3438 | | amount that can be realised in the income month, | 3439 | | considering all billing transactions up to and | 3440 | | including the base month. | 3441 | BilledCount | An integer. | 3442 | BaseMonth | An integer. The latest month (January = 1, | 3443 | | December = 12) of the base year to consider | 3444 | | billing transactions for. | 3445 | BaseYear | An integer. The latest year to consider billing | 3446 | | transactions for. | 3447 | IncomeMonth | An integer. The month (January = 1, December = 12) | 3448 | | of the income year. | 3449 | IncomeYear | An integer. The year to calculate deferred income | 3450 | | for. | 3451 +--------------+----------------------------------------------------+ 3453 Syntax: 3455 element.DeferredRegistrarIncome = 3456 element DeferredRegistrarIncome { 3457 attribute BaseMonth { text }, 3458 attribute BaseYear { text }, 3459 attribute IncomeMonth { text }, 3460 attribute IncomeYear { text }, 3461 attribute RegistrarId { RegistrarId }, 3462 attribute BilledAmount { Dollars }, 3463 attribute BilledCount { Number }, 3464 empty 3465 } 3467 7.6. Domain 3469 The Domain element can contain full details of a domain and its 3470 status within the SRS server and is used for creating and updating 3471 domains, as well as for reporting the current domain details. 3473 The Domain element must specify: 3475 +------------+------------------------------------------------------+ 3476 | Attribute | Description | 3477 +------------+------------------------------------------------------+ 3478 | DomainName | A text string. The domain name. Must conform to the | 3479 | | format and syntax in RFC 1035 [RFC1035], RFC 1123 | 3480 | | [RFC1123], and RFC 2181 [RFC2181]. | 3481 +------------+------------------------------------------------------+ 3483 The Domain element may also specify: 3485 +----------------------+--------------------------------------------+ 3486 | Attribute | Description | 3487 +----------------------+--------------------------------------------+ 3488 | Delegate | A boolean value. Indicates whether the | 3489 | | domain should be delegated to appear in | 3490 | | the DNS. | 3491 | DomainNameUnicode | A UTF-8 text string. The domain name in | 3492 | | the script intended by the registrant. | 3493 | | Used for internationalized domain names | 3494 | | (IDNs). | 3495 | DomainNameUnicode | A text string. For domain names using | 3496 | | non-ASCII characters, this is the domain | 3497 | | name in the script intended by the | 3498 | | registrant. Used for internationalized | 3499 | | domain names (IDNs). | 3500 | DomainNameUnicodeHex | A text string. For domain names using | 3501 | | non-ASCII characters, this is the domain | 3502 | | name encoded in a unicode hex format (for | 3503 | | example, mori.example.org). Used | 3504 | | for internationalized domain names (IDNs). | 3505 | DomainNameLanguage | A text string. For domain names using | 3506 | | non-ASCII characters, this contains the | 3507 | | language and script for the unicode domain | 3508 | | name. For example, ".NZ LATIN" | 3509 | RegistrantRef | A customer identifier. Assigned to the | 3510 | | registrant by the registrar. | 3511 | RegistrarId | A user identifier. The unique identifier | 3512 | | for the registrar that manages the domain. | 3513 | RegistrarName | A text string. The name of the registrar | 3514 | | that manages the domain. | 3515 | Status | A text string. The registration status of | 3516 | | the domain. Valid values are defined by | 3517 | | the RegDomainStatus (Section 9.9.1) | 3518 | | entity. | 3519 | Term | A numeric value. The number of months to | 3520 | | bill when the domain is renewed. | 3521 | UDAI | A text string. The UDAI to be checked. | 3522 +----------------------+--------------------------------------------+ 3523 The Domain element may also include elements to define the contact 3524 details, name servers for the domain and various dates relating to 3525 the registration. These optional elements are: 3527 o NameServers (Section 8.23) 3529 o RegistrantContact (Section 8.11) 3531 o RegistrarPublicContact (Section 8.11) 3533 o AdminContact (Section 8.11) 3535 o TechnicalContact (Section 8.11) 3537 o BilledUntil (Section 8.38) 3539 o RegisteredDate (Section 8.38) 3541 o CancelledDate (Section 8.38) 3543 o LockedDate (Section 8.38) 3545 o AuditDetails (Section 8.6) 3546 Syntax: 3548 element.Domain = 3549 element Domain { 3550 attribute DomainName { DomainName }, 3551 attribute DomainNameUnicode { DomainNameUnicode }?, 3552 attribute DomainNameUnicodeHex { DomainNameUnicodeHex }?, 3553 attribute DomainNameLanguage { DomainNameLanguage }?, 3554 attribute RegistrantRef { UID }?, 3555 attribute RegistrarName { text }?, 3556 attribute Status { DomainStatus }?, 3557 attribute Delegate { Boolean }?, 3558 attribute Term { Term }?, 3559 attribute RegistrarId { RegistrarId }?, 3560 attribute UDAI { UID }?, 3561 element.NameServers?, 3562 element.RegistrantContact?, 3563 element.RegistrarPublicContact?, 3564 element.AdminContact?, 3565 element.TechnicalContact?, 3566 element.BilledUntil?, 3567 element.RegisteredDate?, 3568 element.CancelledDate?, 3569 element.LockedDate?, 3570 element.AuditDetails? 3571 } 3573 Example: 3575 3578 3579 3580 3581 3582 3584 3586 3587 3588 3589 3591 3593 3594 3595 3596 3598 3600 3601 3602 3603 3605 3607 3609 3610 3612 3613 Domain created for John Smith, RS8974 3614 3615 3617 7.7. DomainTransfer 3619 The DomainTransfer element is used by the SRS to inform a registrar 3620 of the transfer of one of the domains that they were the managing 3621 registrar for. This element will be returned in response to a 3622 GetMessages (Section 6.5.1) request. 3624 The DomainTransfer element must specify: 3626 +---------------+---------------------------------------------------+ 3627 | Attribute | Description | 3628 +---------------+---------------------------------------------------+ 3629 | RegistrarName | A text string. The name of the registrar that the | 3630 | | domain has been transferred to. | 3631 | Minute | An integer value. The minute in which the domain | 3632 | | transfer occurred. | 3633 | Hour | An integer value. The hour in which the domain | 3634 | | transfer occurred. | 3635 | Day | An integer value. The day in which the domain | 3636 | | transfer occurred. | 3637 | Month | An integer value. The month in which the domain | 3638 | | transfer occurred. | 3639 | Year | An integer value. The year in which the domain | 3640 | | transfer occurred. | 3641 +---------------+---------------------------------------------------+ 3643 The DomainTransfer element may also specify: 3645 +----------------+--------------------------------------------------+ 3646 | Attribute | Description | 3647 +----------------+--------------------------------------------------+ 3648 | Second | An integer value. The second in which the domain | 3649 | | transfer occurred. | 3650 | TimeZoneOffset | An integer value. The TimeZoneOffset from UTC of | 3651 | | the SRS server that processed the domain | 3652 | | transfer. | 3653 +----------------+--------------------------------------------------+ 3655 The DomainTransfer element must also include one or more 3656 TransferredDomain (Section 8.39) elements to define the domain names 3657 that have been transferred to another registrar. 3659 Syntax: 3661 element.DomainTransfer = 3662 element DomainTransfer { 3663 attribute RegistrarName { text }, 3664 TimeStamp, 3665 element.TransferredDomain+ 3666 } 3668 Example: 3670 3672 domain.co.example 3673 3675 7.8. Error 3677 The Error element may be used to present details of errors that occur 3678 when processing individual requests or a whole transaction. 3680 The Error element must specify: 3682 +-----------+----------------------------------------------------+ 3683 | Attribute | Description | 3684 +-----------+----------------------------------------------------+ 3685 | ErrorId | SRS system identifier for the error that occurred. | 3686 | Severity | Indicative severity level for the error. | 3687 | Hint | SRS server hint for addressing the error. | 3688 +-----------+----------------------------------------------------+ 3690 The Error element also contains a Description (Section 8.15) element 3691 and may also provide ErrorDetails (Section 8.20) elements with extra 3692 description of the error. 3694 Syntax: 3696 element.Error = 3697 element Error { 3698 attribute ErrorId { UID }, 3699 attribute Severity { Number }, 3700 attribute Hint { UID }, 3701 element.Description, 3702 element.ErrorDetails* 3703 } 3705 Example: 3707 3709 Invalid value in field 3710 DomainName 3711 3713 7.9. Handle 3715 The Handle element allows the SRS server to return details associated 3716 with a contact handle. It must include a RegistrarID attribute 3717 referencing the registrar that created the handle. It may also 3718 include the ContactAttr (Section 9.4.2) attribute definitions, 3719 Contact (Section 9.4.1) element content, the AuditDetails 3720 (Section 8.6) element referencing the most recent update to the 3721 handle, and the ChangedDomains (Section 8.10) element. 3723 Syntax: 3725 element.Handle = 3726 element Handle { 3727 attribute RegistrarId { RegistrarId } 3728 ContactAttr, 3729 Contact, 3730 element.AuditDetails?, 3731 element.ChangedDomains? 3732 } 3734 Example: 3736 3741 3746 3747 Add handle for ERS Inc. 3748 3749 3751 7.10. Message 3753 The Message element allows the SRS server to return message details 3754 to the user along with an indication of the number of messages 3755 outstanding. The Message response element is used when the 3756 GetMessages (Section 6.5.1) request is used with QueueMode enabled. 3758 It contains a Response (Section 5.2.1) element and has an optional 3759 attribute, Remaining, indicating the number of messages for the 3760 effective registrar of the request that have not yet been 3761 acknowledged, and which are not included in the current action 3762 response. 3764 Syntax: 3766 element.Message = 3767 element Message { 3768 element.Response, 3769 attribute Remaining { Number }? 3770 } 3772 7.11. RawRequest and RawResponse 3774 The RawRequest and RawResponse elements allow the SRS server to 3775 return the details of a previous request and response. The details 3776 are returned as XML (Section 8.40) and Signature (Section 8.37) 3777 elements with content encoded as parsed character data. 3779 Syntax: 3781 element.RawRequest = 3782 element RawRequest { 3783 element.XML, 3784 element.Signature 3785 } 3787 element.RawResponse = 3788 element RawResponse { 3789 element.XML, 3790 element.Signature 3791 } 3793 Example: 3795 3797 3798 <NZSRSRequest VerMajor="2" ... 3799 -----BEGIN PGP SIGNATURE-----... 3800 3801 3802 <NZSRSResponse VerMajor="2" ... 3803 -----BEGIN PGP SIGNATURE-----... 3804 3805 3807 7.12. Registrar 3809 The Registrar element is used to contain the details for a registrar. 3811 The Registrar element must specify: 3813 +-------------+-----------------------------------------------------+ 3814 | Attribute | Description | 3815 +-------------+-----------------------------------------------------+ 3816 | RegistrarId | A user identifier. The unique number to be assigned | 3817 | | to the new registrar. | 3818 | Name | A text string. The name of the registrar. | 3819 | AccRef | A text string. The registrar's identifier in the | 3820 | | registry's accounting system. | 3821 +-------------+-----------------------------------------------------+ 3823 The Registrar element may also specify: 3825 +-----------+-------------------------------------------------------+ 3826 | Attribute | Description | 3827 +-----------+-------------------------------------------------------+ 3828 | URL | A text string. The public web site address for the | 3829 | | registrar. | 3830 +-----------+-------------------------------------------------------+ 3832 The Registrar element must also include a RegistrarPublicContact 3833 (Section 8.11) element specifying the public contact details for the 3834 registrar, a RegistrarSRSContact (Section 8.11) element specifying 3835 the contact details for the registry's use, a DefaultTechnicalContact 3836 (Section 8.11) element which will be applied to domains registered 3837 through the registrar if no other technical contact is specified, and 3838 an EncryptKeys (Section 8.18) element providing one or more public 3839 keys that the registrar will use. 3841 The Registrar element may also include the Allowed2LDs (Section 8.5) 3842 element specifying the subdomains managed by the registry in which 3843 the registrar may manage domain registrations, a Roles (Section 8.32) 3844 element defining system access roles for the registrar, and the 3845 AuditText (Section 8.7) element to provide details on the addition of 3846 the new registrar account. 3848 Syntax: 3850 element.Registrar = 3851 element Registrar { 3852 attribute RegistrarId { RegistrarId }, 3853 attribute Name { text }, 3854 attribute AccRef { text }, 3855 attribute URL { text }?, 3856 element.RegistrarPublicContact, 3857 element.RegistrarSRSContact, 3858 element.DefaultTechnicalContact, 3859 element.EncryptKeys, 3860 element.EPPAuth?, 3861 element.Allowed2LDs?, 3862 element.Roles?, 3863 element.AuditDetails? 3864 } 3866 Example: 3868 3869 3871 3873 3874 3875 3876 3878 3880 3881 3882 3883 3885 3887 3888 3889 3890 3891 -----BEGIN PGP PUBLIC KEY BLOCK----- 3892 Version: GnuPG v1.4.6 (GNU/Linux) 3894 mQGiBEfpmesRBADBkcApvlyH67pTIDObNgUm40u5WuLMkBvP8a9RWJNACdbUjMj+ 3895 ... 3897 =nDaR 3898 -----END PGP PUBLIC KEY BLOCK----- 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3918 3919 3921 3922 Update contact details 3923 3924 3926 7.13. RunLog 3928 The RunLog element is used to provide details of log messages from 3929 processes, such as batch processes, that interact with the SRS 3930 server. This includes the scheduled job processes that support the 3931 running of the registry, as well as any other systems that wish to 3932 log messages in the SRS server log. 3934 The RunLog element must specify: 3936 +--------------+----------------------------------------------------+ 3937 | Attribute | Description | 3938 +--------------+----------------------------------------------------+ 3939 | ActionStatus | A text string. The status of the process that | 3940 | | created the log. | 3941 | ProcessName | A text string. The name of the process that | 3942 | | created the run log entry. | 3943 +--------------+----------------------------------------------------+ 3944 The RunLog element may also specify: 3946 +------------+------------------------------------------------------+ 3947 | Attribute | Description | 3948 +------------+------------------------------------------------------+ 3949 | Parameters | A text string. The parameters with which the process | 3950 | | was called. | 3951 | Control | A text string. A free-text field for storing extra | 3952 | | information about the process run. For example, SRS | 3953 | | server implementations may store the name of the | 3954 | | server that executed the process and the completion | 3955 | | time of the process here. | 3956 +------------+------------------------------------------------------+ 3958 Syntax: 3960 element.RunLog = 3961 element RunLog { 3962 attribute ProcessName { text }, 3963 attribute Parameters { text }?, 3964 attribute ActionStatus { text }, 3965 attribute Control { text }?, 3966 element.RunLogTimeStamp, 3967 element.RunLogDetails? 3968 } 3970 7.14. Schedule 3972 The Schedule element is used to return details of scheduled events 3973 within the SRS system. 3975 The Schedule element must specify: 3977 +---------------------+---------------------------------------------+ 3978 | Attribute | Description | 3979 +---------------------+---------------------------------------------+ 3980 | ProcessName | A text string. The name of the scheduled | 3981 | | job process. | 3982 | Frequency | An text string. The delay between repeat | 3983 | | executions of the process, after the | 3984 | | initial run date. | 3985 | CreateByRegistrarId | A user identifier. The registry's registrar | 3986 | | identifier that was used to create the | 3987 | | scheduled job. | 3988 | CreateActionId | An action identifier. This is the unique | 3989 | | identifier for the request to the SRS | 3990 | | server that created the scheduled job. | 3991 +---------------------+---------------------------------------------+ 3992 The Schedule element may also specify: 3994 +---------------------+---------------------------------------------+ 3995 | Attribute | Description | 3996 +---------------------+---------------------------------------------+ 3997 | Parameters | A text string. The parameters to be passed | 3998 | | to the process when it is executed. | 3999 | CancelByRegistrarId | A user identifier. The registry's registrar | 4000 | | identifier that was used to cancel the | 4001 | | scheduled job. | 4002 | CancelActionId | An action identifier. This is the unique | 4003 | | identifier for the request to the SRS | 4004 | | server that cancelled the scheduled job. | 4005 +---------------------+---------------------------------------------+ 4007 The Schedule element must also include a FirstRunDate (Section 8.38) 4008 element specifying the first date and time at which the process 4009 should be executed, and may also include a FinalRunDate 4010 (Section 8.38) element specifying the last time at which the process 4011 should run (for a repeating process), a CreateAuditText 4012 (Section 8.13) element providing details on the creation of the 4013 scheduled job entry, and a CancelAuditText (Section 8.9) element 4014 providing details on the cancellation of the scheduled job entry. 4016 Syntax: 4018 element.Schedule = 4019 element Schedule { 4020 attribute ProcessName { ScheduledJob }, 4021 attribute Frequency { text }, 4022 attribute Parameters { text }?, 4023 attribute CreateByRegistrarId { UID }, 4024 attribute CreateActionId { UID }, 4025 attribute CancelByRegistrarId { UID }?, 4026 attribute CancelActionId { UID }?, 4027 element.FirstRunDate, 4028 element.FinalRunDate?, 4029 element.CreateAuditText?, 4030 element.CancelAuditText? 4031 } 4033 Example: 4035 4038 4040 Registry regular zone build 4041 4043 7.15. SysParam 4045 The SysParam element is used to return details of system settings and 4046 any audit details relating to them. 4048 The SysParam element must specify: 4050 +-----------+---------------------------------------------------+ 4051 | Attribute | Description | 4052 +-----------+---------------------------------------------------+ 4053 | Name | A text string. The name of the system parameter. | 4054 +-----------+---------------------------------------------------+ 4056 The SysParam element must include a ParamValue (Section 8.25) element 4057 containing the value of the system parameter, and may include an 4058 AuditDetails (Section 8.6) element containing details about the most 4059 recent change to the parameter. 4061 Syntax: 4063 element.SysParam = 4064 element SysParam { 4065 attribute Name { text }, 4066 element.ParamValue, 4067 element.AuditDetails? 4068 } 4070 7.16. UDAIValid 4072 The UDAIValid response element is used to return the result of 4073 checking the validity of a UDAI string for a given DomainName. The 4074 element has a single boolean attribute containing the result of the 4075 UDAI validation. 4077 The UDAIValid element must specify: 4079 +-----------+-------------------------------------------------------+ 4080 | Attribute | Description | 4081 +-----------+-------------------------------------------------------+ 4082 | Valid | A boolean value. The validity status of the tested | 4083 | | UDAI value. | 4084 +-----------+-------------------------------------------------------+ 4086 Syntax: 4088 element.UDAIValid = 4089 element UDAIValid { 4090 attribute Valid { Boolean }, 4091 empty 4092 } 4094 Example: 4096 4098 8. Information Elements 4100 This section documents elements from the schema that are not used as 4101 request or response elements. These information elements contain 4102 data passed between the client and server during normal registry 4103 usage. The elements are used by requests and responses throughout 4104 the system. 4106 8.1. AccessControlListContentFilter 4108 The AccessControlListContentFilter is a simple container for elements 4109 that provide search patterns for access control list data. 4111 Zero or more such filters may be supplied; filters of the same type 4112 logically OR and groups of the distinct types of filters are 4113 logically AND. 4115 Currently supported are AddressFilter (Section 8.4), 4116 RegistrarIdFilter (Section 8.30) and DomainNameFilter (Section 8.16), 4117 which correspond to the three possible data attributes of an 4118 AccessControlListEntry (Section 8.2) 4120 An AccessControlListContentFilter element is used by the 4121 AccessControlList (Section 7.1) element to return details of access 4122 control lists, and by the AccessControlListAdd (Section 6.9.1) and 4123 AccessControlListRemove (Section 6.9.3) queries to specify entries to 4124 add to and remove from access control lists. 4126 Syntax: 4128 AccessControlListContentFilter = 4129 element.DomainNameFilter 4130 | element.RegistrarIdFilter 4131 | element.AddressFilter 4133 8.2. AccessControlListEntry 4135 The AccessControlListEntry contains details for a single entry in the 4136 registry's access control list and may also include an EffectiveDate 4137 (Section 8.38) element containing the date and time that the access 4138 control list entry became effective. It has several attributes 4139 allowed in certain combinations: 4141 Address: An identifier to be used to match and control client access 4142 to network services (for example, an IP address or a range of IP 4143 addresses). 4145 DomainName: A domain name. 4147 RegistrarId: A RegistrarId. 4149 Comment: A brief comment giving the reason for entry in the access 4150 control list. 4152 Currently allowed is DomainName, Address, RegistrarId, and 4153 RegistrarId with either DomainName and Address. One of these 4154 combinations must be satisfied. 4156 The Address may include a network mask length, for example: 4157 192.0.2.32/28 may match addresses on that network, for for example 4158 192.0.2.41, if the list is queried in a properly semantic way, for 4159 example with a AddressFilter (Section 8.4) field in an 4160 AccessControlListQry (Section 6.9.2). 4162 The Comment is an optional element which can be used to maintain a 4163 record of the reason that Addresses were added to the access control 4164 list. 4166 The AccessControlListEntry element is used by the AccessControlList 4167 (Section 7.1) element to return details of access control lists, and 4168 by the AccessControlListAdd (Section 6.9.1) and 4169 AccessControlListRemove (Section 6.9.3) queries to specify entries to 4170 add to and remove from access control lists. 4172 Syntax: 4174 element.AccessControlListEntry = 4175 element AccessControlListEntry { 4176 attribute Address { text }?, 4177 attribute DomainName { text }?, 4178 attribute RegistrarId { RegistrarId }?, 4179 attribute Comment { text }?, 4180 element.EffectiveDate? 4181 } 4183 8.3. ActionIdFilter 4185 The ActionIdFilter element contains a pattern match string to match 4186 against the stored action identifiers of previous requests made to 4187 the SRS. The content should be a valid text filter (Section 10). 4189 Syntax: 4191 element.ActionIdFilter = 4192 element ActionIdFilter { 4193 text 4194 } 4196 8.4. AddressFilter 4198 The AddressFilter element is a simple element that contains parsed 4199 character data. The content of this element is used as a PostgreSQL 4200 inet address, in a contains-or-equals operation, so for example 4201 192.0.2.41 would match a 192.0.2.32/28 datum. 4203 Syntax: 4205 element.AddressFilter = 4206 element AddressFilter { 4207 text 4208 } 4210 8.5. Allowed2LDs 4212 The Allowed2LDs element contains zero or more SecondLD (Section 8.34) 4213 elements and is used to hold a list of the subdomains managed by the 4214 registry for which a registrar may manage domain registrations. 4216 Syntax: 4218 element.Allowed2LDs = 4219 element Allowed2LDs { 4220 element.SecondLD* 4221 } 4223 8.6. AuditDetails 4225 The AuditDetails element contains the registrar and action 4226 identifiers of actions for system auditing purposes. The element may 4227 also contain details of the time of the action in an AuditTime 4228 (Section 8.38) element and a text description in an AuditText 4229 (Section 8.7) element. 4231 Syntax: 4233 element.AuditDetails = 4234 element AuditDetails { 4235 attribute RegistrarId { text }?, 4236 attribute ActionId { UID }?, 4237 element.AuditTime?, 4238 element.AuditText? 4239 } 4241 8.7. AuditText 4243 The AuditText element is a simple element that contains parsed 4244 character data that describes an action in the SRS. For instance, it 4245 may contain a text description of the purpose of a request. 4247 Syntax: 4249 element.AuditText = 4250 element AuditText { 4251 text 4252 } 4254 8.8. AuditTextFilter 4256 The AuditTextFilter element is a simple element that contains parsed 4257 character data. The content of this element is used as a pattern 4258 match string to match against audit text for previous transactions 4259 made to the SRS. The content should be a valid text filter 4260 (Section 10). 4262 Syntax: 4264 element.AuditTextFilter = 4265 element AuditTextFilter { 4266 text 4267 } 4269 8.9. CancelAuditText 4271 The CancelAuditText element is a simple element that contains parsed 4272 character data. The content of this element is used to hold the text 4273 of an audit message provided during cancellation of a scheduled 4274 process in the SRS. It is used by the Schedule (Section 7.14) 4275 response element. 4277 Syntax: 4279 element.CancelAuditText = 4280 element CancelAuditText { 4281 text 4282 } 4284 8.10. ChangedDomains 4286 The ChangedDomains element is a container for Domain (Section 7.6) 4287 elements. It is returned in a Handle (Section 7.9) element when 4288 multiple domains are updated by a HandleUpdate (Section 6.4.2) 4289 request. 4291 Syntax: 4293 element.CancelAuditText = 4294 element CancelAuditText { 4295 text 4296 } 4298 8.11. Contact Details Elements 4300 The SRS protocol employs many contact details elements that all share 4301 a common definition. The contact details elements are: 4303 o AdminContact 4305 o DefaultTechnicalContact 4307 o RegistrantContact 4308 o RegistrarPublicContact 4310 o RegistrarSRSContact 4312 o TechnicalContact 4314 The contact details elements are defined using the Contact 4315 (Section 9.4.1) entity definition for the element content, and the 4316 ContactAttr (Section 9.4.2) entity for the element attribute 4317 definitions. 4319 The contact details elements have Name and Email attributes to store 4320 the contact name and email address; either attribute may be omitted 4321 where appropriate. The contact details elements may also include 4322 elements for PostalAddress (Section 8.26), Phone (Section 8.29), and 4323 Fax (Section 8.29) details. 4325 Syntax: 4327 element.AdminContact = 4328 element AdminContact { 4329 ContactAttr, 4330 Contact 4331 } 4333 element.DefaultTechnicalContact = 4334 element DefaultTechnicalContact { 4335 ContactAttr, 4336 Contact 4337 } 4339 element.RegistrantContact = 4340 element RegistrantContact { 4341 ContactAttr, 4342 Contact 4343 } 4345 element.RegistrarPublicContact = 4346 element RegistrarPublicContact { 4347 ContactAttr, 4348 Contact 4349 } 4351 element.RegistrarSRSContact = 4352 element RegistrarSRSContact { 4353 ContactAttr, 4354 Contact 4355 } 4357 element.TechnicalContact = 4358 element TechnicalContact { 4359 ContactAttr, 4360 Contact 4361 } 4363 Example: 4365 4366 4369 4370 4371 4373 8.12. Contact Details Search Filters 4375 The contact details search filter elements all share a common 4376 definition referenced from the ContactFilter (Section 9.5.1) entity 4377 definition for the element content, and the ContactFilterAttr 4378 (Section 9.5.2) entity for the element attribute definitions. The 4379 contact details filters are used to provide fields for matching 4380 against stored contact details when using the DomainDetailsQry 4381 (Section 6.1.2) request. Only the details provided in the filter are 4382 used to match against stored values in the SRS, this enables general 4383 matches, for instance, to select all domains with a particular 4384 administrative contact name. 4386 The contact details filter elements have the same structure as the 4387 contact details elements. Name and Email attributes specify the 4388 match values for contact name and email address; either attribute may 4389 be omitted where appropriate. The contact details filter elements 4390 may also include filter details elements for PostalAddress 4391 (Section 8.27), Phone (Section 8.29), and Fax (Section 8.29) details. 4393 Syntax: 4395 element.AdminContactFilter = 4396 element AdminContactFilter { 4397 ContactAttrFilter, 4398 ContactFilter 4399 } 4401 element.RegistrantContactFilter = 4402 element RegistrantContactFilter { 4403 ContactAttrFilter, 4404 ContactFilter 4405 } 4407 element.TechnicalContactFilter = 4408 element TechnicalContactFilter { 4409 ContactAttrFilter, 4410 ContactFilter 4411 } 4413 8.13. CreateAuditText 4415 The CreateAuditText element is a simple element that contains parsed 4416 character data. The content of this element is used to hold the text 4417 of an audit message provided during creation of a scheduled process 4418 in the SRS. It is used by the Schedule (Section 7.14) response 4419 element. 4421 Syntax: 4423 element.CreateAuditText = 4424 element CreateAuditText { 4425 text 4426 } 4428 8.14. Date Range Elements 4430 The SRS protocol employs many date range elements that all share a 4431 common definition. The date range elements are: 4433 o AuditTime 4435 o BilledUntilDateRange 4437 o CancelledDateRange 4439 o ChangedInDateRange 4441 o InvoiceDateRange 4443 o LockedDateRange 4445 o LogDateRange 4447 o RegisteredDateRange 4449 o ResultDateRange 4451 o SearchDateRange 4453 o TransDateRange 4455 The content of the date range elements is defined using the DateRange 4456 (Section 9.7.4) entity. The date range elements can contain two 4457 optional elements, a From (Section 8.38) date and a To (Section 8.38) 4458 date, that define the start and end of a range of dates. 4460 If the From date is omitted, SRS implementations SHOULD use the 4461 earliest action in the system as the From date value. If the To date 4462 is omitted, SRS implementation SHOULD use the current date as the To 4463 date value. 4465 Syntax: 4467 element.AuditTime = 4468 element AuditTime { 4469 DateRange 4470 } 4472 element.BilledUntilDateRange = 4473 element BilledUntilDateRange { 4474 DateRange 4475 } 4477 element.CancelledDateRange = 4478 element CancelledDateRange { 4479 DateRange 4480 } 4482 element.ChangedInDateRange = 4483 element ChangedInDateRange { 4484 DateRange 4485 } 4487 element.InvoiceDateRange = 4488 element InvoiceDateRange { 4489 DateRange 4490 } 4492 element.LockedDateRange = 4493 element LockedDateRange { 4494 DateRange 4495 } 4497 element.LogDateRange = 4498 element LogDateRange { 4499 DateRange, 4500 empty 4501 } 4503 element.RegisteredDateRange = 4504 element RegisteredDateRange { 4505 DateRange 4506 } 4508 element.ResultDateRange = 4509 element ResultDateRange { 4510 DateRange 4511 } 4513 element.SearchDateRange = 4514 element SearchDateRange { 4515 DateRange 4516 } 4518 element.TransDateRange = 4519 element TransDateRange { 4520 DateRange 4521 } 4523 Example of a ResultDateRange element: 4525 4526 4528 4530 4532 8.15. Description 4534 The Description element is a simple element that contains parsed 4535 character data. The content of this element is a text description of 4536 an error condition. It is used by the Error (Section 7.8) element. 4538 Syntax: 4540 element.Description = 4541 element Description { 4542 text 4543 } 4545 8.16. DomainNameFilter 4547 The DomainNameFilter element is a simple element that contains parsed 4548 character data. The content of this element is used as a pattern 4549 match string to match against the names of domains registered in the 4550 SRS. The content should be a valid text filter (Section 10) for 4551 matching against domain names. 4553 Syntax: 4555 element.DomainNameFilter = 4556 element DomainNameFilter { 4557 text 4558 } 4560 8.17. EncryptKey 4562 The EncryptKey element is a simple element that contains parsed 4563 character data. The content of this element will be an ASCII armored 4564 copy of a registrar's OpenPGP-compatible public key. It is used by 4565 the EncryptKeys (Section 8.18) element. 4567 Syntax: 4569 element.EncryptKey = 4570 element EncryptKey { 4571 text 4572 } 4574 8.18. EncryptKeys 4576 The EncryptKeys element is a simple simple container for EncryptKey 4577 (Section 8.17) elements. It is used when creating and updating 4578 registrars and when the SRS returns details of registrars. 4580 Syntax: 4582 element.EncryptKeys = 4583 element EncryptKeys { 4584 element.EncryptKey* 4585 } 4587 8.19. EPPAuth 4589 The EPPAuth element is an empty element with a single attribute: 4590 Password. It is used to view and update the password a registrar 4591 uses to connect via the EPP protocol. 4593 The Password can be supplied as a Unix-style hashed password of the 4594 form "$5$saltstring$hash", if so SHA-256 [FIPS.180-2.2002] and a salt 4595 must be used. Plain text may be provided instead (defined as not 4596 looking like a Unix-style hashed password at the start), which will 4597 be hashed. 4599 Once set, the hash will be returned in the Password attribute. 4601 Syntax: 4603 element.EPPAuth = 4604 element EPPAuth { 4605 attribute Password { text } 4606 } 4608 8.20. ErrorDetails 4610 The ErrorDetails element is a simple element that contains parsed 4611 character data. The content of this element is a text description 4612 providing further details about an error condition. It is used by 4613 the Error (Section 7.8) element. 4615 Syntax: 4617 element.ErrorDetails = 4618 element ErrorDetails { 4619 text 4620 } 4622 8.21. FieldList 4624 The FieldList element is an empty element with a set of Boolean 4625 (Section 9.3.3) attributes. It is used in the DomainDetailsQry 4626 (Section 6.1.2) request to specify the domain details to return for 4627 matching domains in the SRS. 4629 The domain details that may be requested and their FieldList 4630 attributes are: 4632 Status: The registration status of the domain ("Active" or 4633 "PendingRelease"). 4635 NameServers: The list of name servers that the domain is delegated 4636 to. 4638 RegisteredDate: The date and time that the domain was registered. 4640 AdminContact: The domain's administrative contact details. 4642 RegistrantContact: The domain's registrant contact details. 4644 TechnicalContact: The domain's technical contact details. 4646 LockedDate: The date that a locked domain was locked. 4648 Delegate: Whether the domain is delegated in the DNS system. 4650 RegistrarId: The registry-assigned registrar number. 4652 RegistrarName: The name of the registrar that manages the domain. 4654 RegistrantRef: The personal reference for the registrant of the 4655 domain. 4657 LastActionId: The unique identifier for the last transaction that 4658 amended the domain details in the SRS. 4660 ChangedByRegistrarId: The identifier of the registrar that last 4661 updated the domain. 4663 Term: The billing term for the domain registration. 4665 BilledUntil: The date and time that the domain has been billed 4666 until. 4668 CancelledDate: The date that a cancelled domain registration was 4669 cancelled. 4671 AuditText: The audit text for changes to the domain. This is an 4672 optional reference for the user. 4674 EffectiveFrom: The date that this domain record was replaced. 4676 Syntax: 4678 element.FieldList = 4679 element FieldList { 4680 attribute Status { Boolean }?, 4681 attribute NameServers { Boolean }?, 4682 attribute RegistrantContact { Boolean }?, 4683 attribute RegisteredDate { Boolean }?, 4684 attribute AdminContact { Boolean }?, 4685 attribute TechnicalContact { Boolean }?, 4686 attribute LockedDate { Boolean }?, 4687 attribute Delegate { Boolean }?, 4688 attribute RegistrarId { Boolean }?, 4689 attribute RegistrarName { Boolean }?, 4690 attribute RegistrantRef { Boolean }?, 4691 attribute LastActionId { Boolean }?, 4692 attribute ChangedByRegistrarId { Boolean }?, 4693 attribute Term { Boolean }?, 4694 attribute BilledUntil { Boolean }?, 4695 attribute CancelledDate { Boolean }?, 4696 attribute AuditText { Boolean }?, 4697 attribute EffectiveFrom { Boolean }?, 4698 empty 4699 } 4701 8.22. HandleIdFilter 4703 The HandleIdFilter element contains a pattern match string to match 4704 against the stored handles. The content should be a valid text 4705 filter (Section 10). 4707 Syntax: 4709 element.HandleIdFilter = 4710 element HandleIdFilter { 4711 text 4712 } 4714 8.23. NameServers 4716 The NameServers element is a simple container for Server 4717 (Section 8.35) elements. It is used when creating and updating 4718 domains and when the SRS returns details of the name servers for 4719 domains. SRS implementations MAY set a limit on the number of server 4720 elements that can be provided. 4722 Syntax: 4724 element.NameServers = 4725 element NameServers { 4726 element.Server* 4727 } 4729 8.24. NameServerFilter 4731 The NameServerFilter element is a simple container for ServerFilter 4732 (Section 8.36) elements. It is used in the DomainDetailsQry 4733 (Section 6.1.2) request to specify name server details to match 4734 against the details of domains in the SRS. 4736 If multiple ServerFilter elements are provided, the SRS should return 4737 domain results that match any of the provided filters (assuming that 4738 other filter restrictions are also met). 4740 Syntax: 4742 element.NameServerFilter = 4743 element NameServerFilter { 4744 element.ServerFilter+ 4745 } 4747 8.25. ParamValue 4749 The ParamValue element is a simple element that contains parsed 4750 character data. The content of this element is the value of an SRS 4751 system parameter. It is used by the SysParam (Section 7.15) element. 4753 Syntax: 4755 element.ParamValue = 4756 element ParamValue { 4757 text 4758 } 4760 8.26. PostalAddress 4762 The PostalAddress element is an empty element with attributes for 4763 describing postal address details. SRS implementations SHOULD 4764 validate the CountryCode as a valid ISO 3166 [ISO.3166.1988] two- 4765 letter country code. 4767 Syntax: 4769 element.PostalAddress = 4770 element PostalAddress { 4771 attribute Address1 { text }?, 4772 attribute Address2 { text }?, 4773 attribute City { text }?, 4774 attribute Province { text }?, 4775 attribute CountryCode { text }?, 4776 attribute PostalCode { text }?, 4777 empty 4778 } 4780 8.27. PostalAddressFilter 4782 The PostalAddressFilter element is an empty element with attributes 4783 for describing postal address details to match against details held 4784 by the SRS. 4786 Syntax: 4788 element.PostalAddressFilter = 4789 element PostalAddressFilter { 4790 attribute Address1 { text }?, 4791 attribute Address2 { text }?, 4792 attribute City { text }?, 4793 attribute Province { text }?, 4794 attribute CountryCode { text }?, 4795 attribute PostalCode { text }?, 4796 empty 4797 } 4799 8.28. TypeFilter 4801 The TypeFilter element is an empty element with a single attribute, 4802 Type. It is used to specify message types when retrieving messages 4803 from the SRS. 4805 The Type attribute must be a valid GetMessagesTypes (Section 9.11.1) 4806 value. 4808 Syntax: 4810 element.TypeFilter = 4811 element TypeFilter { 4812 attribute Type { GetMessagesTypes } 4813 } 4815 8.29. Telephone Number Details 4817 There are two telephone number details elements that share a common 4818 definition: 4820 o Fax 4822 o Phone 4824 The telephone number details elements are empty elements that use the 4825 PhoneAttr (Section 9.17.1) entity for attribute declarations. 4827 Syntax: 4829 element.Fax = 4830 element Fax { 4831 PhoneAttr, 4832 empty 4833 } 4835 element.Phone = 4836 element Phone { 4837 PhoneAttr, 4838 empty 4839 } 4841 8.30. RegistrarIdFilter 4843 The RegistrarIdFilter element is a simple element that contains 4844 parsed character data. The content of this element is used as a 4845 RegistrarId. The purpose in making this an element is so that 4846 multiple values can be provided. 4848 Syntax: 4850 element.RegistrarIdFilter = 4851 element RegistrarIdFilter { 4852 text 4853 } 4855 8.31. Role 4857 The Role element is an empty element. It has a single attribute, 4858 RoleName, that must contain a value as defined by the Role 4859 (Section 9.15.1) entity. 4861 Syntax: 4863 Role = 4864 "Registrar" 4865 | "Registry" 4866 | "Whois" 4867 | "Query" 4868 | "CreateDomain" 4869 | "UpdateDomain" 4870 | "TransferDomain" 4871 | "CancelDomain" 4872 | "UncancelDomain" 4873 | "UpdateRegistrar" 4874 | "Administer" 4875 | "Supervisor" 4876 | "Connect" 4877 | "ReleaseDomain" 4878 | "QueryACL" 4879 | "UpdateACL" 4880 | "QueryRegACL" 4882 8.32. Roles 4884 The Roles element is a simple container for Role (Section 8.31) 4885 elements. It is used when creating and updating registrars and when 4886 the SRS returns details of registrars. 4888 Syntax: 4890 element.Roles = 4891 element Roles { 4892 element.Role* 4893 } 4895 8.33. RunLogDetails 4897 The RunLogDetails element is a simple element that contains parsed 4898 character data. The content of this element is the value of an SRS 4899 system parameter. It is used by the SysParam (Section 7.15) element 4900 and contains process data to be stored in the SRS log. 4902 Syntax: 4904 element.RunLogDetails = 4905 element RunLogDetails { 4906 text 4907 } 4909 8.34. SecondLD 4911 The SecondLD element is an empty element. It has a single attribute, 4912 DomainName, that will contain a subdomain for which a given registrar 4913 has domain registration privileges. It is used by the Allowed2LDs 4914 (Section 8.5) element. 4916 The SecondLD element MAY contain subdomains at any level in the 4917 domain name system hierarchy that the registry supports registrations 4918 for. It is not technically restricted to second level domains. 4920 Syntax: 4922 element.SecondLD = 4923 element SecondLD { 4924 attribute DomainName { DomainName }, 4925 empty 4926 } 4928 8.35. Server 4930 The Server element is an empty element. It has three attributes: 4932 FQDN: The fully qualified domain name of the server. 4934 IP4Addr: The IPv4 address of the server. 4936 IP6Addr: The IPv6 address of the server. 4938 The fully qualified domain name is a required attribute. The IP 4939 address fields should only be included if the fully qualified domain 4940 name is within the domain that the server is a name server for. 4942 The IP4Addr value should be given in standard dotted-decimal 4943 notation, for example, 192.0.2.14 4945 The IP6Addr value should be given in any of the formats described in 4946 RFC 4291 [RFC4291], for example: 4948 Fully specified (preferred form): 2001:DB8:0:0:0:0:C000:20E 4950 Compressed form: 2001:DB8::C000:20E 4952 Alternative form: 2001:DB8:0:0:0:0:192.0.2.14 (or 2001:DB8:: 4953 192.0.2.14) 4955 The Server element is used by the NameServers (Section 8.23) element 4956 to specify name server details. 4958 Syntax: 4960 element.Server = 4961 element Server { 4962 attribute FQDN { text }, 4963 attribute IP4Addr { text }?, 4964 attribute IP6Addr { text }?, 4965 empty 4966 } 4968 8.36. ServerFilter 4970 The ServerFilter element is an empty element. It has the same 4971 attributes as the Server (Section 8.35) element, however all of the 4972 attributes are optional in the ServerFilter element. The content of 4973 the ServerFilter attributes is used to match against name server 4974 details held by the SRS. 4976 The ServerFilter element is used by the NameServerFilter 4977 (Section 8.24) element to specify the server details to match. 4979 Syntax: 4981 element.ServerFilter = 4982 element ServerFilter { 4983 attribute FQDN { text }?, 4984 attribute IP4Addr { text }?, 4985 attribute IP6Addr { text }?, 4986 empty 4987 } 4989 8.37. Signature 4991 The Signature element is a simple element that contains parsed 4992 character data. The content of this element is the OpenPGP- 4993 compatible signature of a request message in ASCII armored format and 4994 encoded in UTF-8. It is used by the RawRequest and RawResponse 4995 (Section 7.11) elements when returning details of previous SRS 4996 transactions. 4998 Syntax: 5000 element.Signature = 5001 element Signature { 5002 text 5003 } 5005 8.38. Timestamp Elements 5007 The SRS protocol employs many timestamp elements that all share a 5008 common definition. The timestamp elements are: 5010 o ActiveOn 5012 o BilledUntil 5014 o BillPeriodEnd 5016 o BillPeriodStart 5018 o CancelledDate 5020 o EffectiveDate 5022 o FeTimeStamp 5024 o FinalRunDate 5026 o FirstRunDate 5028 o From 5030 o InvoiceDate 5032 o LastRunDate 5034 o LockedDate 5035 o NewBilledUntilDate 5037 o RegisteredDate 5039 o RunDate 5041 o RunLogTimeStamp 5043 o To 5045 o TransactionDate 5047 o TransDate 5049 The timestamp elements are empty elements that use the TimeStamp 5050 (Section 9.7.3) entity for attribute declarations. 5052 Syntax: 5054 element.ActiveOn = 5055 element ActiveOn { 5056 TimeStamp 5057 } 5059 element.BilledUntil = 5060 element BilledUntil { 5061 TimeStamp, 5062 empty 5063 } 5065 element.BillPeriodEnd = 5066 element BillPeriodEnd { 5067 TimeStamp, 5068 empty 5069 } 5071 element.BillPeriodStart = 5072 element BillPeriodStart { 5073 TimeStamp, 5074 empty 5075 } 5077 element.CancelledDate = 5078 element CancelledDate { 5079 TimeStamp, 5080 empty 5081 } 5083 element.EffectiveDate = 5084 element EffectiveDate { 5085 TimeStamp, 5086 empty 5087 } 5089 element.FeTimeStamp = 5090 element FeTimeStamp { 5091 TimeStamp, 5092 empty 5093 } 5095 element.FinalRunDate = 5096 element FinalRunDate { 5097 TimeStamp, 5098 empty 5099 } 5101 element.FirstRunDate = 5102 element FirstRunDate { 5103 TimeStamp, 5104 empty 5105 } 5107 element.From = 5108 element From { 5109 TimeStamp, 5110 empty 5111 } 5113 element.InvoiceDate = 5114 element InvoiceDate { 5115 TimeStamp, 5116 empty 5117 } 5119 element.LastRunDate = 5120 element LastRunDate { 5121 TimeStamp, 5122 empty 5123 } 5125 element.LockedDate = 5126 element LockedDate { 5127 TimeStamp, 5128 empty 5129 } 5131 element.NewBilledUntilDate = 5132 element NewBilledUntilDate { 5133 TimeStamp, 5134 empty 5135 } 5137 element.RegisteredDate = 5138 element RegisteredDate { 5139 TimeStamp, 5140 empty 5141 } 5143 element.RunDate = 5144 element RunDate { 5145 TimeStamp, 5146 empty 5147 } 5149 element.RunLogTimeStamp = 5150 element RunLogTimeStamp { 5151 TimeStamp, 5152 empty 5153 } 5155 element.To = 5156 element To { 5157 TimeStamp, 5158 empty 5159 } 5161 element.TransactionDate = 5162 element TransactionDate { 5163 TimeStamp, 5164 empty 5165 } 5167 element.TransDate = 5168 element TransDate { 5169 TimeStamp, 5170 empty 5171 } 5173 Example of an EffectiveDate element: 5175 5178 8.39. TransferredDomain 5180 The TransferredDomain element is a simple element that contains 5181 parsed character data. The content of the element is the domain name 5182 of a domain that has been transferred from one registrar to another. 5183 It is used by the DomainTransfer (Section 7.7) element. 5185 Syntax: 5187 element.TransferredDomain = 5188 element TransferredDomain { 5189 text 5190 } 5192 8.40. XML 5194 The XML element is a simple element that contains parsed character 5195 data. The content of this element is the XML content of a request or 5196 response message encoded in UTF-8. It is used by the RawRequest and 5197 RawResponse (Section 7.11) elements when returning details of 5198 previous SRS transactions. 5200 Syntax: 5202 element.XML = 5203 element XML { 5204 text 5205 } 5207 9. Internal Entities 5209 The schema for the SRS communications protocol uses internal entities 5210 to provide common definitions in the schema. These entities also 5211 enhance the readability of the schema. 5213 9.1. Actions 5215 9.1.1. DomainWriteAction 5217 The DomainWriteAction entity defines the valid values for attributes 5218 that hold the name of a domain write request. 5220 Definition: 5222 DomainWriteAction = 5223 "DomainCreate" 5224 | "DomainUpdate" 5226 9.1.2. DomainQueryAction 5228 The DomainQueryAction entity defines the valid values for attributes 5229 that hold the name of a domain query request. 5231 Definition: 5233 DomainQueryAction = 5234 "Whois" 5235 | "DomainDetailsQry" 5236 | "ActionDetailsQry" 5237 | "UDAIValidQry" 5239 9.1.3. HandleQueryAction 5241 The HandleQueryAction entity defines the valid values for attributes 5242 that hold the name of a handle query request. 5244 Definition: 5246 HandleQueryAction = 5247 "HandleDetailsQry" 5249 9.1.4. HandleWriteAction 5251 The HandleWriteAction entity defines the valid values for attributes 5252 that hold the name of a handle write request. 5254 Definition: 5256 HandleWriteAction = 5257 "HandleCreate" 5258 | "HandleUpdate" 5260 9.1.5. RegistrarWriteAction 5262 The RegistrarWriteAction entity defines the valid values for 5263 attributes that hold the name of a registrar write request. 5265 Definition: 5267 RegistrarWriteAction = 5268 "RegistrarCreate" 5269 | "RegistrarUpdate" 5271 9.1.6. RegistrarQueryAction 5273 The RegistrarQueryAction entity defines the valid values for 5274 attributes that hold the name of a registrar query request. 5276 Definition: 5278 RegistrarQueryAction = 5279 "RegistrarDetailsQry" 5280 | "RegistrarAccountQry" 5281 | "GetMessages" 5283 9.1.7. RegistryAction 5285 The RegistryAction entity defines the valid values for attributes 5286 that hold the name of a registry request. 5288 Definition: 5290 RegistryAction = 5291 "SysParamsUpdate" 5292 | "SysParamsQry" 5293 | "SysParamsCreate" 5294 | "RunLogCreate" 5295 | "RunLogQry" 5296 | "ScheduleCreate" 5297 | "ScheduleCancel" 5298 | "ScheduleQry" 5299 | "ScheduleUpdate" 5300 | "BillingExtract" 5301 | "SetBillingAmount" 5302 | "BillingAmountQry" 5303 | "DeferredIncomeSummaryQry" 5304 | "DeferredIncomeDetailQry" 5305 | "BilledUntilAdjustment" 5306 | "BuildDnsZoneFiles" 5307 | "GenerateDomainReport" 5308 | "AdjustRegistrarAccount" 5309 | "AccessControlListQry" 5310 | "AccessControlListAdd" 5311 | "AccessControlListRemove" 5313 9.1.8. Action 5315 The Action entity defines the valid values for attributes that hold 5316 the name of an SRS request action. It is defined in terms of the 5317 various action entity definitions. 5319 Definition: 5321 Action = 5322 DomainWriteAction 5323 | DomainQueryAction 5324 | HandleWriteAction 5325 | HandleQueryAction 5326 | RegistrarWriteAction 5327 | RegistrarQueryAction 5328 | RegistryAction 5330 9.1.9. ActionEtc 5332 The ActionEtc entity defines the valid values for the response action 5333 string. It includes all the valid values of the Action 5334 (Section 9.1.8) entity and, additionally, the strings 5335 "UnknownTransaction", "DomainTransfer" and "AckMessage". 5337 Definition: 5339 ActionEtc = 5340 Action 5341 | "UnknownTransaction" 5342 | "DomainTransfer" 5343 | "AckMessage" 5345 9.2. Accounts 5347 9.2.1. AccountingAction 5349 The AccountingAction entity defines the valid values for attributes 5350 that hold the name of an accounting action type. 5352 Definition: 5354 AccountingAction = "Credit" | "Debit" 5356 9.2.2. BillStatus 5358 The BillStatus entity defines the valid values for attributes that 5359 hold the name of a billing status. 5361 Definition: 5363 BillStatus = "PendingConfirmation" | "Confirmed" 5365 9.3. Booleans 5367 9.3.1. True 5369 The True entity defines a fixed integer value for true boolean values 5370 in the SRS protocol. 5372 Definition: 5374 True = "1" 5376 9.3.2. False 5378 The False entity defines a fixed integer value for false boolean 5379 values in the SRS protocol. 5381 Definition: 5383 False = "0" 5385 9.3.3. Boolean 5387 The Boolean entity defines the valid values for attributes that hold 5388 a boolean value. 5390 Definition: 5392 Boolean = False | True 5394 9.4. Contact Details 5396 9.4.1. Contact 5398 The Contact entity defines a content model for elements that contain 5399 contact details. 5401 Definition: 5403 Contact = 5404 element.PostalAddress?, 5405 element.Phone?, 5406 element.Fax? 5408 9.4.2. ContactAttr 5410 The ContactAttr entity defines the attribute specification for 5411 elements that contain contact details. 5413 Definition: 5415 ContactAttr = 5416 attribute HandleId { text }?, 5417 attribute Name { text }?, 5418 attribute Email { text }?, 5419 attribute ActionId { text }? 5421 9.5. Contact Details Filters 5423 9.5.1. ContactFilter 5425 The ContactFilter entity defines a content model for elements that 5426 contain contact filter details. 5428 Definition: 5430 ContactFilter = 5431 element.PostalAddressFilter?, 5432 element.Phone?, 5433 element.Fax? 5435 9.5.2. ContactFilterAttr 5437 The ContactFilterAttr entity defines the attribute specification for 5438 elements that contain contact filter details. 5440 Definition: 5442 ContactAttrFilter = 5443 attribute HandleId { text }?, 5444 attribute Name { text }?, 5445 attribute Email { text }? 5447 9.6. Currency 5449 9.6.1. Dollars 5451 The Dollars entity defines a value definition for attributes that 5452 contain currency values. SRS implementations SHOULD ensure that 5453 values given and received in attributes of this type conform to valid 5454 values in their registry's working currency. 5456 Definition: 5458 Dollars = xsd:decimal { fractionDigits = "2" } 5460 9.7. Dates And Times 5462 9.7.1. Date 5464 The Date entity defines the attribute specification for elements that 5465 contain date details. 5467 Definition: 5469 Date = 5470 attribute Year { Number }, 5471 attribute Month { Number }, 5472 attribute Day { Number } 5474 9.7.2. Time 5476 The Time entity defines the attribute specification for elements that 5477 contain time details. SRS implementations MAY use their local 5478 timezone offset from UTC as a default value for TimeZoneOffset if 5479 this field is not populated. 5481 Definition: 5483 Time = 5484 attribute Hour { Number }, 5485 attribute Minute { Number }, 5486 attribute Second { Number }?, 5487 attribute TimeZoneOffset { text }? 5489 9.7.3. TimeStamp 5491 The TimeStamp entity defines a composite attribute specification for 5492 elements that contain a combined date and time value. It is defined 5493 in terms of the Date (Section 9.7.1) and Time (Section 9.7.2) 5494 entities. 5496 Definition: 5498 TimeStamp = Date, Time 5500 9.7.4. DateRange 5502 The DateRange entity defines a content model for elements that 5503 contain a start date and time and an end date and time. Such 5504 elements consist of an optional From (Section 8.38) element and an 5505 optional To (Section 8.38) element. Both the From and To element are 5506 empty elements with attributes as defined in the TimeStamp 5507 (Section 9.7.3) entity. 5509 Definition: 5511 DateRange = 5512 element.From?, 5513 element.To? 5515 9.8. Domain Names 5517 9.8.1. DomainName 5519 The DomainName entity defines the valid value definition for 5520 attributes that hold a domain name. 5522 Definition: 5524 DomainName = string 5526 9.9. Domain Status 5528 9.9.1. RegDomainStatus 5530 The RegDomainStatus entity defines the valid values for attributes 5531 that hold the status of registered domains. 5533 Definition: 5535 RegDomainStatus = "Active" | "PendingRelease" 5537 9.9.2. DomainStatus 5539 The DomainStatus entity defines the valid values for attributes that 5540 hold the status of both registered and unregistered domains. 5542 Definition: 5544 DomainStatus = RegDomainStatus | "Available" 5546 9.10. Duration 5548 9.10.1. Term 5550 The Term entity defines the valid value definition for attributes 5551 that hold a timespan. Generally this will be an integer number of 5552 months representing the registry's billing cycle for registered 5553 domains. 5555 Definition: 5557 Term = xsd:positiveInteger 5559 9.11. Message Types 5561 9.11.1. GetMessagesTypes 5563 The GetMessagesTypes entity defines the valid values for attributes 5564 that hold a message type name. 5566 Definition: 5568 GetMessagesTypes = "third-party" | "server-generated-data" 5570 9.12. Numeric 5572 9.12.1. Number 5574 The Number entity defines the valid value definition for attributes 5575 that hold a number. SRS implementations SHOULD ensure that data 5576 provided in such attributes is numeric. 5578 Definition: 5580 Number = xsd:nonNegativeInteger 5582 9.13. Registrar Identifiers 5584 9.13.1. RegistrarId 5586 The RegistrarId entity defines the valid value definition for 5587 attributes that hold a registrar identifier. Registrar identifiers 5588 in the SRS are numeric and this entity is defined in terms of the 5589 Number (Section 9.12.1) entity. 5591 Registrar identifiers are assigned to registrars for performing 5592 registrar functions and to the registry for performing registry 5593 functions. 5595 The registry may have more than one identity, with each identity 5596 having separate roles and permissions in the system. The registry's 5597 registrar identifiers should be known to registrars so that 5598 registrars can identify actions performed by the registry. 5600 Definition: 5602 RegistrarId = xsd:positiveInteger 5604 9.13.2. RegistrarIdOrOTHERS 5606 The RegistrarIdOrOTHERS entity defines the valid value definition for 5607 attributes that hold a registrar identifier or the special value 5608 "OTHERS". SRS Implementations SHOULD ensure that data provided in 5609 such attributes is either a valid registrar identifier or the string 5610 "OTHERS". The value "OTHERS" may be used instead of a registrar 5611 identifier in some cases, for example when using the GetMessages 5612 (Section 6.5.1) request, to specify a registrar identifier other than 5613 the registrar making the request. 5615 Definition: 5617 RegistrarIdOrOTHERS = RegistrarId | "OTHERS" 5619 9.14. Responses 5621 9.14.1. ActionResponse 5623 The ActionResponse entity defines the valid values for attributes 5624 that hold the name of an action response type. 5626 Definition: 5628 ActionResponse = 5629 element.Error 5630 | element.Domain* 5631 | element.UDAIValid 5632 | element.DomainTransfer 5633 | element.BillingTrans* 5634 | element.DeferredRegistrarIncome* 5635 | element.Registrar* 5636 | element.SysParam* 5637 | element.RunLog* 5638 | element.Schedule* 5639 | element.AccessControlList* 5640 | (element.RawRequest, element.RawResponse) 5641 | element.BillingAmount* 5642 | element.Handle* 5643 | element.Message* 5645 9.15. System Roles 5647 9.15.1. Role 5649 The Role entity defines the valid values for attributes that hold the 5650 name of a system role type. Roles may be used by implementations to 5651 restrict the requests that users (typically registrars) have access 5652 to. 5654 Definition: 5656 Role = 5657 "Registrar" 5658 | "Registry" 5659 | "Whois" 5660 | "Query" 5661 | "CreateDomain" 5662 | "UpdateDomain" 5663 | "TransferDomain" 5664 | "CancelDomain" 5665 | "UncancelDomain" 5666 | "UpdateRegistrar" 5667 | "Administer" 5668 | "Supervisor" 5669 | "Connect" 5670 | "ReleaseDomain" 5671 | "QueryACL" 5672 | "UpdateACL" 5674 9.16. Scheduled Processes 5676 9.16.1. ScheduledJob 5678 The ScheduledJob entity defines the valid values for attributes that 5679 hold the name of a scheduled job type. 5681 Definition: 5683 ScheduledJob = 5684 "BuildDnsZoneFiles" 5685 | "ReleaseDomains" 5686 | "RenewDomains" 5687 | "GenerateDomainReport" 5688 | "GenerateStatsReport" 5690 9.17. Telephone Numbers 5692 9.17.1. PhoneAttr 5694 The PhoneAttr entity defines the attribute specification for elements 5695 that telephone or fax number details. 5697 Definition: 5699 PhoneAttr = 5700 attribute CountryCode { text }?, 5701 attribute AreaCode { text }?, 5702 attribute LocalNumber { text }? 5704 9.18. Unique Identifiers 5706 9.18.1. UID 5708 The UID entity defines a value definition for attributes that contain 5709 unique identifier values. 5711 Definition: 5713 UID = string 5715 10. Text Filter 5717 The text filter provides support for case-insensitive matching of a 5718 character string against information held in the SRS. Two wildcard 5719 characters are supported: 5721 +----------+---------------------------------+ 5722 | Wildcard | Description | 5723 +----------+---------------------------------+ 5724 | ? | matches any single character | 5725 | * | matches zero or more characters | 5726 +----------+---------------------------------+ 5728 Note: when a text filter pattern is used for matching against domain 5729 names, the wildcard characters will not match the dot-separator 5730 character. The only exception to this is when the * wildcard is used 5731 at the start of the text filter pattern, in this case the wildcard 5732 may match any characters, as shown in the examples below. 5734 Text filter pattern matching examples for domain names: 5736 +---------------+------------------------+--------------------------+ 5737 | Text filter | Domain | Result | 5738 | pattern | | | 5739 +---------------+------------------------+--------------------------+ 5740 | alpha.*.org | alpha.example.org | Match | 5741 | alpha.*.org | alpha.beta.example.org | No match | 5742 | *.example.org | alpha.example.org | Match | 5743 | *.example.org | alpha.beta.example.org | Match | 5744 | *.example.org | example.org | No match | 5745 | alpha.* | alpha.example | Match | 5746 | alpha.* | alpha.co.example | No match | 5747 | * | any.example.org | Match (* on its own will | 5748 | | | match all domains in the | 5749 | | | SRS) | 5750 +---------------+------------------------+--------------------------+ 5752 11. Security Considerations 5754 Care should be taken to ensure that no private data is sent over any 5755 unsecured transport. HTTPS MUST be used for all transactions 5756 involving private data - that is, data that cannot be retrieved using 5757 the public WHOIS system. 5759 The exchange of public keys between registry and registrar when a new 5760 registrar is created in the SRS SHOULD be handled in a secure way 5761 with careful identity verification by both parties. 5763 Storage of private keys by the registry and the registrar must be 5764 handled carefully to avoid compromise. Keys should be changed on an 5765 occasional basis, according to current best practice, to ensure that 5766 the SRS remains secure. The registrar may provide the registry with 5767 more than one valid public key to support migration from one key to 5768 another and the expiration of old keys. 5770 Registrars MUST be restricted to only viewing data that is publicly 5771 available (that is, data that can be retrieved using the public WHOIS 5772 system), and data that they manage. Registrars MUST NOT be able to 5773 access through the SRS registry information that is managed by other 5774 registrars and is not available through the public WHOIS system. 5776 The registry SHOULD access all requests and data through the SRS 5777 system. This allows the implementation to ensure that there is only 5778 a single way to access the system functions and data. 5780 12. IANA Considerations 5782 This document has no actions for IANA. 5784 13. References 5786 13.1. Normative References 5788 [RFC1035] Mockapetris, P., "Domain names - implementation and 5789 specification", STD 13, RFC 1035, November 1987. 5791 [RFC1123] Braden, R., "Requirements for Internet Hosts - Application 5792 and Support", STD 3, RFC 1123, October 1989. 5794 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 5795 Requirement Levels", BCP 14, RFC 2119, March 1997. 5797 [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS 5798 Specification", RFC 2181, July 1997. 5800 [RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R. 5801 Thayer, "OpenPGP Message Format", RFC 4880, November 2007. 5803 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., 5804 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext 5805 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. 5807 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. 5809 [RFC3492] Costello, A., "Punycode: A Bootstring encoding of Unicode 5810 for Internationalized Domain Names in Applications 5811 (IDNA)", RFC 3492, March 2003. 5813 [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 5814 10646", STD 63, RFC 3629, November 2003. 5816 [W3C.REC-xml] 5817 Bray, T., Paoli, J., Sperberg-McQueen, C., and E. Maler, 5818 "Extensible Markup Language (XML) 1.0 (2nd ed)", W3C REC- 5819 xml, October 2000, . 5821 [ISO.3166.1988] 5822 International Organization for Standardization, "Codes for 5823 the representation of names of countries, 3rd edition", 5824 ISO Standard 3166, August 1988. 5826 [FIPS.180-2.2002] 5827 National Institute of Standards and Technology, "Secure 5828 Hash Standard", FIPS PUB 180-2, August 2002, . 5831 13.2. Informative References 5833 [RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912, 5834 September 2004. 5836 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 5837 Architecture", RFC 4291, February 2006. 5839 [RFC3375] Hollenbeck, S., "Generic Registry-Registrar Protocol 5840 Requirements", RFC 3375, September 2002. 5842 [US-ASCII] 5843 American National Standards Institute, "Coded Character 5844 Set - 7-bit American Standard Code for Information 5845 Interchange", ANSI X3.4, 1986, 1968. 5847 URIs 5849 [1] 5851 Appendix A. Example 5853 This example shows a typical request and response document. The 5854 example does not show the full format of the multipart request body 5855 that must be sent to the server for a request. 5857 A.1. Whois request 5859 Example of a Whois request (formatted for readability): 5861 C: n=50041&r= 5862 C: 5863 C: 5864 C: 5865 C: &s=-----BEGIN PGP SIGNATURE----- 5866 C: Version: Crypt::OpenPGP 1.03 5867 C: 5868 C: iQBGBAARAgAGBQJHtLqmAAoJECvUc6XZCUibvs4An2qp5xHugp7tOjO4pmxTqb3k 5869 C: N63OAJ44F+/O3bsRhIGoqrCjvg1hlFAK0A== 5870 C: =5C/k 5871 C: -----END PGP SIGNATURE----- 5873 S: r= 5874 S: 5875 S: 5876 S: 5878 S: 5880 S: 5881 S: 5882 S: 5883 S: &s=-----BEGIN PGP SIGNATURE----- 5884 S: Version: Crypt::OpenPGP 1.03 5885 S: 5886 S: iQBGBAARAgAGBQJHtLqmAAoJENi/K6P6QHemSbgAn2W3SQFFZzI1GKbGbiJZtq4w 5887 S: k7SxAJ491nPIkU/8kJvJ+No+Ysiph19Whw== 5888 S: =r5Vn 5889 S: -----END PGP SIGNATURE----- 5891 Appendix B. Acknowledgements 5893 The author would like to thank the following groups and individuals 5894 for reviewing this document in draft format and providing very 5895 helpful comments and advice. 5897 o The SRS Implementation Team at Catalyst IT Limited 5899 o Dave Baker of .nz Registry Services 5901 Appendix C. RELAX NG schema 5902 Complete RELAX NG schema for the SRS protocol (compact syntax): 5903 # protocol.rnc: RELAX NG schema for NZ Shared Registry System Protocol 5904 # 5905 # Author: Srdjan Jankovic 5906 # Version: Release version 5.1 5907 # Revised: SRS Development Team 5908 # 5909 # Based on a prototype written by Ewen McNeill, 2002/03/05 5911 # The NZ SRS registrar/registry protocol consists of an (externally) 5912 # signed XML request document containing a series of actions to be 5913 # performed on the register (updating it, or extracting information 5914 # from it), which is answered by an (externally) signed XML response 5915 # document containing answers to each of those actions, or an overall 5916 # error message. 5917 # 5918 # Each action has its own element to specify that action, and there 5919 # is also a response element which is used to enclose each response 5920 # to an action. 5921 # 5922 # Each update-type action has an id number which is the registrar's 5923 # identification for the action, which must be unique in all requests 5924 # made to the register by that registrar. The status of each action 5925 # with an id number can be queried with the "getmsg" action. 5926 # 5927 # The registrar internally is the effective registrar of the 5928 # transaction. This must normally match the registrar UID specified 5929 # externally. However the registry may set this to a specific 5930 # registrar other than its own "psuedo registrar" to perform actions 5931 # "as if" it was that registrar, eg filter by that registrar. 5932 # 5933 # It is also included to assist debugging (by allowing network streams 5934 # to be more directly linked to the registrar). 5935 # 5936 # ==================================================================== 5937 # 5938 # Copyright 2002-2009 NZ Registry Services 5939 # 5940 # This file is part of the Shared Registry System 5941 # 5942 # The Shared Registry System is free software; you can redistribute it 5943 # and/or modify it under the terms of the GNU General Public License as 5944 # published by the Free Software Foundation; either version 2 of the 5945 # License, or (at your option) any later version. 5946 # 5947 # The Shared Registry System is distributed in the hope that it will be 5948 # useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 5949 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5950 # General Public License for more details. 5951 # 5952 # You should have received a copy of the GNU General Public License 5953 # along with the Shared Registry System; if not, write to the Free 5954 # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 5955 # 02111-1307 USA 5956 # 5958 namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" 5960 # == Common entities =================================================== 5962 # Simple data types 5964 Number = xsd:nonNegativeInteger 5965 Dollars = xsd:decimal { fractionDigits = "2" } 5966 True = "1" 5967 False = "0" 5968 Boolean = False | True 5970 # Valid date 5971 Date = 5972 attribute Year { Number }, 5973 attribute Month { Number }, 5974 attribute Day { Number } 5975 # Valid time. 5976 # If TimeZoneOffset omitted, NZ local time assumed. The mandatory format 5977 # is (+/-)HH:MM (the sign is mandatory!), although (+/-)HHMM will be 5978 # accepted with the ':' silently added. 5979 # If Second is omitted, it defaults to 0 5980 Time = 5981 attribute Hour { Number }, 5982 attribute Minute { Number }, 5983 attribute Second { Number }?, 5984 attribute TimeZoneOffset { text }? 5986 TimeStamp = Date, Time 5988 # Valid domain name 5989 DomainName = string 5991 # Valid DomainName details - for registering IDN 5992 DomainNameUnicode = string 5993 DomainNameUnicodeHex = string 5994 DomainNameLanguage = string 5996 # Valid unique identifier ? 5997 UID = string 5998 # Valid term 5999 Term = xsd:positiveInteger 6001 RegistrarId = xsd:positiveInteger 6003 RegistrarIdOrOTHERS = RegistrarId | "OTHERS" 6005 # Complex data types/definitions 6006 ActionResponse = 6007 element.Error 6008 | element.Domain* 6009 | element.UDAIValid 6010 | element.DomainTransfer 6011 | element.BillingTrans* 6012 | element.DeferredRegistrarIncome* 6013 | element.Registrar* 6014 | element.SysParam* 6015 | element.RunLog* 6016 | element.Schedule* 6017 | element.AccessControlList* 6018 | (element.RawRequest, element.RawResponse) 6019 | element.BillingAmount* 6020 | element.Handle* 6021 | element.Message* 6023 RegDomainStatus = "Active" | "PendingRelease" 6024 DomainStatus = RegDomainStatus | "Available" 6025 BillStatus = "PendingConfirmation" | "Confirmed" 6027 Contact = 6028 element.PostalAddress?, 6029 element.Phone?, 6030 element.Fax? 6032 ContactAttr = 6033 attribute HandleId { text }?, 6034 attribute Name { text }?, 6035 attribute Email { text }?, 6036 attribute ActionId { text }? 6038 ContactFilter = 6039 element.PostalAddressFilter?, 6040 element.Phone?, 6041 element.Fax? 6043 ContactAttrFilter = 6044 attribute HandleId { text }?, 6045 attribute Name { text }?, 6046 attribute Email { text }? 6048 PhoneAttr = 6049 attribute CountryCode { text }?, 6050 attribute AreaCode { text }?, 6051 attribute LocalNumber { text }? 6053 Role = 6054 "Registrar" 6055 | "Registry" 6056 | "Whois" 6057 | "Query" 6058 | "CreateDomain" 6059 | "UpdateDomain" 6060 | "TransferDomain" 6061 | "CancelDomain" 6062 | "UncancelDomain" 6063 | "UpdateRegistrar" 6064 | "Administer" 6065 | "Supervisor" 6066 | "Connect" 6067 | "ReleaseDomain" 6068 | "QueryACL" 6069 | "UpdateACL" 6070 | "QueryRegACL" 6072 ScheduledJob = 6073 "BuildDnsZoneFiles" 6074 | "ReleaseDomains" 6075 | "RenewDomains" 6076 | "GenerateDomainReport" 6077 | "GenerateStatsReport" 6079 DateRange = 6080 element.From?, 6081 element.To? 6083 AccountingAction = "Credit" | "Debit" 6085 # == Root element ====================================================== 6087 element.NZSRSRequest = 6088 element NZSRSRequest { 6089 attribute VerMajor { Number }, 6090 attribute VerMinor { Number }, 6091 attribute RegistrarId { RegistrarId }?, 6092 (element.DomainCreate 6093 | element.DomainUpdate 6094 | element.HandleCreate 6095 | element.HandleUpdate 6096 | element.HandleDetailsQry 6097 | element.Whois 6098 | element.DomainDetailsQry 6099 | element.ActionDetailsQry 6100 | element.UDAIValidQry 6101 | element.RegistrarCreate 6102 | element.RegistrarUpdate 6103 | element.RegistrarDetailsQry 6104 | element.RegistrarAccountQry 6105 | element.GetMessages 6106 | element.AckMessage 6107 | element.SysParamsCreate 6108 | element.SysParamsUpdate 6109 | element.SysParamsQry 6110 | element.RunLogCreate 6111 | element.RunLogQry 6112 | element.ScheduleCreate 6113 | element.ScheduleCancel 6114 | element.ScheduleQry 6115 | element.ScheduleUpdate 6116 | element.BillingAmountUpdate 6117 | element.BillingAmountQry 6118 | element.DeferredIncomeSummaryQry 6119 | element.DeferredIncomeDetailQry 6120 | element.BilledUntilAdjustment 6121 | element.BuildDnsZoneFiles 6122 | element.GenerateDomainReport 6123 | element.AdjustRegistrarAccount 6124 | element.AccessControlListQry 6125 | element.AccessControlListAdd 6126 | element.AccessControlListRemove)+ 6127 } 6129 element.NZSRSResponse = 6130 element NZSRSResponse { 6131 attribute VerMajor { Number }, 6132 attribute VerMinor { Number }, 6133 attribute RegistrarId { RegistrarId }?, 6134 (element.Response+ | element.Error) 6135 } 6137 # == Request actions =================================================== 6139 # ++ Domain details update actions +++++++++++++++++++++++++++++++++++++ 6141 # Create new domain name (record) 6142 # ActionResponse: (Domain|Error) 6143 element.DomainCreate = 6144 element DomainCreate { 6145 attribute ActionId { UID }, 6146 attribute DomainName { DomainName }, 6147 attribute DomainNameUnicode { DomainNameUnicode }?, 6148 attribute DomainNameLanguage { DomainNameLanguage }?, 6149 attribute RegistrantRef { UID }?, 6150 attribute Term { Term }, 6151 [ a:defaultValue = "1" ] attribute Delegate { Boolean }?, 6152 element.RegistrantContact, 6153 element.AdminContact?, 6154 element.TechnicalContact?, 6155 element.NameServers?, 6156 element.AuditText? 6157 } 6159 # Update domain record 6160 # Usage: 6161 # - update all domain records that match DomainNameFilter 6162 # pattern (? replaces a single character, * replaces a group of 6163 # characters); not all updates are possible (sensible) 6164 # Following actions are invoked by setting corresponding attribute 6165 # to %True; or opposite actions when set to %False; - omission of 6166 # the attribute means no action: 6167 # - newUDAI - force a new authentication UID to be generated 6168 # - renew 6169 # - cancel 6170 # - lock 6171 # Transfer to another registrar is an implied operation - if non-owner 6172 # registrar is doing an update, the domain is transferred to the new 6173 # registrar. For this operation UDAI is required, and the 6174 # DomainNameFilter must be a simple domain name (no wildcards!) 6175 # ActionResponse: (Domain+|Error) 6176 element.DomainUpdate = 6177 element DomainUpdate { 6178 attribute ActionId { UID }, 6179 attribute UDAI { UID }?, 6180 attribute NewUDAI { Boolean }?, 6181 attribute RegistrantRef { UID }?, 6182 attribute Term { Term }?, 6183 attribute Delegate { Boolean }?, 6184 attribute Renew { Boolean }?, 6185 attribute NoAutoRenew { Boolean }?, 6186 attribute Lock { Boolean }?, 6187 attribute Cancel { Boolean }?, 6188 attribute Release { Boolean }?, 6189 [ a:defaultValue = "1" ] attribute FullResult { Boolean }?, 6190 element.DomainNameFilter+, 6191 element.RegistrantContact?, 6192 element.AdminContact?, 6193 element.TechnicalContact?, 6194 element.NameServers?, 6195 element.AuditText? 6196 } 6198 element.HandleCreate = 6199 element HandleCreate { 6200 attribute ActionId { UID }, 6201 attribute HandleId { UID }, 6202 ContactAttr, 6203 Contact, 6204 element.AuditText? 6205 } 6207 element.HandleUpdate = 6208 element HandleUpdate { 6209 attribute ActionId { UID }, 6210 attribute HandleId { UID }, 6211 attribute Delete { Boolean }?, 6212 ContactAttr, 6213 Contact, 6214 element.AuditText? 6215 } 6217 element.HandleDetailsQry = 6218 element HandleDetailsQry { 6219 attribute MaxResults { Number }?, 6220 attribute SkipResults { Number }?, 6221 [ a:defaultValue = "0" ] attribute CountResults { Boolean }?, 6222 element.HandleIdFilter*, 6223 element.SearchDateRange?, 6224 element.ChangedInDateRange?, 6225 element.ContactFilter? 6226 } 6228 element.DomainNameFilter = 6229 element DomainNameFilter { 6230 text 6231 } 6233 # ++ Domain details query actions +++++++++++++++++++++++++++++++++++++ 6235 # Whois (retrieve details of DomainName) 6236 # ActionResponse: (Domain|Error) 6237 element.Whois = 6238 element Whois { 6239 attribute QryId { UID }?, 6240 [ a:defaultValue = "1" ] attribute FullResult { Boolean }?, 6241 attribute SourceIP { text }?, 6242 attribute DomainName { DomainName }, 6243 empty 6244 } 6246 # UDAIValidQry - enquire if the UDAI for a domain is correct 6247 # ActionResponse: (UDAIValid) 6248 element.UDAIValidQry = 6249 element UDAIValidQry { 6250 attribute QryId { UID }?, 6251 attribute DomainName { DomainName }, 6252 attribute UDAI { UID }, 6253 empty 6254 } 6256 # General register query 6257 # ActionResponse: (Domain*|Error) 6258 element.DomainDetailsQry = 6259 element DomainDetailsQry { 6260 attribute QryId { UID }?, 6261 attribute Status { RegDomainStatus }?, 6262 attribute Delegate { Boolean }?, 6263 attribute Term { Term }?, 6264 attribute RegistrantRef { UID }?, 6265 attribute MaxResults { Number }?, 6266 attribute SkipResults { Number }?, 6267 [ a:defaultValue = "0" ] attribute CountResults { Boolean }?, 6268 element.DomainNameFilter*, 6269 element.NameServerFilter?, 6270 element.RegistrantContactFilter?, 6271 element.AdminContactFilter?, 6272 element.TechnicalContactFilter?, 6273 element.ResultDateRange?, 6274 element.SearchDateRange?, 6275 element.ChangedInDateRange?, 6276 element.RegisteredDateRange?, 6277 element.LockedDateRange?, 6278 element.CancelledDateRange?, 6279 element.BilledUntilDateRange?, 6280 element.AuditTextFilter?, 6281 element.ActionIdFilter?, 6282 element.FieldList? 6283 } 6285 element.AuditTextFilter = 6286 element AuditTextFilter { 6287 text 6288 } 6290 element.ActionIdFilter = 6291 element ActionIdFilter { 6292 text 6293 } 6295 # Query request - returns request-response pair 6296 # ActionResponse: ((RawRequest,RawResponse)|Error) 6297 element.ActionDetailsQry = 6298 element ActionDetailsQry { 6299 attribute QryId { UID }?, 6300 attribute ActionId { UID }, 6301 attribute OriginatingRegistrarId { UID }?, 6302 empty 6303 } 6305 # ++ Registar details update actions +++++++++++++++++++++++++++++++++++ 6306 # ActionResponse: (Registrar|Error) 6307 element.RegistrarCreate = 6308 element RegistrarCreate { 6309 attribute ActionId { UID }, 6310 attribute Name { text }, 6311 attribute AccRef { text }, 6312 attribute RegistrarId { RegistrarId }, 6313 attribute URL { text }?, 6314 element.RegistrarPublicContact, 6315 element.RegistrarSRSContact, 6316 element.DefaultTechnicalContact, 6317 element.EncryptKeys, 6318 element.EPPAuth?, 6319 element.Allowed2LDs?, 6320 element.Roles?, 6321 element.AuditText? 6322 } 6324 element.RegistrarUpdate = 6325 element RegistrarUpdate { 6326 attribute ActionId { UID }, 6327 attribute Name { text }?, 6328 attribute AccRef { text }?, 6329 attribute URL { text }?, 6330 element.RegistrarPublicContact?, 6331 element.RegistrarSRSContact?, 6332 element.DefaultTechnicalContact?, 6333 element.EncryptKeys?, 6334 element.EPPAuth?, 6335 element.Allowed2LDs?, 6336 element.Roles?, 6337 element.AuditText? 6338 } 6340 # ++ Registar details query actions ++++++++++++++++++++++++++++++++++++ 6342 # ActionResponse: (Registrar*|Error) 6343 element.RegistrarDetailsQry = 6344 element RegistrarDetailsQry { 6345 attribute QryId { UID }?, 6346 attribute RegistrarId { RegistrarId }?, 6347 attribute NameFilter { text }?, 6348 element.ResultDateRange? 6349 } 6351 # RegistrarAccountQry (obtain billing records) 6352 # ActionResponse: (BillingTrans*|Error) 6353 element.RegistrarAccountQry = 6354 element RegistrarAccountQry { 6355 attribute QryId { UID }?, 6356 attribute RegistrantRef { UID }?, 6357 attribute DomainName { DomainName }?, 6358 attribute InvoiceId { UID }?, 6359 attribute MaxResults { Number }?, 6360 attribute SkipResults { Number }?, 6361 attribute TransStatus { BillStatus }?, 6362 [ a:defaultValue = "0" ] attribute CountResults { Boolean }?, 6363 element.TransDateRange?, 6364 element.InvoiceDateRange? 6365 } 6367 # BillingAmount Transactions 6368 # (To set the monthly charge for Billing) 6369 # ActionResponse: (BillingAmount*|Error) 6370 element.BillingAmountUpdate = 6371 element BillingAmountUpdate { 6372 attribute ActionId { UID }, 6373 element.BillingAmount 6374 } 6376 element.BillingAmountQry = 6377 element BillingAmountQry { 6378 attribute QryId { UID }?, 6379 empty 6380 } 6382 element.BillingAmount = 6383 element BillingAmount { 6384 attribute Amount { Dollars }, 6385 element.EffectiveDate? 6386 } 6388 element.EffectiveDate = 6389 element EffectiveDate { 6390 TimeStamp, 6391 empty 6392 } 6394 # ++ Query date ranges +++++++++++++++++++++++++++++++++++++++++++++++++ 6396 element.ResultDateRange = 6397 element ResultDateRange { 6398 DateRange 6399 } 6401 element.SearchDateRange = 6402 element SearchDateRange { 6403 DateRange 6404 } 6406 element.ChangedInDateRange = 6407 element ChangedInDateRange { 6408 DateRange 6409 } 6411 element.RegisteredDateRange = 6412 element RegisteredDateRange { 6413 DateRange 6414 } 6416 element.CancelledDateRange = 6417 element CancelledDateRange { 6418 DateRange 6419 } 6421 element.LockedDateRange = 6422 element LockedDateRange { 6423 DateRange 6424 } 6426 element.BilledUntilDateRange = 6427 element BilledUntilDateRange { 6428 DateRange 6429 } 6431 element.InvoiceDateRange = 6432 element InvoiceDateRange { 6433 DateRange 6434 } 6436 element.TransDateRange = 6437 element TransDateRange { 6438 DateRange 6439 } 6441 # ++ Query field list ++++++++++++++++++++++++++++++++++++++++++++++++++ 6443 element.FieldList = 6444 element FieldList { 6445 attribute Status { Boolean }?, 6446 attribute NameServers { Boolean }?, 6447 attribute RegistrantContact { Boolean }?, 6448 attribute RegisteredDate { Boolean }?, 6449 attribute AdminContact { Boolean }?, 6450 attribute TechnicalContact { Boolean }?, 6451 attribute LockedDate { Boolean }?, 6452 attribute Delegate { Boolean }?, 6453 attribute RegistrarId { Boolean }?, 6454 attribute RegistrarName { Boolean }?, 6455 attribute RegistrantRef { Boolean }?, 6456 attribute LastActionId { Boolean }?, 6457 attribute ChangedByRegistrarId { Boolean }?, 6458 attribute Term { Boolean }?, 6459 attribute BilledUntil { Boolean }?, 6460 attribute CancelledDate { Boolean }?, 6461 attribute AuditText { Boolean }?, 6462 attribute EffectiveFrom { Boolean }?, 6463 empty 6464 } 6466 # ++ Registry actions ++++++++++++++++++++++++++++++++++++++++++++++++++ 6468 # ActionResponse: (SysParam*|Error) 6469 element.SysParamsCreate = 6470 element SysParamsCreate { 6471 attribute ActionId { UID }, 6472 element.SysParam+, 6473 element.AuditText? 6474 } 6476 element.SysParamsUpdate = 6477 element SysParamsUpdate { 6478 attribute ActionId { UID }, 6479 element.SysParam+, 6480 element.AuditText? 6481 } 6483 element.SysParamsQry = 6484 element SysParamsQry { 6485 attribute QryId { UID }?, 6486 empty 6487 } 6489 # ActionResponse: (RunLog|Error) 6490 element.RunLogCreate = 6491 element RunLogCreate { 6492 attribute ActionId { UID }, 6493 element.FirstRunDate, 6494 element.RunLog 6495 } 6497 # ActionResponse: (RunLog*|Error) 6498 element.RunLogQry = 6499 element RunLogQry { 6500 attribute QryId { UID }?, 6501 attribute ProcessName { text }?, 6502 attribute Parameters { text }?, 6503 element.LogDateRange? 6504 } 6506 element.LogDateRange = 6507 element LogDateRange { 6508 DateRange, 6509 empty 6510 } 6512 # ActionResponse: (Schedule|Error) 6513 element.ScheduleCreate = 6514 element ScheduleCreate { 6515 attribute ProcessName { ScheduledJob }, 6516 attribute Frequency { text }, 6517 attribute Parameters { text }?, 6518 attribute ActionId { UID }, 6519 element.FirstRunDate, 6520 element.FinalRunDate?, 6521 element.AuditText? 6522 } 6524 element.ScheduleCancel = 6525 element ScheduleCancel { 6526 attribute ActionId { UID }, 6527 attribute ProcessName { ScheduledJob }, 6528 attribute Parameters { text }?, 6529 element.FirstRunDate, 6530 element.AuditText? 6531 } 6533 element.ScheduleUpdate = 6534 element ScheduleUpdate { 6535 attribute ActionId { UID }, 6536 attribute Parameters { text }?, 6537 attribute Frequency { text }?, 6538 attribute ProcessName { ScheduledJob }, 6539 element.FirstRunDate, 6540 element.LastRunDate?, 6541 element.AuditText? 6542 } 6544 element.FinalRunDate = 6545 element FinalRunDate { 6546 TimeStamp, 6547 empty 6548 } 6550 element.ScheduleQry = 6551 element ScheduleQry { 6552 attribute QryId { UID }?, 6553 attribute ProcessName { text }?, 6554 attribute Parameters { text }?, 6555 element.ActiveOn?, 6556 element.FirstRunDate? 6557 } 6559 element.ActiveOn = 6560 element ActiveOn { 6561 TimeStamp 6562 } 6564 element.DeferredIncomeSummaryQry = 6565 element DeferredIncomeSummaryQry { 6566 attribute BaseMonth { text }, 6567 attribute BaseYear { text }, 6568 attribute IncomeMonth { text }, 6569 attribute IncomeYear { text }, 6570 attribute QryId { UID }?, 6571 empty 6572 } 6574 element.DeferredRegistrarIncome = 6575 element DeferredRegistrarIncome { 6576 attribute BaseMonth { text }, 6577 attribute BaseYear { text }, 6578 attribute IncomeMonth { text }, 6579 attribute IncomeYear { text }, 6580 attribute RegistrarId { RegistrarId }, 6581 attribute BilledAmount { Dollars }, 6582 attribute BilledCount { Number }, 6583 empty 6584 } 6586 element.DeferredIncomeDetailQry = 6587 element DeferredIncomeDetailQry { 6588 attribute BaseMonth { text }, 6589 attribute BaseYear { text }, 6590 attribute IncomeMonth { text }, 6591 attribute IncomeYear { text }, 6592 attribute QryId { UID }?, 6593 empty 6594 } 6596 element.BilledUntilAdjustment = 6597 element BilledUntilAdjustment { 6598 attribute DomainName { DomainName }, 6599 attribute ActionId { UID }, 6600 element.NewBilledUntilDate, 6601 element.AuditText 6602 } 6604 element.NewBilledUntilDate = 6605 element NewBilledUntilDate { 6606 TimeStamp, 6607 empty 6608 } 6610 element.BuildDnsZoneFiles = 6611 element BuildDnsZoneFiles { 6612 attribute ActionId { UID }, 6613 element.RunDate 6614 } 6616 element.GenerateDomainReport = 6617 element GenerateDomainReport { 6618 attribute ActionId { UID }, 6619 element.RunDate 6620 } 6622 element.RunDate = 6623 element RunDate { 6624 TimeStamp, 6625 empty 6626 } 6628 element.AdjustRegistrarAccount = 6629 element AdjustRegistrarAccount { 6630 attribute RegistrarId { RegistrarId }, 6631 attribute DomainName { DomainName }, 6632 attribute ActionId { UID }, 6633 attribute Months { Number }, 6634 attribute ActionType { AccountingAction }, 6635 element.TransactionDate, 6636 element.BillPeriodStart, 6637 element.BillPeriodEnd, 6638 element.AuditText 6639 } 6641 element.TransactionDate = 6642 element TransactionDate { 6643 TimeStamp, 6644 empty 6645 } 6647 element.AccessControlListQry = 6648 element AccessControlListQry { 6649 attribute Resource { text }?, 6650 attribute List { text }?, 6651 attribute Type { text }?, 6652 [ a:defaultValue = "0" ] attribute FullResult { Boolean }?, 6653 AccessControlListContentFilter* 6654 } 6656 AccessControlListContentFilter = 6657 element.DomainNameFilter 6658 | element.RegistrarIdFilter 6659 | element.AddressFilter 6661 element.RegistrarIdFilter = 6662 element RegistrarIdFilter { 6663 text 6664 } 6666 element.AddressFilter = 6667 element AddressFilter { 6668 text 6669 } 6671 element.AccessControlListRemove = 6672 element AccessControlListRemove { 6673 attribute Resource { text }, 6674 attribute List { text }, 6675 attribute ActionId { UID }, 6676 [ a:defaultValue = "1" ] attribute FullResult { Boolean }?, 6677 element.AccessControlListEntry*, 6678 element.AuditText? 6679 } 6681 element.AccessControlListAdd = 6682 element AccessControlListAdd { 6683 attribute Resource { text }, 6684 attribute List { text }, 6685 attribute ActionId { UID }, 6686 [ a:defaultValue = "1" ] attribute FullResult { Boolean }?, 6687 element.AccessControlListEntry+, 6688 element.AuditText? 6689 } 6691 element.AccessControlList = 6692 element AccessControlList { 6693 attribute Resource { text }, 6694 attribute List { text }, 6695 ( attribute Size { Number } 6696 | attribute SizeChange { Number } )?, 6697 attribute Type { text }?, 6698 element.AccessControlListEntry* 6699 } 6701 element.AccessControlListEntry = 6702 element AccessControlListEntry { 6703 attribute Address { text }?, 6704 attribute DomainName { text }?, 6705 attribute RegistrarId { RegistrarId }?, 6706 attribute Comment { text }?, 6707 element.EffectiveDate? 6708 } 6710 # == GetMessages ======================================================= 6712 # Get message by UID, or messages since date/time for the Effective 6713 # registrar 6714 # 6715 # Non-DTD enforced compliance: 6716 # - either UID or date range must be supplied 6717 # ActionResponses: (Response|Error) 6718 element.GetMessages = 6719 element GetMessages { 6720 attribute QryId { UID }?, 6721 attribute OriginatingRegistrarId { RegistrarIdOrOTHERS }?, 6722 attribute ActionId { UID }?, 6723 attribute RecipientRegistrarId { RegistrarId }?, 6724 attribute MaxResults { Number }?, 6725 attribute SkipResults { Number }?, 6726 [ a:defaultValue = "0" ] attribute CountResults { Boolean }?, 6727 [ a:defaultValue = "0" ] attribute QueueMode { Boolean }?, 6728 element.TransDateRange?, 6729 element.AuditTextFilter?, 6730 element.TypeFilter* 6731 } 6733 GetMessagesTypes = "third-party" | "server-generated-data" 6735 element.TypeFilter = 6736 element TypeFilter { 6737 attribute Type { GetMessagesTypes } 6738 } 6740 # == AckMessage ======================================================== 6742 # ACK message by originating RegistrarId/UID 6743 # ActionResponse: (Response|Error) 6744 element.AckMessage = 6745 element AckMessage { 6746 attribute ActionId { UID }, 6747 attribute OriginatingRegistrarId { RegistrarId }, 6748 attribute TransId { UID } 6749 } 6751 # == ActionResponse ==================================================== 6753 # ++ Response ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6754 # This is a "one size fits all" response, which 6755 # can contain any type of response. Errors to individual actions 6756 # can be specified within the response (errors in parsing the total 6757 # request are handled by the error ELEMENT). The response may 6758 # contain multiple domain records (eg, for queries), and may contain 6759 # a complete history of the domain. 6760 # The registrar and id will match those passed in for most requests, 6761 # but will be present to uniquely identify a getmsg response. 6762 # Most requests will result in a single response; but getmsg requests 6763 # for messages since a date/time will result in one response per 6764 # response found. 6765 # The DomainTransfer differs from the rest in that it is not a direct 6766 # response to an action, but a message for the registrar generated by 6767 # an action of another registrar. It may be returned in response to a 6768 # GetMessages action. 6769 DomainWriteAction = 6770 "DomainCreate" 6771 | "DomainUpdate" 6773 DomainQueryAction = 6774 "Whois" 6775 | "DomainDetailsQry" 6776 | "ActionDetailsQry" 6777 | "UDAIValidQry" 6779 HandleWriteAction = 6780 "HandleCreate" 6781 | "HandleUpdate" 6783 HandleQueryAction = 6784 "HandleDetailsQry" 6786 RegistrarWriteAction = 6787 "RegistrarCreate" 6788 | "RegistrarUpdate" 6790 RegistrarQueryAction = 6791 "RegistrarDetailsQry" 6792 | "RegistrarAccountQry" 6793 | "GetMessages" 6795 RegistryAction = 6796 "SysParamsUpdate" 6797 | "SysParamsCreate" 6798 | "SysParamsQry" 6799 | "RunLogCreate" 6800 | "RunLogQry" 6801 | "ScheduleCreate" 6802 | "ScheduleCancel" 6803 | "ScheduleQry" 6804 | "ScheduleUpdate" 6805 | "BillingExtract" 6806 | "SetBillingAmount" 6807 | "BillingAmountQry" 6808 | "DeferredIncomeSummaryQry" 6809 | "DeferredIncomeDetailQry" 6810 | "BilledUntilAdjustment" 6811 | "BuildDnsZoneFiles" 6812 | "GenerateDomainReport" 6813 | "AdjustRegistrarAccount" 6814 | "AccessControlListQry" 6815 | "AccessControlListAdd" 6816 | "AccessControlListRemove" 6817 | "BillingAmountUpdate" 6819 Action = 6820 DomainWriteAction 6821 | DomainQueryAction 6822 | HandleWriteAction 6823 | HandleQueryAction 6824 | RegistrarWriteAction 6825 | RegistrarQueryAction 6826 | RegistryAction 6828 ActionEtc = 6829 Action 6830 | "UnknownTransaction" 6831 | "DomainTransfer" 6832 | "AckMessage" 6834 element.Response = 6835 element Response { 6836 attribute Action { ActionEtc }, 6837 attribute FeId { Number }, 6838 attribute FeSeq { Number }, 6839 attribute OrigRegistrarId { RegistrarId }, 6840 attribute TransId { UID }?, 6841 attribute Rows { Number }?, 6842 attribute Count { Number }?, 6843 attribute MoreRowsAvailable { Boolean }?, 6844 attribute RecipientRegistrarId { RegistrarId }?, 6845 element.FeTimeStamp, 6846 (element.Response* | ActionResponse | element.AckResponse)? 6847 } 6849 element.AckResponse = 6850 element AckResponse { 6851 attribute OriginatingRegistrarId { RegistrarId }, 6852 attribute TransId { UID }, 6853 attribute Remaining { Number } 6854 } 6856 # ++ Error +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6857 # Errors can be either specific to a requested action, or generic 6858 # to the whole request. A globally unique errorid identifies the 6859 # error that occured, and a human-readable string describing the 6860 # error is enclosed. 6861 # The errorids are assigned like HTTP, where there are three digits 6862 # to identify the error. The first digit indicates approximately 6863 # the status (success, failure, etc); the second is a subcategory of 6864 # that, and the third is used for fine detail indications. 6865 # The exact list of errors is in SRS::Error module. 6866 element.Error = 6867 element Error { 6868 attribute ErrorId { UID }, 6869 attribute Severity { Number }, 6870 attribute Hint { UID }, 6871 element.Description, 6872 element.ErrorDetails* 6873 } 6875 element.Description = 6876 element Description { 6877 text 6878 } 6880 element.ErrorDetails = 6881 element ErrorDetails { 6882 text 6883 } 6885 element.FeTimeStamp = 6886 element FeTimeStamp { 6887 TimeStamp, 6888 empty 6889 } 6891 # == Lower level elements ============================================== 6893 # Zone information: fields held in the register, that can be obtained 6894 # through the registrar/registry protocol. 6895 # and/or maintainable through the registry protocol. 6897 # ++ Domain details ++++++++++++++++++++++++++++++++++++++++++++++++++++ 6898 # NOTE: the domain authid (UDAI) is sent ONLY if it has been newly 6899 # generated; otherwise it is assumed that the registrar has the 6900 # previous value cached. 6901 element.Domain = 6902 element Domain { 6903 attribute DomainName { DomainName }, 6904 attribute DomainNameUnicode { DomainNameUnicode }?, 6905 attribute DomainNameUnicodeHex { DomainNameUnicodeHex }?, 6906 attribute DomainNameLanguage { DomainNameLanguage }?, 6907 attribute RegistrantRef { UID }?, 6908 attribute RegistrarName { text }?, 6909 attribute Status { DomainStatus }?, 6910 attribute Delegate { Boolean }?, 6911 attribute Term { Term }?, 6912 attribute RegistrarId { RegistrarId }?, 6913 attribute UDAI { UID }?, 6914 element.NameServers?, 6915 element.RegistrantContact?, 6916 element.RegistrarPublicContact?, 6917 element.AdminContact?, 6918 element.TechnicalContact?, 6919 element.BilledUntil?, 6920 element.RegisteredDate?, 6921 element.CancelledDate?, 6922 element.LockedDate?, 6923 element.AuditDetails? 6924 } 6926 element.BilledUntil = 6927 element BilledUntil { 6928 TimeStamp, 6929 empty 6930 } 6932 element.LockedDate = 6933 element LockedDate { 6934 TimeStamp, 6935 empty 6936 } 6938 element.RegisteredDate = 6939 element RegisteredDate { 6940 TimeStamp, 6941 empty 6942 } 6944 element.CancelledDate = 6945 element CancelledDate { 6946 TimeStamp, 6947 empty 6948 } 6950 element.DomainTransfer = 6951 element DomainTransfer { 6952 attribute RegistrarName { text }, 6953 TimeStamp, 6954 element.TransferredDomain+ 6955 } 6957 element.TransferredDomain = 6958 element TransferredDomain { 6959 text 6960 } 6962 element.UDAIValid = 6963 element UDAIValid { 6964 attribute Valid { Boolean }, 6965 empty 6966 } 6968 # Name servers 6969 # The IP address should be included if and only if the fqdn is within 6970 # the zone that it is associated with 6971 # the IP6Addr may be in any of the formats specified by RFC 2373, ie. 6972 # 1. X:X:X:X:X:X:X:X (Fully Specified) 6973 # 2. X:X:X::X ('::' denotes compressed zeroes ) 6974 # 3. X:X:X:X:X:X:d.d.d.d ('d.d.d.d' denotes an IP4 Address) 6975 element.NameServers = 6976 element NameServers { 6977 element.Server* 6978 } 6980 element.Server = 6981 element Server { 6982 attribute FQDN { text }, 6983 attribute IP4Addr { text }?, 6984 attribute IP6Addr { text }?, 6985 empty 6986 } 6988 # Name server Filter 6989 # As above, but a filter for a search 6990 element.NameServerFilter = 6991 element NameServerFilter { 6992 element.ServerFilter+ 6993 } 6995 element.ServerFilter = 6996 element ServerFilter { 6997 attribute FQDN { text }?, 6998 attribute IP4Addr { text }?, 6999 attribute IP6Addr { text }?, 7000 empty 7001 } 7003 # ++ Registrar details +++++++++++++++++++++++++++++++++++++++++++++++++ 7005 element.Registrar = 7006 element Registrar { 7007 attribute RegistrarId { RegistrarId }, 7008 attribute Name { text }, 7009 attribute AccRef { text }, 7010 attribute URL { text }?, 7011 element.RegistrarPublicContact, 7012 element.RegistrarSRSContact, 7013 element.DefaultTechnicalContact, 7014 element.EncryptKeys, 7015 element.EPPAuth?, 7016 element.Allowed2LDs?, 7017 element.Roles?, 7018 element.AuditDetails? 7019 } 7021 element.Allowed2LDs = 7022 element Allowed2LDs { 7023 element.SecondLD* 7024 } 7026 element.SecondLD = 7027 element SecondLD { 7028 attribute DomainName { DomainName }, 7029 empty 7030 } 7032 element.Roles = 7033 element Roles { 7034 element.Role* 7035 } 7037 element.Role = 7038 element Role { 7039 attribute RoleName { Role }, 7040 empty 7041 } 7043 element.EncryptKeys = 7044 element EncryptKeys { 7045 element.EncryptKey* 7046 } 7048 element.EncryptKey = 7049 element EncryptKey { 7050 text 7051 } 7053 element.EPPAuth = 7054 element EPPAuth { 7055 attribute Password { text } 7056 } 7058 # ++ Billing transaction +++++++++++++++++++++++++++++++++++++++++++++++ 7060 element.BillingTrans = 7061 element BillingTrans { 7062 attribute RegistrarId { RegistrarId }, 7063 attribute Type { text }, 7064 attribute TransStatus { BillStatus }, 7065 attribute DomainName { DomainName }, 7066 attribute RegistrantRef { UID }?, 7067 attribute BillingTerm { Term }, 7068 attribute InvoiceId { UID }?, 7069 attribute Amount { Dollars }, 7070 element.InvoiceDate?, 7071 element.TransDate, 7072 element.BillPeriodStart, 7073 element.BillPeriodEnd 7074 } 7076 element.InvoiceDate = 7077 element InvoiceDate { 7078 TimeStamp, 7079 empty 7080 } 7082 element.TransDate = 7083 element TransDate { 7084 TimeStamp, 7085 empty 7086 } 7088 element.BillPeriodStart = 7089 element BillPeriodStart { 7090 TimeStamp, 7091 empty 7092 } 7094 element.BillPeriodEnd = 7095 element BillPeriodEnd { 7096 TimeStamp, 7097 empty 7098 } 7100 # ++ Contact information: for registrant, admin, technical +++++++++++++ 7101 element.RegistrantContact = 7102 element RegistrantContact { 7103 ContactAttr, 7104 Contact 7105 } 7107 element.RegistrantContactFilter = 7108 element RegistrantContactFilter { 7109 ContactAttrFilter, 7110 ContactFilter 7111 } 7113 element.AdminContact = 7114 element AdminContact { 7115 ContactAttr, 7116 Contact 7117 } 7119 element.AdminContactFilter = 7120 element AdminContactFilter { 7121 ContactAttrFilter, 7122 ContactFilter 7123 } 7125 element.TechnicalContact = 7126 element TechnicalContact { 7127 ContactAttr, 7128 Contact 7129 } 7131 element.TechnicalContactFilter = 7132 element TechnicalContactFilter { 7133 ContactAttrFilter, 7134 ContactFilter 7135 } 7137 element.ChangedDomains = 7138 element ChangedDomains { 7139 element.Domain* 7140 } 7142 element.Handle = 7143 element Handle { 7144 attribute RegistrarId { RegistrarId }, 7145 ContactAttr, 7146 Contact, 7147 element.AuditDetails?, 7148 element.ChangedDomains? 7150 } 7152 element.Message = 7153 element Message { 7154 element.Response, 7155 attribute Remaining { Number }? 7156 } 7158 element.HandleIdFilter = 7159 element HandleIdFilter { 7160 text 7161 } 7163 element.ContactFilter = 7164 element ContactFilter { 7165 ContactAttrFilter, 7166 ContactFilter 7167 } 7169 element.RegistrarPublicContact = 7170 element RegistrarPublicContact { 7171 ContactAttr, 7172 Contact 7173 } 7175 element.DefaultTechnicalContact = 7176 element DefaultTechnicalContact { 7177 ContactAttr, 7178 Contact 7179 } 7181 element.RegistrarSRSContact = 7182 element RegistrarSRSContact { 7183 ContactAttr, 7184 Contact 7185 } 7187 # Country is an ISO 3166-1 country code 7188 element.PostalAddress = 7189 element PostalAddress { 7190 attribute Address1 { text }?, 7191 attribute Address2 { text }?, 7192 attribute City { text }?, 7193 attribute Province { text }?, 7194 attribute CountryCode { text }?, 7195 attribute PostalCode { text }?, 7196 empty 7198 } 7200 element.PostalAddressFilter = 7201 element PostalAddressFilter { 7202 attribute Address1 { text }?, 7203 attribute Address2 { text }?, 7204 attribute City { text }?, 7205 attribute Province { text }?, 7206 attribute CountryCode { text }?, 7207 attribute PostalCode { text }?, 7208 empty 7209 } 7211 element.Phone = 7212 element Phone { 7213 PhoneAttr, 7214 empty 7215 } 7217 element.Fax = 7218 element Fax { 7219 PhoneAttr, 7220 empty 7221 } 7223 # ++ Raw responses +++++++++++++++++++++++++++++++++++++++++++++++++++++ 7225 element.RawRequest = 7226 element RawRequest { 7227 element.XML, 7228 element.Signature 7229 } 7231 element.RawResponse = 7232 element RawResponse { 7233 element.XML, 7234 element.Signature 7235 } 7237 element.XML = 7238 element XML { 7239 text 7240 } 7242 element.Signature = 7243 element Signature { 7244 text 7245 } 7247 # ++ System Parameters +++++++++++++++++++++++++++++++++++++++++++++++++ 7249 element.SysParam = 7250 element SysParam { 7251 attribute Name { text }, 7252 element.ParamValue, 7253 element.AuditDetails? 7254 } 7256 element.ParamValue = 7257 element ParamValue { 7258 text 7259 } 7261 # ++ Run Log +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7263 element.RunLog = 7264 element RunLog { 7265 attribute ProcessName { text }, 7266 attribute Parameters { text }?, 7267 attribute ActionStatus { text }, 7268 attribute Control { text }?, 7269 element.RunLogTimeStamp, 7270 element.RunLogDetails? 7271 } 7273 element.RunLogDetails = 7274 element RunLogDetails { 7275 text 7276 } 7278 element.RunLogTimeStamp = 7279 element RunLogTimeStamp { 7280 TimeStamp, 7281 empty 7282 } 7284 # ++ Schedule ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7286 # Frequency in ? 7287 element.Schedule = 7288 element Schedule { 7289 attribute ProcessName { ScheduledJob }, 7290 attribute Frequency { text }, 7291 attribute Parameters { text }?, 7292 attribute CreateByRegistrarId { UID }, 7293 attribute CreateActionId { UID }, 7294 attribute CancelByRegistrarId { UID }?, 7295 attribute CancelActionId { UID }?, 7296 element.FirstRunDate, 7297 element.FinalRunDate?, 7298 element.CreateAuditText?, 7299 element.CancelAuditText? 7300 } 7302 element.FirstRunDate = 7303 element FirstRunDate { 7304 TimeStamp, 7305 empty 7306 } 7308 element.LastRunDate = 7309 element LastRunDate { 7310 TimeStamp, 7311 empty 7312 } 7314 element.CreateAuditText = 7315 element CreateAuditText { 7316 text 7317 } 7319 element.CancelAuditText = 7320 element CancelAuditText { 7321 text 7322 } 7324 # ++ Audit details ++++++++++++++++++++++++++++++++++++++++++ 7326 element.AuditDetails = 7327 element AuditDetails { 7328 attribute RegistrarId { text }?, 7329 attribute ActionId { UID }?, 7330 element.AuditTime?, 7331 element.AuditText? 7332 } 7334 element.AuditTime = 7335 element AuditTime { 7336 DateRange 7337 } 7339 element.AuditText = 7340 element AuditText { 7341 text 7342 } 7344 # == Various =========================================================== 7346 element.From = 7347 element From { 7348 TimeStamp, 7349 empty 7350 } 7352 element.To = 7353 element To { 7354 TimeStamp, 7355 empty 7356 } 7358 start = element.NZSRSRequest | element.NZSRSResponse 7360 Author's Address 7362 Matthew Hunt 7363 New Zealand Registry Services 7364 Level 9 7365 Exchange Place 7366 5-7 Willeston Street 7367 Wellington 7368 New Zealand 7370 Email: matt@nzrs.net.nz 7371 URI: http://www.nzrs.net.nz/