| rfc7483.txt | draft-ietf-regext-rfc7483bis-05.original | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) A. Newton | REGEXT Working Group S. Hollenbeck | |||
| Request for Comments: 7483 ARIN | Internet-Draft Verisign Labs | |||
| Category: Standards Track S. Hollenbeck | Obsoletes: 7483 (if approved) A. Newton | |||
| ISSN: 2070-1721 Verisign Labs | Intended status: Standards Track AWS | |||
| March 2015 | Expires: 28 August 2021 24 February 2021 | |||
| JSON Responses for the Registration Data Access Protocol (RDAP) | JSON Responses for the Registration Data Access Protocol (RDAP) | |||
| draft-ietf-regext-rfc7483bis-05 | ||||
| Abstract | Abstract | |||
| This document describes JSON data structures representing | This document describes JSON data structures representing | |||
| registration information maintained by Regional Internet Registries | registration information maintained by Regional Internet Registries | |||
| (RIRs) and Domain Name Registries (DNRs). These data structures are | (RIRs) and Domain Name Registries (DNRs). These data structures are | |||
| used to form Registration Data Access Protocol (RDAP) query | used to form Registration Data Access Protocol (RDAP) query | |||
| responses. | responses. If approved, this document obsoletes RFC 7483. | |||
| Status of This Memo | Status of This Memo | |||
| This is an Internet Standards Track document. | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | ||||
| This document is a product of the Internet Engineering Task Force | Internet-Drafts are working documents of the Internet Engineering | |||
| (IETF). It represents the consensus of the IETF community. It has | Task Force (IETF). Note that other groups may also distribute | |||
| received public review and has been approved for publication by the | working documents as Internet-Drafts. The list of current Internet- | |||
| Internet Engineering Steering Group (IESG). Further information on | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet Standards is available in Section 2 of RFC 5741. | ||||
| Information about the current status of this document, any errata, | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and how to provide feedback on it may be obtained at | and may be updated, replaced, or obsoleted by other documents at any | |||
| http://www.rfc-editor.org/info/rfc7483. | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | ||||
| This Internet-Draft will expire on 28 August 2021. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
| carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
| to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
| include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
| the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Terminology and Definitions . . . . . . . . . . . . . . . 3 | 1.1. Terminology and Definitions . . . . . . . . . . . . . . . 3 | |||
| 1.2. Data Model . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.2. Data Model . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Use of JSON . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Use of JSON . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.1. Naming . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.1. Naming . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Common Data Types . . . . . . . . . . . . . . . . . . . . . . 7 | 3. Common Data Types . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4. Common Data Structures . . . . . . . . . . . . . . . . . . . 8 | 4. Common Data Structures . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.1. RDAP Conformance . . . . . . . . . . . . . . . . . . . . 8 | 4.1. RDAP Conformance . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.2. Links . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 4.2. Links . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 4.3. Notices and Remarks . . . . . . . . . . . . . . . . . . . 10 | 4.3. Notices and Remarks . . . . . . . . . . . . . . . . . . . 10 | |||
| 4.4. Language Identifier . . . . . . . . . . . . . . . . . . . 11 | 4.4. Language Identifier . . . . . . . . . . . . . . . . . . . 12 | |||
| 4.5. Events . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 4.5. Events . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 4.6. Status . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 4.6. Status . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 4.7. Port 43 WHOIS Server . . . . . . . . . . . . . . . . . . 13 | 4.7. Port 43 WHOIS Server . . . . . . . . . . . . . . . . . . 14 | |||
| 4.8. Public IDs . . . . . . . . . . . . . . . . . . . . . . . 13 | 4.8. Public IDs . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 4.9. Object Class Name . . . . . . . . . . . . . . . . . . . . 14 | 4.9. Object Class Name . . . . . . . . . . . . . . . . . . . . 14 | |||
| 4.10. An Example . . . . . . . . . . . . . . . . . . . . . . . 14 | 4.10. An Example . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 5. Object Classes . . . . . . . . . . . . . . . . . . . . . . . 15 | 5. Object Classes . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.1. The Entity Object Class . . . . . . . . . . . . . . . . . 16 | 5.1. The Entity Object Class . . . . . . . . . . . . . . . . . 17 | |||
| 5.2. The Nameserver Object Class . . . . . . . . . . . . . . . 22 | 5.2. The Nameserver Object Class . . . . . . . . . . . . . . . 23 | |||
| 5.3. The Domain Object Class . . . . . . . . . . . . . . . . . 26 | 5.3. The Domain Object Class . . . . . . . . . . . . . . . . . 26 | |||
| 5.4. The IP Network Object Class . . . . . . . . . . . . . . . 38 | 5.4. The IP Network Object Class . . . . . . . . . . . . . . . 39 | |||
| 5.5. Autonomous System Number Entity Object Class . . . . . . 42 | 5.5. The Autonomous System Number Object Class . . . . . . . . 43 | |||
| 6. Error Response Body . . . . . . . . . . . . . . . . . . . . . 45 | 6. Error Response Body . . . . . . . . . . . . . . . . . . . . . 46 | |||
| 7. Responding to Help Queries . . . . . . . . . . . . . . . . . 48 | 7. Responding to Help Queries . . . . . . . . . . . . . . . . . 48 | |||
| 8. Responding To Searches . . . . . . . . . . . . . . . . . . . 48 | 8. Responding To Searches . . . . . . . . . . . . . . . . . . . 48 | |||
| 9. Indicating Truncated Responses . . . . . . . . . . . . . . . 49 | 9. Indicating Truncated Responses . . . . . . . . . . . . . . . 49 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 52 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 10.1. RDAP JSON Media Type Registration . . . . . . . . . . . 52 | 10.1. RDAP JSON Media Type Registration . . . . . . . . . . . 52 | |||
| 10.2. JSON Values Registry . . . . . . . . . . . . . . . . . . 53 | 10.2. JSON Values Registry . . . . . . . . . . . . . . . . . . 53 | |||
| 10.2.1. Notice and Remark Types . . . . . . . . . . . . . . 54 | 10.2.1. Notice and Remark Types . . . . . . . . . . . . . . 54 | |||
| 10.2.2. Status . . . . . . . . . . . . . . . . . . . . . . . 56 | 10.2.2. Status . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
| 10.2.3. Event Actions . . . . . . . . . . . . . . . . . . . 49 | 10.2.3. Event Actions . . . . . . . . . . . . . . . . . . . 60 | |||
| 10.2.4. Roles . . . . . . . . . . . . . . . . . . . . . . . 61 | 10.2.4. Roles . . . . . . . . . . . . . . . . . . . . . . . 62 | |||
| 10.2.5. Variant Relations . . . . . . . . . . . . . . . . . 63 | 10.2.5. Variant Relations . . . . . . . . . . . . . . . . . 65 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 64 | 11. Implementation Status . . . . . . . . . . . . . . . . . . . . 66 | |||
| 12. Internationalization Considerations . . . . . . . . . . . . . 64 | 11.1. RedDog . . . . . . . . . . . . . . . . . . . . . . . . . 67 | |||
| 12.1. Character Encoding . . . . . . . . . . . . . . . . . . . 64 | 11.2. Verisign . . . . . . . . . . . . . . . . . . . . . . . . 67 | |||
| 12.2. URIs and IRIs . . . . . . . . . . . . . . . . . . . . . 64 | 11.3. Verisign Labs . . . . . . . . . . . . . . . . . . . . . 68 | |||
| 12.3. Language Tags . . . . . . . . . . . . . . . . . . . . . 64 | 11.4. Asia-Pacific Network Information Centre (APNIC) . . . . 68 | |||
| 12.4. Internationalized Domain Names . . . . . . . . . . . . . 65 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 68 | |||
| 13. Privacy Considerations . . . . . . . . . . . . . . . . . . . 65 | 13. Internationalization Considerations . . . . . . . . . . . . . 69 | |||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 65 | 13.1. Character Encoding . . . . . . . . . . . . . . . . . . . 69 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 65 | 13.2. URIs and IRIs . . . . . . . . . . . . . . . . . . . . . 69 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 67 | 13.3. Language Tags . . . . . . . . . . . . . . . . . . . . . 69 | |||
| 13.4. Internationalized Domain Names . . . . . . . . . . . . . 69 | ||||
| Appendix A. Suggested Data Modeling with the Entity Object Class 68 | 14. Privacy Considerations . . . . . . . . . . . . . . . . . . . 70 | |||
| A.1. Registrants and Contacts . . . . . . . . . . . . . . . . 68 | 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 70 | |||
| A.2. Registrars . . . . . . . . . . . . . . . . . . . . . . . 70 | 15.1. Normative References . . . . . . . . . . . . . . . . . . 70 | |||
| Appendix B. Modeling Events . . . . . . . . . . . . . . . . . . 72 | 15.2. Informative References . . . . . . . . . . . . . . . . . 72 | |||
| Appendix C. Structured vs. Unstructured Addresses . . . . . . . 74 | Appendix A. Suggested Data Modeling with the Entity Object | |||
| Appendix D. Secure DNS . . . . . . . . . . . . . . . . . . . . . 76 | Class . . . . . . . . . . . . . . . . . . . . . . . . . . 73 | |||
| Appendix E. Motivations for Using JSON . . . . . . . . . . . . . 77 | A.1. Registrants and Contacts . . . . . . . . . . . . . . . . 73 | |||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 77 | A.2. Registrars . . . . . . . . . . . . . . . . . . . . . . . 76 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 78 | Appendix B. Modeling Events . . . . . . . . . . . . . . . . . . 77 | |||
| Appendix C. Structured vs. Unstructured Addresses . . . . . . . 79 | ||||
| Appendix D. Secure DNS . . . . . . . . . . . . . . . . . . . . . 82 | ||||
| Appendix E. Motivations for Using JSON . . . . . . . . . . . . . 82 | ||||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 83 | ||||
| Changes from RFC 7483 . . . . . . . . . . . . . . . . . . . . . . 83 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 86 | ||||
| 1. Introduction | 1. Introduction | |||
| This document describes responses in the JSON [RFC7159] format for | This document describes responses in the JSON [RFC8259] format for | |||
| the queries as defined by the Registration Data Access Protocol Query | the queries as defined by the Registration Data Access Protocol Query | |||
| Format [RFC7482]. A communication protocol for exchanging queries | Format [I-D.ietf-regext-rfc7482bis]. A communication protocol for | |||
| and responses is described in [RFC7480]. | exchanging queries and responses is described in [RFC7480]. If | |||
| approved, this document obsoletes RFC 7483. | ||||
| 1.1. Terminology and Definitions | 1.1. Terminology and Definitions | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| document are to be interpreted as described in [RFC2119] when | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| specified in their uppercase forms. | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | ||||
| The following list describes terminology and definitions used | The following list describes terminology and definitions used | |||
| throughout this document: | throughout this document: | |||
| DNR: Domain Name Registry | DNR: Domain Name Registry or Domain Name Registrar | |||
| LDH: letters, digits, hyphen | LDH: letters, digits, hyphen | |||
| member: data found within an object as defined by JSON | member: data found within an object as defined by JSON [RFC8259] | |||
| [RFC7159]. | ||||
| object: a data structure as defined by JSON [RFC7159]. | object: a data structure as defined by JSON [RFC8259] | |||
| object class: the definition of members that may be found in JSON | object class: the definition of members that may be found in JSON | |||
| objects described in this document. | objects described in this document | |||
| object instance: an instantiation or specific instance of an object | object instance: an instantiation or specific instance of an object | |||
| class. | class | |||
| RDAP: Registration Data Access Protocol | RDAP: Registration Data Access Protocol | |||
| RIR: Regional Internet Registry | RIR: Regional Internet Registry | |||
| 1.2. Data Model | 1.2. Data Model | |||
| The data model for JSON responses is specified in five sections: | The data model for JSON responses is specified in five sections: | |||
| 1. simple data types conveyed in JSON strings | 1. simple data types conveyed in JSON primitive types (strings, | |||
| numbers, booleans, and null) | ||||
| 2. data structures specified as JSON arrays or objects that are used | 2. data structures specified as JSON arrays or objects that are used | |||
| repeatedly when building up larger objects | repeatedly when building up larger objects | |||
| 3. object classes representing structured data corresponding to a | 3. object classes representing structured data corresponding to a | |||
| lookup of a single object | lookup of a single object | |||
| 4. arrays of objects representing structured data corresponding to a | 4. arrays of objects representing structured data corresponding to a | |||
| search for multiple objects | search for multiple objects | |||
| skipping to change at page 5, line 50 ¶ | skipping to change at page 6, line 19 ¶ | |||
| { | { | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| Figure 1 | Figure 1 | |||
| If The Registry of the Moon desires to express information not found | If The Registry of the Moon desires to express information not found | |||
| in this specification, it might select "lunarNic" as its identifying | in this specification, it might select "lunarNIC" as its identifying | |||
| prefix and insert, as an example, the member named | prefix and insert, as an example, the member named | |||
| "lunarNic_beforeOneSmallStep" to signify registrations occurring | "lunarNIC_beforeOneSmallStep" to signify registrations occurring | |||
| before the first moon landing and the member named | before the first moon landing and the member named | |||
| "lunarNic_harshMistressNotes" that contains other descriptive text. | "lunarNIC_harshMistressNotes" that contains other descriptive text. | |||
| Consider the following JSON response with JSON names, some of which | Consider the following JSON response with JSON names, some of which | |||
| should be ignored by clients without knowledge of their meaning. | should be ignored by clients without knowledge of their meaning. | |||
| { | { | |||
| "handle" : "ABC123", | "handle" : "ABC123", | |||
| "lunarNic_beforeOneSmallStep" : "TRUE THAT!", | "lunarNIC_beforeOneSmallStep" : "TRUE THAT!", | |||
| "remarks" : | "remarks" : | |||
| [ | [ | |||
| { | { | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "lunarNic_harshMistressNotes" : | "lunarNIC_harshMistressNotes" : | |||
| [ | [ | |||
| "In space,", | "In space,", | |||
| "nobody can hear you scream." | "nobody can hear you scream." | |||
| ] | ] | |||
| } | } | |||
| Figure 2 | Figure 2 | |||
| Insertion of unrecognized members ignored by clients may also be used | Insertion of unrecognized members ignored by clients may also be used | |||
| for future revisions to this specification. | for future revisions to this specification. | |||
| Clients processing JSON responses need to be prepared for members | Clients processing JSON responses need to be prepared for members | |||
| representing registration data specified in this document to be | representing registration data specified in this document to be | |||
| absent from a response. In other words, servers are free to not | absent from a response. In other words, servers are free to omit | |||
| include JSON members containing registration data based on their own | unrequired/optional JSON members containing registration data based | |||
| policies. | on their own policies. | |||
| Finally, all JSON names specified in this document are case | Finally, all JSON names specified in this document are case | |||
| sensitive. Both servers and clients MUST transmit and process them | sensitive. Both servers and clients MUST transmit and process them | |||
| using the specified character case. | using the specified character case. | |||
| 3. Common Data Types | 3. Common Data Types | |||
| JSON [RFC7159] defines the data types of a number, character string, | JSON [RFC8259] defines the data types of a number, character string, | |||
| boolean, array, object, and null. This section describes the | boolean, array, object, and null. This section describes the | |||
| semantics and/or syntax reference for common, JSON character strings | semantics and/or syntax reference for common, JSON character strings | |||
| used in this document. | used in this document. | |||
| handle: DNRs and RIRs have registry-unique identifiers that | handle: DNRs and RIRs have registry-unique identifiers that | |||
| may be used to specifically reference an object | may be used to specifically reference an object | |||
| instance. The semantics of this data type as found | instance. The semantics of this data type as found | |||
| in this document are to be a registry-unique | in this document are to be a registry-unique | |||
| reference to the closest enclosing object where the | reference to the closest enclosing object where the | |||
| value is found. The data type names "registryId", | value is found. The data type names "registryId", | |||
| "roid", "nic-handle", "registrationNo", etc., are | "roid", "nic-handle", "registrationNo", etc., are | |||
| terms often synonymous with this data type. In | terms often synonymous with this data type. In | |||
| this document, the term "handle" is used. The term | this document, the term "handle" is used. The term | |||
| exposed to users by clients is a presentation issue | exposed to users by clients is a presentation issue | |||
| beyond the scope of this document. | beyond the scope of this document. This value is a | |||
| simple character string. | ||||
| IPv4 addresses: The representation of IPv4 addresses in this | IPv4 addresses: The representation of IPv4 addresses in this | |||
| document uses the dotted-decimal notation. An | document uses the dotted-decimal notation. An | |||
| example of this textual representation is | example of this textual representation is | |||
| "192.0.2.0". | "192.0.2.0". | |||
| IPv6 addresses: The representation of IPv6 addresses in this | IPv6 addresses: The representation of IPv6 addresses in this | |||
| document follow the forms outlined in [RFC5952]. | document follow the forms outlined in [RFC5952]. | |||
| An example of this textual representation is | An example of this textual representation is | |||
| "2001:db8::1:0:0:1". | "2001:db8::1:0:0:1". | |||
| skipping to change at page 8, line 9 ¶ | skipping to change at page 8, line 27 ¶ | |||
| more of the labels are U-labels as described by | more of the labels are U-labels as described by | |||
| [RFC5890]. Trailing periods are optional. | [RFC5890]. Trailing periods are optional. | |||
| dates and times: The syntax for values denoting dates and times is | dates and times: The syntax for values denoting dates and times is | |||
| defined in [RFC3339]. | defined in [RFC3339]. | |||
| URIs: The syntax for values denoting a Uniform Resource | URIs: The syntax for values denoting a Uniform Resource | |||
| Identifier (URI) is defined by [RFC3986]. | Identifier (URI) is defined by [RFC3986]. | |||
| Contact information is defined using jCards as described in | Contact information is defined using jCards as described in | |||
| [RFC7095]. | [RFC7095]. The "fn" member is required and MUST NOT be null | |||
| according to [RFC6350]. An empty "fn" member MAY be used when the | ||||
| contact name does not exist or is redacted. | ||||
| 4. Common Data Structures | 4. Common Data Structures | |||
| This section defines common data structures used in responses and | This section defines common data structures used in responses and | |||
| object classes. | object classes. | |||
| 4.1. RDAP Conformance | 4.1. RDAP Conformance | |||
| The data structure named "rdapConformance" is an array of strings, | The data structure named "rdapConformance" is an array of strings, | |||
| each providing a hint as to the specifications used in the | each providing a hint as to the specifications used in the | |||
| construction of the response. This data structure appears only in | construction of the response. This data structure MUST appear in the | |||
| the topmost JSON object of a response. | topmost JSON object of a response and MUST NOT appear anywhere else. | |||
| A response to a "help" request will include identifiers for all of | ||||
| the specifications supported by the server. A response to any other | ||||
| request will include only identifiers for the specifications used in | ||||
| the construction of the response. The set of returned identifiers | ||||
| MAY vary depending on the authorization level of the client. | ||||
| An example rdapConformance data structure: | An example rdapConformance data structure: | |||
| "rdapConformance" : | "rdapConformance" : | |||
| [ | [ | |||
| "rdap_level_0" | "rdap_level_0" | |||
| ] | ] | |||
| Figure 3 | Figure 3 | |||
| The string literal "rdap_level_0" signifies conformance with this | The string literal "rdap_level_0" signifies conformance with this | |||
| specification. When custom JSON values are inserted into responses, | specification. When custom JSON values are inserted into responses, | |||
| conformance to those custom specifications MUST use a string prefixed | conformance to those custom specifications MUST be indicated by | |||
| with the appropriate identifier from the IANA RDAP Extensions | including a unique string literal value registered in the IANA RDAP | |||
| registry specified in [RFC7480]. For example, if the fictional | Extensions registry specified in [RFC7480]. For example, if the | |||
| Registry of the Moon wants to signify that their JSON responses are | fictional Registry of the Moon wants to signify that their JSON | |||
| conformant with their registered extensions, the string used might be | responses are conformant with their registered extensions, the string | |||
| "lunarNIC_level_0". These prefixes aid the identification of | used might be "lunarNIC_level_0". These registered values aid the | |||
| specifications for software implementers, and failure to use them | identification of specifications for software implementers, and | |||
| could result in slower adoption of extensions. | failure to use them could result in slower adoption of extensions. | |||
| Example rdapConformance structure with custom extensions noted: | Example rdapConformance structure with custom extensions noted: | |||
| "rdapConformance" : | "rdapConformance" : | |||
| [ | [ | |||
| "rdap_level_0", | "rdap_level_0", | |||
| "lunarNic_level_0" | "lunarNIC_level_0" | |||
| ] | ] | |||
| Figure 4 | Figure 4 | |||
| 4.2. Links | 4.2. Links | |||
| The "links" array is found in data structures to signify links to | The "links" array is found in data structures to signify links to | |||
| other resources on the Internet. The relationship of these links is | other resources on the Internet. The relationship of these links is | |||
| defined by the IANA registry described by [RFC5988]. | defined by the IANA registry described by [RFC8288]. | |||
| The following is an example of the link structure: | The following is an example of the link structure: | |||
| { | { | |||
| "value" : "http://example.com/context_uri", | "value" : "https://example.com/context_uri", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.com/target_uri", | "href" : "https://example.com/target_uri", | |||
| "hreflang" : [ "en", "ch" ], | "hreflang" : [ "en", "ch" ], | |||
| "title" : "title", | "title" : "title", | |||
| "media" : "screen", | "media" : "screen", | |||
| "type" : "application/json" | "type" : "application/json" | |||
| } | } | |||
| Figure 5 | Figure 5 | |||
| The JSON name/values of "rel", "href", "hreflang", "title", "media", | The JSON name/values of "rel", "href", "hreflang", "title", "media", | |||
| and "type" correspond to values found in Section 5 of [RFC5988]. The | and "type" correspond to values found in Section 3 of [RFC8288]. The | |||
| "value" JSON value is the context URI as described by [RFC5988]. The | "value" JSON value is the context URI as described by [RFC8288]. The | |||
| "href" JSON value MUST be specified. All other JSON values are | "value", "rel" and "href" JSON values MUST be specified. All other | |||
| OPTIONAL. | JSON values are OPTIONAL. A "related" link relation MUST NOT include | |||
| an "href" URI that is the same as the "self" link relation "href" URI | ||||
| to reduce the risk of infinite client processing loops. | ||||
| Internationalized Domain Names (IDNs) returned in URIs SHOULD be | ||||
| consistently returned in LDH name format to allow clients to process | ||||
| these IDNs according to their capabilities. | ||||
| This is an example of the "links" array as it might be found in an | This is an example of the "links" array as it might be found in an | |||
| object class: | object class: | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.com/ip/2001:db8::123", | "value" : "https://example.com/ip/2001:db8::123", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.com/ip/2001:db8::123", | "href" : "https://example.com/ip/2001:db8::123", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| }, | }, | |||
| { | { | |||
| "value" : "http://example.com/ip/2001:db8::123", | "value" : "https://example.com/ip/2001:db8::123", | |||
| "rel" : "up", | "rel" : "up", | |||
| "href" : "http://example.com/ip/2001:db8::/48", | "href" : "https://example.com/ip/2001:db8::/48", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ] | ] | |||
| Figure 6 | Figure 6 | |||
| 4.3. Notices and Remarks | 4.3. Notices and Remarks | |||
| The "notices" and "remarks" data structures take the same form. The | The "notices" and "remarks" data structures take the same form. The | |||
| notices structure denotes information about the service providing | notices structure denotes information about the service providing | |||
| RDAP information and/or information about the entire response, | RDAP information and/or information about the entire response, | |||
| whereas the remarks structure denotes information about the object | whereas the remarks structure denotes information about the object | |||
| class that contains it (see Section 5 regarding object classes). | class that contains it (see Section 5 regarding object classes). | |||
| Both are arrays of objects. Each object contains an optional "title" | Both are arrays of objects. Each object contains a "title" string | |||
| string representing the title of the object, an optional "type" | representing the title of the object, a "type" string denoting a | |||
| string denoting a registered type of remark or notice (see | registered type of remark or notice (see Section 10.2.1), an array of | |||
| Section 10.2.1), an array of strings named "description" for the | strings named "description" for the purposes of conveying any | |||
| purposes of conveying any descriptive text, and an optional "links" | descriptive text, and a "links" array as described in Section 4.2. | |||
| array as described in Section 4.2. | The "description" array MUST be included. All other JSON values are | |||
| OPTIONAL. | ||||
| An example of the notices data structure: | An example of the notices data structure: | |||
| "notices" : | "notices" : | |||
| [ | [ | |||
| { | { | |||
| "title" : "Terms of Use", | "title" : "Terms of Use", | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "Service subject to The Registry of the Moon's TOS.", | "Service subject to The Registry of the Moon's TOS.", | |||
| "Copyright (c) 2020 LunarNIC" | "Copyright (c) 2020 LunarNIC" | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/entity/XXXX", | "value" : "https://example.net/entity/XXXX", | |||
| "rel" : "alternate", | "rel" : "alternate", | |||
| "type" : "text/html", | "type" : "text/html", | |||
| "href" : "http://www.example.com/terms_of_use.html" | "href" : "https://www.example.com/terms_of_use.html" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| Figure 7 | Figure 7 | |||
| It is the job of the clients to determine line breaks, spacing, and | It is the job of the clients to determine line breaks, spacing, and | |||
| display issues for sentences within the character strings of the | display issues for sentences within the character strings of the | |||
| "description" array. Each string in the "description" array contains | "description" array. Each string in the "description" array contains | |||
| a single complete division of human-readable text indicating to | a single complete division of human-readable text indicating to | |||
| clients where there are semantic breaks. | clients where there are semantic breaks. | |||
| An example of the remarks data structure: | An example of the remarks data structure: | |||
| "remarks" : | "remarks" : | |||
| [ | [ | |||
| { | { | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| Figure 8 | Figure 8 | |||
| Note that objects in the "remarks" array may also have a "links" | Note that objects in the "remarks" array may also have a "links" | |||
| array. | array. | |||
| While the "title" and "description" fields are intended primarily for | While the "title" and "description" fields are intended primarily for | |||
| human consumption, the "type" string contains a well-known value to | human consumption, the "type" string contains a well-known value to | |||
| be registered with IANA (see Section 10.2.1) for programmatic use. | be registered with IANA (see Section 10.2.1) for programmatic use. | |||
| An example of the remarks data structure: | An example of the remarks data structure: | |||
| skipping to change at page 11, line 41 ¶ | skipping to change at page 12, line 23 ¶ | |||
| { | { | |||
| "type" : "object truncated due to authorization", | "type" : "object truncated due to authorization", | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "Some registration data may not have been given.", | "Some registration data may not have been given.", | |||
| "Use proper authorization credentials to see all of it." | "Use proper authorization credentials to see all of it." | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| Figure 9 | Figure 9 | |||
| While the "remarks" array will appear in many object classes in a | While the "remarks" array will appear in many object classes in a | |||
| response, the "notices" array appears only in the topmost object of a | response, the "notices" array appears only in the topmost object of a | |||
| response. | response. | |||
| 4.4. Language Identifier | 4.4. Language Identifier | |||
| This data structure consists solely of a name/value pair, where the | This data structure consists solely of a name/value pair, where the | |||
| name is "lang" and the value is a string containing a language | name is "lang" and the value is a string containing a language | |||
| identifier as described in [RFC5646]. | identifier as described in [RFC5646]. | |||
| "lang" : "mn-Cyrl-MN" | "lang" : "mn-Cyrl-MN" | |||
| Figure 10 | Figure 10 | |||
| The "lang" attribute may appear anywhere in an object class or data | The "lang" attribute as defined in this section MAY appear anywhere | |||
| structure except for in jCard objects. | in an object class or data structure, except for in jCard objects. | |||
| vCard supports similar functionality by way of the LANGUAGE property | ||||
| parameter (see Section 5.1 of RFC 6350 [RFC6350]). | ||||
| 4.5. Events | 4.5. Events | |||
| This data structure represents events that have occurred on an | This data structure represents events that have occurred on an | |||
| instance of an object class (see Section 5 regarding object classes). | instance of an object class (see Section 5 regarding object classes). | |||
| This is an example of an "events" array. | This is an example of an "events" array. | |||
| "events" : | "events" : | |||
| [ | [ | |||
| skipping to change at page 12, line 44 ¶ | skipping to change at page 13, line 24 ¶ | |||
| "eventActor" : "OTHERID-LUNARNIC", | "eventActor" : "OTHERID-LUNARNIC", | |||
| "eventDate" : "1991-12-31T23:59:59Z" | "eventDate" : "1991-12-31T23:59:59Z" | |||
| } | } | |||
| ] | ] | |||
| Figure 11 | Figure 11 | |||
| The "events" array consists of objects, each with the following | The "events" array consists of objects, each with the following | |||
| members: | members: | |||
| o "eventAction" -- a string denoting the reason for the event | * "eventAction" -- a REQUIRED string denoting the reason for the | |||
| event | ||||
| o "eventActor" -- an optional identifier denoting the actor | * "eventActor" -- an OPTIONAL identifier denoting the actor | |||
| responsible for the event | responsible for the event | |||
| o "eventDate" -- a string containing the time and date the event | * "eventDate" -- a REQUIRED string containing the time and date the | |||
| occurred. | event occurred | |||
| * "links" -- OPTIONAL; see Section 4.2 | ||||
| o "links" -- see Section 4.2 | ||||
| Events can be future dated. One use case for future dating of events | Events can be future dated. One use case for future dating of events | |||
| is to denote when an object expires from a registry. | is to denote when an object expires from a registry. | |||
| The "links" array in this data structure is provided for references | The "links" array in this data structure is provided for references | |||
| to the event actor. In order to reference an RDAP entity, a "rel" of | to the event actor. In order to reference an RDAP entity, a "rel" of | |||
| "related" and a "type" of "application/rdap+json" is used in the link | "related" and a "type" of "application/rdap+json" is used in the link | |||
| reference. | reference. | |||
| See Section 10.2.3 for a list of values for the "eventAction" string. | See Section 10.2.3 for a list of values for the "eventAction" string. | |||
| See Appendix B regarding the various ways events can be modeled. | See Appendix B regarding the various ways events can be modeled. | |||
| 4.6. Status | 4.6. Status | |||
| This data structure, named "status", is an array of strings | This data structure, named "status", is an array of strings | |||
| indicating the state of a registered object (see Section 10.2.2 for a | indicating the state of a registered object (see Section 10.2.2 for a | |||
| list of values). | list of values). | |||
| 4.7. Port 43 WHOIS Server | 4.7. Port 43 WHOIS Server | |||
| This data structure, a member named "port43", is a simple string | This data structure, a member named "port43", is a simple character | |||
| containing the fully qualified host name or IP address of the WHOIS | string containing the fully qualified host name or IP address of the | |||
| [RFC3912] server where the containing object instance may be found. | WHOIS [RFC3912] server where the containing object instance may be | |||
| Note that this is not a URI, as there is no WHOIS URI scheme. | found. Note that this is not a URI, as there is no WHOIS URI scheme. | |||
| 4.8. Public IDs | 4.8. Public IDs | |||
| This data structure maps a public identifier to an object class. It | This data structure maps a public identifier to an object class. It | |||
| is named "publicIds" and is an array of objects, with each object | is named "publicIds" and is an array of objects, with each object | |||
| containing the following members: | containing the following REQUIRED members: | |||
| o type -- a string denoting the type of public identifier | * type -- a string denoting the type of public identifier | |||
| o identifier -- a public identifier of the type denoted by "type" | * identifier -- a string denoting a public identifier of the type | |||
| related to "type" | ||||
| The following is an example of a publicIds structure. | The following is an example of a publicIds structure. | |||
| "publicIds": | "publicIds": | |||
| [ | [ | |||
| { | { | |||
| "type":"IANA Registrar ID", | "type":"IANA Registrar ID", | |||
| "identifier":"1" | "identifier":"1" | |||
| } | } | |||
| ] | ] | |||
| skipping to change at page 14, line 35 ¶ | skipping to change at page 15, line 22 ¶ | |||
| { | { | |||
| "title" : "Content Removed", | "title" : "Content Removed", | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "Without full authorization, content has been removed.", | "Without full authorization, content has been removed.", | |||
| "Sorry, dude!" | "Sorry, dude!" | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/ip/192.0.2.0/24", | "value" : "https://example.net/ip/192.0.2.0/24", | |||
| "rel" : "alternate", | "rel" : "alternate", | |||
| "type" : "text/html", | "type" : "text/html", | |||
| "href" : "http://www.example.com/redaction_policy.html" | "href" : "https://www.example.com/redaction_policy.html" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "lang" : "en", | "lang" : "en", | |||
| "objectClassName" : "ip network", | "objectClassName" : "ip network", | |||
| "startAddress" : "192.0.2.0", | "startAddress" : "192.0.2.0", | |||
| "endAddress" : "192.0.2.255", | "endAddress" : "192.0.2.255", | |||
| "handle" : "XXXX-RIR", | "handle" : "XXXX-RIR", | |||
| "ipVersion" : "v4", | "ipVersion" : "v4", | |||
| skipping to change at page 15, line 19 ¶ | skipping to change at page 16, line 8 ¶ | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| Figure 13 | Figure 13 | |||
| 5. Object Classes | 5. Object Classes | |||
| Object classes represent structures appropriate for a response from | Object classes represent structures appropriate for a response from | |||
| the queries specified in [RFC7482]. | the queries specified in [I-D.ietf-regext-rfc7482bis]. | |||
| Each object class contains a "links" array as specified in | Each object class contains a "links" array as specified in | |||
| Section 4.2. For every object class instance in a response, whether | Section 4.2. For every object class instance in a response, whether | |||
| the object class instance is directly representing the response to a | the object class instance is directly representing the response to a | |||
| query or is embedded in other object class instances or is an item in | query or is embedded in other object class instances or is an item in | |||
| a search result set, servers SHOULD provide a link representing a URI | a search result set, servers SHOULD provide a link representing a URI | |||
| for that object class instance using the "self" relationship as | for that object class instance using the "self" relationship as | |||
| described in the IANA registry specified by [RFC5988]. As explained | described in the IANA registry specified by [RFC8288]. As explained | |||
| in Section 5.2, this may be not always be possible for nameserver | in Section 5.2, this may be not always be possible for nameserver | |||
| data. Clients MUST be able to process object instances without a | data. Clients MUST be able to process object instances without a | |||
| self link. When present, clients can use the self link for caching | self link. When present, clients can use the self link for caching | |||
| data. Servers MAY provide more than one self link for any given | data. Servers MAY provide more than one self link for any given | |||
| object instance. Failure to provide any self link by a server may | object instance. Failure to provide any self link by a server may | |||
| result in clients being unable to cache object class instances. | result in clients being unable to cache object class instances. | |||
| Clients using self links for caching SHOULD not cache any object | Clients using self links for caching SHOULD NOT cache any object | |||
| class instances where the authority of the self link is different | class instances where the authority of the self link is different | |||
| than the authority of the server returning the data. Failing to do | than the authority of the server returning the data. Failing to do | |||
| so might result in cache poisoning. | so might result in cache poisoning. | |||
| Self links MUST contain a "type" element containing the "application/ | Self links MUST contain a "type" element containing the "application/ | |||
| rdap+json" media type when referencing RDAP object instances as | rdap+json" media type when referencing RDAP object instances as | |||
| defined by this document. | defined by this document. | |||
| This is an example of the "links" array with a self link to an object | This is an example of the "links" array with a self link to an object | |||
| class: | class: | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.com/ip/2001:db8::123", | "value" : "https://example.com/ip/2001:db8::123", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.com/ip/2001:db8::123", | "href" : "https://example.com/ip/2001:db8::123", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ] | ] | |||
| Figure 14 | Figure 14 | |||
| 5.1. The Entity Object Class | 5.1. The Entity Object Class | |||
| The entity object class appears throughout this document and is an | The entity object class appears throughout this document and is an | |||
| appropriate response for the /entity/XXXX query defined in | appropriate response for the /entity/XXXX query defined in | |||
| "Registration Data Access Protocol (RDAP) Query Format" [RFC7482]. | "Registration Data Access Protocol (RDAP) Query Format" | |||
| This object class represents the information of organizations, | [I-D.ietf-regext-rfc7482bis]. This object class represents the | |||
| corporations, governments, non-profits, clubs, individual persons, | information of organizations, corporations, governments, non-profits, | |||
| and informal groups of people. All of these representations are so | clubs, individual persons, and informal groups of people. All of | |||
| similar that it is best to represent them in JSON [RFC7159] with one | these representations are so similar that it is best to represent | |||
| construct, the entity object class, to aid in the reuse of code by | them in JSON [RFC8259] with one construct, the entity object class, | |||
| implementers. | to aid in the reuse of code by implementers. | |||
| The entity object class uses jCard [RFC7095] to represent contact | The entity object class uses jCard [RFC7095] to represent contact | |||
| information, such as postal addresses, email addresses, phone numbers | information, such as postal addresses, email addresses, phone numbers | |||
| and names of organizations and individuals. Many of the types of | and names of organizations and individuals. Many of the types of | |||
| information that can be represented with jCard have no use in RDAP, | information that can be represented with jCard have little or no use | |||
| such as birthdays, anniversaries, and gender. | in RDAP, such as birthdays, anniversaries, and gender. | |||
| The entity object is served by both RIRs and DNRs. The following is | The entity object is served by both RIRs and DNRs. The following is | |||
| an example of an entity that might be served by an RIR. | an example of an entity that might be served by an RIR. | |||
| { | { | |||
| "objectClassName" : "entity", | "objectClassName" : "entity", | |||
| "handle":"XXXX", | "handle":"XXXX", | |||
| "vcardArray":[ | "vcardArray":[ | |||
| "vcard", | "vcard", | |||
| [ | [ | |||
| skipping to change at page 18, line 14 ¶ | skipping to change at page 18, line 47 ¶ | |||
| { "type":"work" }, | { "type":"work" }, | |||
| "text", | "text", | |||
| "joe.user@example.com" | "joe.user@example.com" | |||
| ], | ], | |||
| ["geo", { | ["geo", { | |||
| "type":"work" | "type":"work" | |||
| }, "uri", "geo:46.772673,-71.282945"], | }, "uri", "geo:46.772673,-71.282945"], | |||
| ["key", | ["key", | |||
| { "type":"work" }, | { "type":"work" }, | |||
| "uri", | "uri", | |||
| "http://www.example.com/joe.user/joe.asc" | "https://www.example.com/joe.user/joe.asc" | |||
| ], | ], | |||
| ["tz", {}, | ["tz", {}, | |||
| "utc-offset", "-05:00"], | "utc-offset", "-05:00"], | |||
| ["url", { "type":"home" }, | ["url", { "type":"home" }, | |||
| "uri", "http://example.org"] | "uri", "https://example.org"] | |||
| ] | ] | |||
| ], | ], | |||
| "roles":[ "registrar" ], | "roles":[ "registrar" ], | |||
| "publicIds":[ | "publicIds":[ | |||
| { | { | |||
| "type":"IANA Registrar ID", | "type":"IANA Registrar ID", | |||
| "identifier":"1" | "identifier":"1" | |||
| } | } | |||
| ], | ], | |||
| "remarks":[ | "remarks":[ | |||
| { | { | |||
| "description":[ | "description":[ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links":[ | "links":[ | |||
| { | { | |||
| "value":"http://example.com/entity/XXXX", | "value":"https://example.com/entity/XXXX", | |||
| "rel":"self", | "rel":"self", | |||
| "href":"http://example.com/entity/XXXX", | "href":"https://example.com/entity/XXXX", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "events":[ | "events":[ | |||
| { | { | |||
| "eventAction":"registration", | "eventAction":"registration", | |||
| "eventDate":"1990-12-31T23:59:59Z" | "eventDate":"1990-12-31T23:59:59Z" | |||
| } | } | |||
| ], | ], | |||
| "asEventActor":[ | "asEventActor":[ | |||
| skipping to change at page 19, line 15 ¶ | skipping to change at page 19, line 49 ¶ | |||
| "eventAction":"last changed", | "eventAction":"last changed", | |||
| "eventDate":"1991-12-31T23:59:59Z" | "eventDate":"1991-12-31T23:59:59Z" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| Figure 15 | Figure 15 | |||
| The entity object class can contain the following members: | The entity object class can contain the following members: | |||
| o objectClassName -- the string "entity" | * objectClassName -- the string "entity" | |||
| * handle -- a string representing a registry-unique identifier of | ||||
| o handle -- a string representing a registry unique identifier of | ||||
| the entity | the entity | |||
| o vcardArray -- a jCard with the entity's contact information | * vcardArray -- a jCard with the entity's contact information | |||
| o roles -- an array of strings, each signifying the relationship an | * roles -- an array of strings, each signifying the relationship an | |||
| object would have with its closest containing object (see | object would have with its closest containing object (see | |||
| Section 10.2.4 for a list of values) | Section 10.2.4 for a list of values) | |||
| o publicIds -- see Section 4.8 | * publicIds -- see Section 4.8 | |||
| o entities -- an array of entity objects as defined by this section | * entities -- an array of entity objects as defined by this section | |||
| o remarks -- see Section 4.3 | * remarks -- see Section 4.3 | |||
| o links -- see Section 4.2 | * links -- see Section 4.2 | |||
| o events -- see Section 4.5 | * events -- see Section 4.5 | |||
| o asEventActor -- this data structure takes the same form as the | * asEventActor -- this data structure takes the same form as the | |||
| events data structure (see Section 4.5), but each object in the | events data structure (see Section 4.5), but each object in the | |||
| array MUST NOT have an "eventActor" member. These objects denote | array MUST NOT have an "eventActor" member. These objects denote | |||
| that the entity is an event actor for the given events. See | that the entity is an event actor for the given events. See | |||
| Appendix B regarding the various ways events can be modeled. | Appendix B regarding the various ways events can be modeled. | |||
| o status -- see Section 4.6 | * status -- see Section 4.6 | |||
| o port43 -- see Section 4.7 | * port43 -- see Section 4.7 | |||
| o networks -- an array of IP network objects as defined in | * networks -- an array of IP network objects as defined in | |||
| Section 5.4 | Section 5.4 | |||
| o autnums -- an array of autnum objects as defined in Section 5.5 | * autnums -- an array of autnum objects as defined in Section 5.5 | |||
| Entities may also have other entities embedded with them in an array. | Entities may also have other entities embedded with them in an array. | |||
| This can be used to model an organization with specific individuals | This can be used to model an organization with specific individuals | |||
| fulfilling designated roles of responsibility. | fulfilling designated roles of responsibility. | |||
| The following is an elided example of an entity with embedded | The following is an elided example of an entity with embedded | |||
| entities. | entities. | |||
| { | { | |||
| "objectClassName" : "entity", | "objectClassName" : "entity", | |||
| "handle" : "ANENTITY", | "handle" : "ANENTITY", | |||
| skipping to change at page 21, line 41 ¶ | skipping to change at page 22, line 33 ¶ | |||
| "remarks":[ | "remarks":[ | |||
| { | { | |||
| "description":[ | "description":[ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links":[ | "links":[ | |||
| { | { | |||
| "value":"http://example.com/entity/XXXX", | "value":"https://example.com/entity/XXXX", | |||
| "rel":"self", | "rel":"self", | |||
| "href":"http://example.com/entity/XXXX", | "href":"https://example.com/entity/XXXX", | |||
| "type":"application/rdap+json" | "type":"application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "port43":"whois.example.net", | "port43":"whois.example.net", | |||
| "events":[ | "events":[ | |||
| { | { | |||
| "eventAction":"registration", | "eventAction":"registration", | |||
| "eventDate":"1990-12-31T23:59:59Z" | "eventDate":"1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| { | { | |||
| skipping to change at page 22, line 24 ¶ | skipping to change at page 23, line 16 ¶ | |||
| See Appendix A for use of the entity object class to model various | See Appendix A for use of the entity object class to model various | |||
| types of entities found in both RIRs and DNRs. See Appendix C | types of entities found in both RIRs and DNRs. See Appendix C | |||
| regarding structured vs. unstructured postal addresses in entities. | regarding structured vs. unstructured postal addresses in entities. | |||
| 5.2. The Nameserver Object Class | 5.2. The Nameserver Object Class | |||
| The nameserver object class represents information regarding DNS | The nameserver object class represents information regarding DNS | |||
| nameservers used in both forward and reverse DNS. RIRs and some DNRs | nameservers used in both forward and reverse DNS. RIRs and some DNRs | |||
| register or expose nameserver information as an attribute of a domain | register or expose nameserver information as an attribute of a domain | |||
| name, while other DNRs model nameservers as "first class objects". | name, while other DNRs model nameservers as "first class objects". | |||
| Please note that some of the examples in this section include lines | ||||
| that have been wrapped for reading clarity. | ||||
| The nameserver object class accommodates both models and degrees of | The nameserver object class accommodates both models and degrees of | |||
| variation in between. | variation in between. | |||
| The following is an example of a nameserver object. | The following is an example of a nameserver object. | |||
| { | { | |||
| "objectClassName" : "nameserver", | "objectClassName" : "nameserver", | |||
| "handle" : "XXXX", | "handle" : "XXXX", | |||
| "ldhName" : "ns1.xn--fo-5ja.example", | "ldhName" : "ns1.xn--fo-5ja.example", | |||
| "unicodeName" : "ns1.foo.example", | "unicodeName" : "ns.fóo.example", | |||
| "status" : [ "active" ], | "status" : [ "active" ], | |||
| "ipAddresses" : | "ipAddresses" : | |||
| { | { | |||
| "v4": [ "192.0.2.1", "192.0.2.2" ], | "v4": [ "192.0.2.1", "192.0.2.2" ], | |||
| "v6": [ "2001:db8::123" ] | "v6": [ "2001:db8::123" ] | |||
| }, | }, | |||
| "remarks" : | "remarks" : | |||
| [ | [ | |||
| { | { | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/nameserver/xxxx", | "value" : "https://example.net/nameserver/ | |||
| ns1.xn--fo-5ja.example", | ||||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/nameserver/xxxx", | "href" : "https://example.net/nameserver/ | |||
| ns1.xn--fo-5ja.example", | ||||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "port43" : "whois.example.net", | "port43" : "whois.example.net", | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| { | { | |||
| "eventAction" : "last changed", | "eventAction" : "last changed", | |||
| "eventDate" : "1991-12-31T23:59:59Z", | "eventDate" : "1991-12-31T23:59:59Z", | |||
| "eventActor" : "joe@example.com" | "eventActor" : "joe@example.com" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| Figure 18 | Figure 18 | |||
| Figure 18 is an example of a nameserver object with all values given. | Figure 18 is an example of a nameserver object with all appropriate | |||
| Registries using a first-class nameserver data model would embed this | values given. Registries using a first-class nameserver data model | |||
| in domain objects as well as allowing references to it with the | would embed this in domain objects as well as allowing references to | |||
| "/nameserver" query type (all depending on the registry operators | it with the "/nameserver" query type (all depending on the registry | |||
| policy). Other registries may pare back the information as needed. | operators policy). Other registries may pare back the information as | |||
| Figure 19 is an example of a nameserver object as would be found in | needed. Figure 19 is an example of a nameserver object as would be | |||
| RIRs and some DNRs, while Figure 20 is an example of a nameserver | found in RIRs and some DNRs, while Figure 20 is an example of a | |||
| object as would be found in other DNRs. | nameserver object as would be found in other DNRs. | |||
| The following is an example of the simplest nameserver object: | The following is an example of the simplest nameserver object: | |||
| { | { | |||
| "objectClassName" : "nameserver", | "objectClassName" : "nameserver", | |||
| "ldhName" : "ns1.example.com" | "ldhName" : "ns1.example.com" | |||
| } | } | |||
| Figure 19 | Figure 19 | |||
| skipping to change at page 25, line 8 ¶ | skipping to change at page 25, line 45 ¶ | |||
| objects, they may also have an array of entities (Section 5.1) | objects, they may also have an array of entities (Section 5.1) | |||
| embedded to signify parties responsible for the maintenance, | embedded to signify parties responsible for the maintenance, | |||
| registrations, etc., of the nameservers. | registrations, etc., of the nameservers. | |||
| The following is an elided example of a nameserver with embedded | The following is an elided example of a nameserver with embedded | |||
| entities. | entities. | |||
| { | { | |||
| "objectClassName" : "nameserver", | "objectClassName" : "nameserver", | |||
| "handle" : "XXXX", | "handle" : "XXXX", | |||
| "ldhName" : "ns1.xn--fo-5ja.example", | "ldhName" : "ns.xn--fo-5ja.example", | |||
| ... | ... | |||
| "entities" : | "entities" : | |||
| [ | [ | |||
| ... | ... | |||
| ], | ], | |||
| ... | ... | |||
| } | } | |||
| Figure 21 | Figure 21 | |||
| The nameserver object class can contain the following members: | The nameserver object class can contain the following members: | |||
| o objectClassName -- the string "nameserver" | * objectClassName -- the string "nameserver" | |||
| o handle -- a string representing a registry unique identifier of | * handle -- a string representing a registry-unique identifier of | |||
| the nameserver | the nameserver | |||
| o ldhName -- a string containing the LDH name of the nameserver (see | * ldhName -- a string containing the LDH name of the nameserver (see | |||
| Section 3) | Section 3) | |||
| o unicodeName -- a string containing a DNS Unicode name of the | * unicodeName -- a string containing a DNS Unicode name of the | |||
| nameserver (see Section 3) | nameserver (see Section 3) | |||
| o ipAddresses -- an object containing the following members: | * ipAddresses -- an object containing the following members: | |||
| * v6 -- an array of strings containing IPv6 addresses of the | - v6 -- an array of strings containing IPv6 addresses of the | |||
| nameserver | nameserver | |||
| * v4 -- an array of strings containing IPv4 addresses of the | - v4 -- an array of strings containing IPv4 addresses of the | |||
| nameserver | nameserver | |||
| o entities -- an array of entity objects as defined by Section 5.1 | * entities -- an array of entity objects as defined by Section 5.1 | |||
| o status -- see Section 4.6 | * status -- see Section 4.6 | |||
| o remarks -- see Section 4.3 | * remarks -- see Section 4.3 | |||
| o links -- see Section 4.2 | * links -- see Section 4.2 | |||
| o port43 -- see Section 4.7 | * port43 -- see Section 4.7 | |||
| o events -- see Section 4.5 | * events -- see Section 4.5 | |||
| 5.3. The Domain Object Class | 5.3. The Domain Object Class | |||
| The domain object class represents a DNS name and point of | The domain object class represents a DNS name and point of | |||
| delegation. For RIRs, these delegation points are in the reverse DNS | delegation. For RIRs, these delegation points are in the reverse DNS | |||
| tree, whereas for DNRs, these delegation points are in the forward | tree, whereas for DNRs, these delegation points are in the forward | |||
| DNS tree. | DNS tree. | |||
| In both cases, the high-level structure of the domain object class | In both cases, the high-level structure of the domain object class | |||
| consists of information about the domain registration, nameserver | consists of information about the domain registration, nameserver | |||
| skipping to change at page 26, line 40 ¶ | skipping to change at page 27, line 28 ¶ | |||
| "entities" : | "entities" : | |||
| [ | [ | |||
| ... | ... | |||
| ] | ] | |||
| } | } | |||
| Figure 22 | Figure 22 | |||
| The domain object class can contain the following members: | The domain object class can contain the following members: | |||
| o objectClassName -- the string "domain" | * objectClassName -- the string "domain" | |||
| o handle -- a string representing a registry unique identifier of | * handle -- a string representing a registry-unique identifier of | |||
| the domain object instance | the domain object instance | |||
| o ldhName -- a string describing a domain name in LDH form as | * ldhName -- a string describing a domain name in LDH form as | |||
| described in Section 3 | described in Section 3 | |||
| o unicodeName -- a string containing a domain name with U-labels as | * unicodeName -- a string containing a domain name with U-labels as | |||
| described in Section 3 | described in Section 3 | |||
| o variants -- an array of objects, each containing the following | * variants -- an array of objects, each containing the following | |||
| values: | values: | |||
| * relation -- an array of strings, with each string denoting the | - relation -- an array of strings, with each string denoting the | |||
| relationship between the variants and the containing domain | relationship between the variants and the containing domain | |||
| object (see Section 10.2.5 for a list of suggested variant | object (see Section 10.2.5 for a list of suggested variant | |||
| relations). | relations). | |||
| * idnTable -- the name of the Internationalized Domain Name (IDN) | - idnTable -- the character string literal that represents the | |||
| table of codepoints, such as one listed with the IANA (see IDN | Internationalized Domain Name (IDN) table that has been | |||
| tables [IANA_IDNTABLES]). | registered in the IANA Repository of IDN Practices | |||
| [IANA_IDNTABLES]. | ||||
| * variantNames -- an array of objects, with each object | - variantNames -- an array of objects, with each object | |||
| containing an "ldhName" member and a "unicodeName" member (see | containing an "ldhName" member and a "unicodeName" member (see | |||
| Section 3). | Section 3). | |||
| o nameservers -- an array of nameserver objects as defined by | * nameservers -- an array of nameserver objects as defined by | |||
| Section 5.2 | Section 5.2 | |||
| o secureDNS -- an object with the following members: | * secureDNS -- an object with the following members: | |||
| * zoneSigned -- true if the zone has been signed, false | - zoneSigned -- boolean true if the zone has been signed, false | |||
| otherwise. | otherwise. | |||
| * delegationSigned -- boolean true if there are DS records in the | - delegationSigned -- boolean true if there are DS records in the | |||
| parent, false otherwise. | parent, false otherwise. | |||
| * maxSigLife -- an integer representing the signature lifetime in | - maxSigLife -- an integer representing the signature lifetime in | |||
| seconds to be used when creating the RRSIG DS record in the | seconds to be used when creating the RRSIG DS record in the | |||
| parent zone [RFC5910]. | parent zone [RFC5910]. | |||
| * dsData -- an array of objects, each with the following members: | - dsData -- an array of objects, each with the following members: | |||
| + keyTag -- an integer as specified by the key tag field of a | o keyTag -- an integer as specified by the key tag field of a | |||
| DNS DS record as specified by [RFC4034] in presentation | DNS DS record as specified by [RFC4034] in presentation | |||
| format | format | |||
| + algorithm -- an integer as specified by the algorithm field | o algorithm -- an integer as specified by the algorithm field | |||
| of a DNS DS record as described by RFC 4034 in presentation | of a DNS DS record as described by RFC 4034 in presentation | |||
| format | format | |||
| + digest -- a string as specified by the digest field of a DNS | o digest -- a string as specified by the digest field of a DNS | |||
| DS record as specified by RFC 4034 in presentation format | DS record as specified by RFC 4034 in presentation format | |||
| + digestType -- an integer as specified by the digest type | o digestType -- an integer as specified by the digest type | |||
| field of a DNS DS record as specified by RFC 4034 in | field of a DNS DS record as specified by RFC 4034 in | |||
| presentation format | presentation format | |||
| + events -- see Section 4.5 | o events -- see Section 4.5 | |||
| + links -- see Section 4.2 | o links -- see Section 4.2 | |||
| * keyData -- an array of objects, each with the following | - keyData -- an array of objects, each with the following | |||
| members: | members: | |||
| + flags -- an integer representing the flags field value in | o flags -- an integer representing the flags field value in | |||
| the DNSKEY record [RFC4034] in presentation format | the DNSKEY record [RFC4034] in presentation format | |||
| + protocol -- an integer representation of the protocol field | o protocol -- an integer representation of the protocol field | |||
| value of the DNSKEY record [RFC4034] in presentation format | value of the DNSKEY record [RFC4034] in presentation format | |||
| + publicKey -- a string representation of the public key in | o publicKey -- a string representation of the public key in | |||
| the DNSKEY record [RFC4034] in presentation format | the DNSKEY record [RFC4034] in presentation format | |||
| + algorithm -- an integer as specified by the algorithm field | o algorithm -- an integer as specified by the algorithm field | |||
| of a DNSKEY record as specified by [RFC4034] in presentation | of a DNSKEY record as specified by [RFC4034] in presentation | |||
| format | format | |||
| + events -- see Section 4.5 | o events -- see Section 4.5 | |||
| + links -- see Section 4.2 | o links -- see Section 4.2 | |||
| See Appendix D for background information on these objects. | See Appendix D for background information on these | |||
| objects. | ||||
| o entities -- an array of entity objects as defined by Section 5.1 | * entities -- an array of entity objects as defined by Section 5.1 | |||
| o status -- see Section 4.6 | * status -- see Section 4.6 | |||
| o publicIds -- see Section 4.8 | * publicIds -- see Section 4.8 | |||
| o remarks -- see Section 4.3 | * remarks -- see Section 4.3 | |||
| o links -- see Section 4.2 | * links -- see Section 4.2 | |||
| o port43 -- see Section 4.7 | * port43 -- see Section 4.7 | |||
| o events -- see Section 4.5 | * events -- see Section 4.5 | |||
| o network -- represents the IP network for which a reverse DNS | * network -- represents the IP network for which a reverse DNS | |||
| domain is referenced. See Section 5.4 | domain is referenced; see Section 5.4 | |||
| The following is an example of a JSON domain object representing a | The following is an example of a JSON domain object representing a | |||
| reverse DNS delegation point that might be served by an RIR. | reverse DNS delegation point that might be served by an RIR (note | |||
| that the dsData digest value has been modified to fit on one line). | ||||
| { | { | |||
| "objectClassName" : "domain", | "objectClassName" : "domain", | |||
| "handle" : "XXXX", | "handle" : "XXXX", | |||
| "ldhName" : "0.2.192.in-addr.arpa", | "ldhName" : "0.2.192.in-addr.arpa", | |||
| "nameservers" : | "nameservers" : | |||
| [ | [ | |||
| { | { | |||
| "objectClassName" : "nameserver", | "objectClassName" : "nameserver", | |||
| "ldhName" : "ns1.rir.example" | "ldhName" : "ns1.rir.example" | |||
| skipping to change at page 29, line 21 ¶ | skipping to change at page 30, line 4 ¶ | |||
| "ldhName" : "0.2.192.in-addr.arpa", | "ldhName" : "0.2.192.in-addr.arpa", | |||
| "nameservers" : | "nameservers" : | |||
| [ | [ | |||
| { | { | |||
| "objectClassName" : "nameserver", | "objectClassName" : "nameserver", | |||
| "ldhName" : "ns1.rir.example" | "ldhName" : "ns1.rir.example" | |||
| }, | }, | |||
| { | { | |||
| "objectClassName" : "nameserver", | "objectClassName" : "nameserver", | |||
| "ldhName" : "ns2.rir.example" | "ldhName" : "ns2.rir.example" | |||
| } | } | |||
| ], | ], | |||
| "secureDNS": | "secureDNS": | |||
| { | { | |||
| "delegationSigned": true, | "delegationSigned": true, | |||
| "dsData": | "dsData": | |||
| [ | [ | |||
| { | { | |||
| "keyTag": 12345, | "keyTag": 25345, | |||
| "algorithm": 3, | "algorithm": 8, | |||
| "digestType": 1, | "digestType": 2, | |||
| "digest": "49FD46E6C4B45C55D4AC" | "digest": "2788970E18EA14...C890C85B8205B94" | |||
| } | } | |||
| ] | ] | |||
| }, | }, | |||
| "remarks" : | "remarks" : | |||
| [ | [ | |||
| { | { | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value": "http://example.net/domain/XXXX", | "value": "https://example.net/domain/0.2.192.in-addr.arpa", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/domain/XXXXX", | "href" : "https://example.net/domain/0.2.192.in-addr.arpa", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| skipping to change at page 31, line 30 ¶ | skipping to change at page 32, line 15 ¶ | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value": "http://example.net/entity/xxxx", | "value": "https://example.net/entity/XXXX", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/entity/xxxx", | "href" : "https://example.net/entity/XXXX", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| { | { | |||
| skipping to change at page 32, line 7 ¶ | skipping to change at page 32, line 41 ¶ | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "network" : | "network" : | |||
| { | { | |||
| "objectClassName" : "ip network", | "objectClassName" : "ip network", | |||
| "handle" : "XXXX-RIR", | "handle" : "XXXX-RIR", | |||
| "startAddress" : "192.0.2.0", | "startAddress" : "192.0.2.0", | |||
| "endAddress" : "192.0.2.255", | "endAddress" : "192.0.2.255", | |||
| "ipVersion" : "v6", | "ipVersion" : "v4", | |||
| "name": "NET-RTR-1", | "name": "NET-RTR-1", | |||
| "type" : "DIRECT ALLOCATION", | "type" : "DIRECT ALLOCATION", | |||
| "country" : "AU", | "country" : "AU", | |||
| "parentHandle" : "YYYY-RIR", | "parentHandle" : "YYYY-RIR", | |||
| "status" : [ "active" ] | "status" : [ "active" ] | |||
| } | } | |||
| } | } | |||
| Figure 23 | Figure 23 | |||
| The following is an example of a JSON domain object representing a | The following is an example of a JSON domain object representing a | |||
| forward DNS delegation point that might be served by a DNR. | forward DNS delegation point that might be served by a DNR. Note | |||
| that the secureDNS keyData publicKey value has been modified to fit | ||||
| on a single line. | ||||
| { | { | |||
| "objectClassName" : "domain", | "objectClassName" : "domain", | |||
| "handle" : "XXXX", | "handle" : "XXXX", | |||
| "ldhName" : "xn--fo-5ja.example", | "ldhName" : "xn--fo-5ja.example", | |||
| "unicodeName" : "foo.example", | "unicodeName" : "fóo.example", | |||
| "variants" : | "variants" : | |||
| [ | [ | |||
| { | { | |||
| "relation" : [ "registered", "conjoined" ], | "relation" : [ "registered", "conjoined" ], | |||
| "variantNames" : | "variantNames" : | |||
| [ | [ | |||
| { | { | |||
| "ldhName" : "xn--fo-cka.example", | "ldhName" : "xn--fo-cka.example", | |||
| "unicodeName" : "foo.example" | "unicodeName" : "fõo.example" | |||
| }, | }, | |||
| { | { | |||
| "ldhName" : "xn--fo-fka.example", | "ldhName" : "xn--fo-fka.example", | |||
| "unicodeName" : "foo.example" | "unicodeName" : "föo.example" | |||
| } | } | |||
| ] | ] | |||
| }, | }, | |||
| { | { | |||
| "relation" : [ "unregistered", "registration restricted" ], | "relation" : [ "unregistered", "registration restricted" ], | |||
| "idnTable": ".EXAMPLE Swedish", | "idnTable": ".EXAMPLE Swedish", | |||
| "variantNames" : | "variantNames" : | |||
| [ | [ | |||
| { | { | |||
| "ldhName": "xn--fo-8ja.example", | "ldhName": "xn--fo-8ja.example", | |||
| "unicodeName" : "foo.example" | "unicodeName" : "fôo.example" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "status" : [ "locked", "transfer prohibited" ], | "status" : [ "locked", "transfer prohibited" ], | |||
| "publicIds":[ | "publicIds":[ | |||
| { | { | |||
| "type":"ENS_Auth ID", | "type":"ENS_Auth ID", | |||
| "identifier":"1234567890" | "identifier":"1234567890" | |||
| skipping to change at page 33, line 39 ¶ | skipping to change at page 34, line 27 ¶ | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/nameserver/XXXX", | "value" : "https://example.net/nameserver/ns1.example.com", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/nameserver/XXXX", | "href" : "https://example.net/nameserver/ns1.example.com", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| { | { | |||
| skipping to change at page 34, line 31 ¶ | skipping to change at page 35, line 20 ¶ | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/nameserver/XXXX", | "value" : "https://example.net/nameserver/ns2.example.com", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/nameserver/XXXX", | "href" : "https://example.net/nameserver/ns2.example.com", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| { | { | |||
| skipping to change at page 35, line 4 ¶ | skipping to change at page 35, line 41 ¶ | |||
| }, | }, | |||
| { | { | |||
| "eventAction" : "last changed", | "eventAction" : "last changed", | |||
| "eventDate" : "1991-12-31T23:59:59Z" | "eventDate" : "1991-12-31T23:59:59Z" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "secureDNS": | "secureDNS": | |||
| { | { | |||
| "zoneSigned": true, | "zoneSigned": true, | |||
| "delegationSigned": true, | "delegationSigned": true, | |||
| "maxSigLife": 604800, | "maxSigLife": 604800, | |||
| "keyData": | "keyData": | |||
| [ | [ | |||
| { | { | |||
| "flags": 257, | "flags": 257, | |||
| "protocol": 3, | "protocol": 3, | |||
| "algorithm": 1, | "algorithm": 8, | |||
| "publicKey": "AQPJ////4Q==", | "publicKey": "AwEAAa6eDzronzjEDbT...Jg1M5N rBSPkuXpdFE=", | |||
| "events": | "events": | |||
| [ | [ | |||
| { | { | |||
| "eventAction": "last changed", | "eventAction": "last changed", | |||
| "eventDate": "2012-07-23T05:15:47Z" | "eventDate": "2012-07-23T05:15:47Z" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| }, | }, | |||
| skipping to change at page 35, line 37 ¶ | skipping to change at page 36, line 27 ¶ | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value": "http://example.net/domain/XXXX", | "value": "https://example.net/domain/xn--fo-5ja.example", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/domain/XXXX", | "href" : "https://example.net/domain/xn--fo-5ja.example", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "port43" : "whois.example.net", | "port43" : "whois.example.net", | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| skipping to change at page 37, line 31 ¶ | skipping to change at page 38, line 22 ¶ | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/entity/xxxx", | "value" : "https://example.net/entity/XXXX", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/entity/xxxx", | "href" : "https://example.net/entity/XXXX", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| { | { | |||
| skipping to change at page 38, line 9 ¶ | skipping to change at page 39, line 9 ¶ | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| Figure 24 | Figure 24 | |||
| 5.4. The IP Network Object Class | 5.4. The IP Network Object Class | |||
| The IP network object class models IP network registrations found in | The IP network object class models IP network registrations found in | |||
| RIRs and is the expected response for the "/ip" query as defined by | RIRs and is the expected response for the "/ip" query as defined by | |||
| [RFC7482]. There is no equivalent object class for DNRs. The high- | [I-D.ietf-regext-rfc7482bis]. There is no equivalent object class | |||
| level structure of the IP network object class consists of | for DNRs. The high- level structure of the IP network object class | |||
| information about the network registration and entities related to | consists of information about the network registration and entities | |||
| the IP network (e.g., registrant information, contacts, etc.). | related to the IP network (e.g., registrant information, contacts, | |||
| etc.). | ||||
| The following is an elided example of the IP network object type | The following is an elided example of the IP network object type | |||
| showing the high-level structure: | showing the high-level structure: | |||
| { | { | |||
| "objectClassName" : "ip network", | "objectClassName" : "ip network", | |||
| "handle" : "XXX", | "handle" : "XXX", | |||
| ... | ... | |||
| "entities" : | "entities" : | |||
| [ | [ | |||
| skipping to change at page 38, line 52 ¶ | skipping to change at page 40, line 4 ¶ | |||
| "status" : [ "active" ], | "status" : [ "active" ], | |||
| "remarks" : | "remarks" : | |||
| [ | [ | |||
| { | { | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/ip/2001:db8::/48", | "value" : "https://example.net/ip/2001:db8::/48", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/ip/2001:db8::/48", | "href" : "https://example.net/ip/2001:db8::/48", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| }, | }, | |||
| { | { | |||
| "value" : "http://example.net/ip/2001:db8::/48", | "value" : "https://example.net/ip/2001:db8::/48", | |||
| "rel" : "up", | "rel" : "up", | |||
| "href" : "http://example.net/ip/2001:C00::/23", | "href" : "https://example.net/ip/2001:db8::/32", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| { | { | |||
| skipping to change at page 39, line 51 ¶ | skipping to change at page 41, line 4 ¶ | |||
| ["lang", { | ["lang", { | |||
| "pref":"1" | "pref":"1" | |||
| }, "language-tag", "fr"], | }, "language-tag", "fr"], | |||
| ["lang", { | ["lang", { | |||
| "pref":"2" | "pref":"2" | |||
| }, "language-tag", "en"], | }, "language-tag", "en"], | |||
| ["org", { | ["org", { | |||
| "type":"work" | "type":"work" | |||
| }, "text", "Example"], | }, "text", "Example"], | |||
| ["title", {}, "text", "Research Scientist"], | ["title", {}, "text", "Research Scientist"], | |||
| ["role", {}, "text", "Project Lead"], | ||||
| ["role", {}, "text", "Project Lead"], | ||||
| ["adr", | ["adr", | |||
| { "type":"work" }, | { "type":"work" }, | |||
| "text", | "text", | |||
| [ | [ | |||
| "", | "", | |||
| "Suite 1234", | "Suite 1234", | |||
| "4321 Rue Somewhere", | "4321 Rue Somewhere", | |||
| "Quebec", | "Quebec", | |||
| "QC", | "QC", | |||
| "G1V 2M2", | "G1V 2M2", | |||
| skipping to change at page 40, line 42 ¶ | skipping to change at page 41, line 43 ¶ | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/entity/xxxx", | "value" : "https://example.net/entity/xxxx", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/entity/xxxx", | "href" : "https://example.net/entity/xxxx", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| skipping to change at page 41, line 19 ¶ | skipping to change at page 42, line 20 ¶ | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| Figure 26 | Figure 26 | |||
| The IP network object class can contain the following members: | The IP network object class can contain the following members: | |||
| o objectClassName -- the string "ip network" | * objectClassName -- the string "ip network" | |||
| o handle -- a string representing an RIR-unique identifier of the | * handle -- a string representing the RIR-unique identifier of the | |||
| network registration | network registration | |||
| o startAddress -- the starting IP address of the network, either | * startAddress -- a string representing the starting IP address of | |||
| IPv4 or IPv6 | the network, either IPv4 or IPv6 | |||
| o endAddress -- the ending IP address of the network, either IPv4 or | * endAddress -- a string representing the ending IP address of the | |||
| IPv6 | network, either IPv4 or IPv6 | |||
| o ipVersion -- a string signifying the IP protocol version of the | * ipVersion -- a string signifying the IP protocol version of the | |||
| network: "v4" signifies an IPv4 network, and "v6" signifies an | network: "v4" signifies an IPv4 network, and "v6" signifies an | |||
| IPv6 network | IPv6 network | |||
| o name -- an identifier assigned to the network registration by the | * name -- a string representing an identifier assigned to the | |||
| registration holder | network registration by the registration holder | |||
| o type -- a string containing an RIR-specific classification of the | * type -- a string containing an RIR-specific classification of the | |||
| network | network as per that RIR's registration model | |||
| o country -- a string containing the two-character country code of | * country -- a string containing the two-character country code of | |||
| the network | the network | |||
| o parentHandle -- a string containing an RIR-unique identifier of | * parentHandle -- a string containing an RIR-unique identifier of | |||
| the parent network of this network registration | the parent network of this network registration | |||
| o status -- an array of strings indicating the state of the IP | * status -- an array of strings indicating the state of the IP | |||
| network | network as defined by Section 4.6 | |||
| o entities -- an array of entity objects as defined by Section 5.1 | * entities -- an array of entity objects as defined by Section 5.1 | |||
| * remarks -- see Section 4.3 | ||||
| o remarks -- see Section 4.3 | * links -- see Section 4.2 | |||
| o links -- see Section 4.2 | ||||
| o port43 -- see Section 4.7 | * port43 -- see Section 4.7 | |||
| o events -- see Section 4.5 | * events -- see Section 4.5 | |||
| 5.5. Autonomous System Number Entity Object Class | 5.5. The Autonomous System Number Object Class | |||
| The Autonomous System number (autnum) object class models Autonomous | The Autonomous System number (autnum) object class models Autonomous | |||
| System number registrations found in RIRs and represents the expected | System number registrations found in RIRs and represents the expected | |||
| response to an "/autnum" query as defined by [RFC7482]. There is no | response to an "/autnum" query as defined by | |||
| equivalent object class for DNRs. The high-level structure of the | [I-D.ietf-regext-rfc7482bis]. There is no equivalent object class | |||
| autnum object class consists of information about the network | for DNRs. The high-level structure of the autnum object class | |||
| consists of information about the autonomous system number | ||||
| registration and entities related to the autnum registration (e.g., | registration and entities related to the autnum registration (e.g., | |||
| registrant information, contacts, etc.) and is similar to the IP | registrant information, contacts, etc.) and is similar to the IP | |||
| network entity object class. | network object class. | |||
| The following is an example of a JSON object representing an autnum. | The following is an example of a JSON object representing an autnum. | |||
| { | { | |||
| "objectClassName" : "autnum", | "objectClassName" : "autnum", | |||
| "handle" : "XXXX-RIR", | "handle" : "XXXX-RIR", | |||
| "startAutnum" : 10, | "startAutnum" : 65536, | |||
| "endAutnum" : 15, | "endAutnum" : 65541, | |||
| "name": "AS-RTR-1", | "name": "AS-RTR-1", | |||
| "type" : "DIRECT ALLOCATION", | "type" : "DIRECT ALLOCATION", | |||
| "status" : [ "active" ], | "status" : [ "active" ], | |||
| "country": "AU", | "country": "AU", | |||
| "remarks" : | "remarks" : | |||
| [ | [ | |||
| { | { | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/autnum/xxxx", | "value" : "https://example.net/autnum/65537", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/autnum/xxxx", | "href" : "https://example.net/autnum/65537", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| { | { | |||
| skipping to change at page 44, line 26 ¶ | skipping to change at page 45, line 30 ¶ | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/entity/XXXX", | "value" : "https://example.net/entity/XXXX", | |||
| "rel" : "self", | "rel" : "self", | |||
| "href" : "http://example.net/entity/XXXX", | "href" : "https://example.net/entity/XXXX", | |||
| "type" : "application/rdap+json" | "type" : "application/rdap+json" | |||
| } | } | |||
| ], | ], | |||
| "events" : | "events" : | |||
| [ | [ | |||
| { | { | |||
| "eventAction" : "registration", | "eventAction" : "registration", | |||
| "eventDate" : "1990-12-31T23:59:59Z" | "eventDate" : "1990-12-31T23:59:59Z" | |||
| }, | }, | |||
| { | { | |||
| skipping to change at page 45, line 8 ¶ | skipping to change at page 46, line 8 ¶ | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| Figure 27 | Figure 27 | |||
| The Autonomous System number object class can contain the following | The Autonomous System number object class can contain the following | |||
| members: | members: | |||
| o objectClassName -- the string "autnum" | * objectClassName -- the string "autnum" | |||
| o handle -- a string representing an RIR-unique identifier of the | * handle -- a string representing the RIR-unique identifier of the | |||
| autnum registration | autnum registration | |||
| o startAutnum -- a number representing the starting number [RFC5396] | * startAutnum -- an unsigned 32-bit integer representing the | |||
| in the block of Autonomous System numbers | starting number [RFC5396] in the block of Autonomous System | |||
| numbers | ||||
| o endAutnum -- a number representing the ending number [RFC5396] in | * endAutnum -- an unsigned 32-bit integer representing the ending | |||
| the block of Autonomous System numbers | number [RFC5396] in the block of Autonomous System numbers | |||
| o name -- an identifier assigned to the autnum registration by the | * name -- a string representing an identifier assigned to the autnum | |||
| registration holder | registration by the registration holder | |||
| o type -- a string containing an RIR-specific classification of the | * type -- a string containing an RIR-specific classification of the | |||
| autnum | autnum as per that RIR's registration model | |||
| o status -- an array of strings indicating the state of the autnum | * status -- an array of strings indicating the state of the autnum | |||
| as defined by Section 4.6 | ||||
| o country -- a string containing the name of the two-character | * country -- a string containing the two-character country code of | |||
| country code of the autnum | the autnum | |||
| o entities -- an array of entity objects as defined by Section 5.1 | * entities -- an array of entity objects as defined by Section 5.1 | |||
| o remarks -- see Section 4.3 | * remarks -- see Section 4.3 | |||
| o links -- see Section 4.2 | * links -- see Section 4.2 | |||
| o port43 -- see Section 4.7 | * port43 -- see Section 4.7 | |||
| o events -- see Section 4.5 | * events -- see Section 4.5 | |||
| 6. Error Response Body | 6. Error Response Body | |||
| Some non-answer responses may return entity bodies with information | Some non-answer responses MAY return entity bodies with information | |||
| that could be more descriptive. | that could be more descriptive. | |||
| The basic structure of that response is an object class containing an | The basic structure of that response is an object class containing a | |||
| error code number (corresponding to the HTTP response code) followed | REQUIRED error code number (corresponding to the HTTP response code) | |||
| by a string named "title" and an array of strings named | followed by an OPTIONAL string named "title" and an OPTIONAL array of | |||
| "description". | strings named "description". | |||
| This is an example of the common response body. | This is an example of the common response body. | |||
| { | { | |||
| "errorCode": 418, | "errorCode": 418, | |||
| "title": "Your Beverage Choice is Not Available", | "title": "Your Beverage Choice is Not Available", | |||
| "description": | "description": | |||
| [ | [ | |||
| "I know coffee has more ummppphhh.", | "I know coffee has more ummppphhh.", | |||
| "Sorry, dude!" | "Sorry, dude!" | |||
| skipping to change at page 47, line 24 ¶ | skipping to change at page 47, line 36 ¶ | |||
| [ | [ | |||
| { | { | |||
| "title" : "Beverage Policy", | "title" : "Beverage Policy", | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "Beverages with caffeine for keeping horses awake." | "Beverages with caffeine for keeping horses awake." | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/ip/192.0.2.0/24", | "value" : "https://example.net/ip/192.0.2.0/24", | |||
| "rel" : "alternate", | "rel" : "alternate", | |||
| "type" : "text/html", | "type" : "text/html", | |||
| "href" : "http://www.example.com/redaction_policy.html" | "href" : "https://www.example.com/redaction_policy.html" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "lang" : "en", | "lang" : "en", | |||
| "errorCode": 418, | "errorCode": 418, | |||
| "title": "Your beverage choice is not available", | "title": "Your beverage choice is not available", | |||
| "description": | "description": | |||
| [ | [ | |||
| "I know coffee has more ummppphhh.", | "I know coffee has more ummppphhh.", | |||
| skipping to change at page 47, line 41 ¶ | skipping to change at page 48, line 4 ¶ | |||
| ], | ], | |||
| "lang" : "en", | "lang" : "en", | |||
| "errorCode": 418, | "errorCode": 418, | |||
| "title": "Your beverage choice is not available", | "title": "Your beverage choice is not available", | |||
| "description": | "description": | |||
| [ | [ | |||
| "I know coffee has more ummppphhh.", | "I know coffee has more ummppphhh.", | |||
| "Sorry, dude!" | "Sorry, dude!" | |||
| ] | ] | |||
| } | } | |||
| Figure 29 | Figure 29 | |||
| 7. Responding to Help Queries | 7. Responding to Help Queries | |||
| The appropriate response to /help queries as defined by [RFC7482] is | The appropriate response to /help queries as defined by | |||
| to use the notices structure as defined in Section 4.3. | [I-D.ietf-regext-rfc7482bis] is to use the notices structure as | |||
| defined in Section 4.3. | ||||
| This is an example of a response to a /help query including the | This is an example of a response to a /help query including the | |||
| rdapConformance data structure. | rdapConformance data structure. | |||
| { | { | |||
| "rdapConformance" : | "rdapConformance" : | |||
| [ | [ | |||
| "rdap_level_0" | "rdap_level_0" | |||
| ], | ], | |||
| "notices" : | "notices" : | |||
| [ | [ | |||
| { | { | |||
| "title" : "Authentication Policy", | "title" : "Authentication Policy", | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "Access to sensitive data for users with proper credentials." | "Access to sensitive data for users with proper credentials." | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/help", | "value" : "https://example.net/help", | |||
| "rel" : "alternate", | "rel" : "alternate", | |||
| "type" : "text/html", | "type" : "text/html", | |||
| "href" : "http://www.example.com/auth_policy.html" | "href" : "https://www.example.com/auth_policy.html" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| Figure 30 | Figure 30 | |||
| 8. Responding To Searches | 8. Responding To Searches | |||
| [RFC7482] specifies three types of searches: domains, nameservers, | [I-D.ietf-regext-rfc7482bis] specifies three types of searches: | |||
| and entities. Responses to these searches take the form of an array | domains, nameservers, and entities. Responses to these searches take | |||
| of object instances where each instance is an appropriate object | the form of an array of object instances where each instance is an | |||
| class for the search (i.e., a search for /domains yields an array of | appropriate object class for the search (i.e., a search for /domains | |||
| domain object instances). These arrays are contained within the | yields an array of domain object instances). These arrays are | |||
| response object. | contained within the response object. | |||
| The names of the arrays are as follows: | The names of the arrays are as follows: | |||
| o for /domains searches, the array is "domainSearchResults" | * for /domains searches, the array is "domainSearchResults" | |||
| o for /nameservers searches, the array is "nameserverSearchResults" | * for /nameservers searches, the array is "nameserverSearchResults" | |||
| o for /entities searches, the array is "entitySearchResults" | * for /entities searches, the array is "entitySearchResults" | |||
| The following is an elided example of a response to a /domains | The following is an elided example of a response to a /domains | |||
| search. | search. | |||
| { | { | |||
| "rdapConformance" : | "rdapConformance" : | |||
| [ | [ | |||
| "rdap_level_0" | "rdap_level_0" | |||
| ], | ], | |||
| ... | ... | |||
| skipping to change at page 50, line 22 ¶ | skipping to change at page 50, line 22 ¶ | |||
| { | { | |||
| "title" : "Search Policy", | "title" : "Search Policy", | |||
| "type" : "result set truncated due to authorization", | "type" : "result set truncated due to authorization", | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "Search results are limited to 25 per day per querying IP." | "Search results are limited to 25 per day per querying IP." | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/help", | "value" : "https://example.net/help", | |||
| "rel" : "alternate", | "rel" : "alternate", | |||
| "type" : "text/html", | "type" : "text/html", | |||
| "href" : "http://www.example.com/search_policy.html" | "href" : "https://www.example.com/search_policy.html" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "domainSearchResults" : | "domainSearchResults" : | |||
| [ | [ | |||
| ... | ... | |||
| ] | ] | |||
| } | } | |||
| skipping to change at page 51, line 39 ¶ | skipping to change at page 51, line 37 ¶ | |||
| { | { | |||
| "title" : "Data Policy", | "title" : "Data Policy", | |||
| "type" : "object truncated due to unexplainable reason", | "type" : "object truncated due to unexplainable reason", | |||
| "description" : | "description" : | |||
| [ | [ | |||
| "Some of the data in this object has been removed." | "Some of the data in this object has been removed." | |||
| ], | ], | |||
| "links" : | "links" : | |||
| [ | [ | |||
| { | { | |||
| "value" : "http://example.net/help", | "value" : "https://example.net/help", | |||
| "rel" : "alternate", | "rel" : "alternate", | |||
| "type" : "text/html", | "type" : "text/html", | |||
| "href" : "http://www.example.com/data_policy.html" | "href" : "https://www.example.com/data_policy.html" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| Figure 33 | Figure 33 | |||
| 10. IANA Considerations | 10. IANA Considerations | |||
| IANA is requested to update the description of the "transfer" event | ||||
| action as described in Section 10.2.3. | ||||
| 10.1. RDAP JSON Media Type Registration | 10.1. RDAP JSON Media Type Registration | |||
| This specification registers the "application/rdap+json" media type. | IANA is requested to update the media type registration as described | |||
| below. | ||||
| This specification registers the "application/rdap+json" media | ||||
| type. | ||||
| Type name: application | Type name: application | |||
| Subtype name: rdap+json | Subtype name: rdap+json | |||
| Required parameters: n/a | Required parameters: n/a | |||
| Encoding considerations: See Section 3.1 of [RFC6839]. | Encoding considerations: See Section 3.1 of [RFC6839]. | |||
| Security considerations: The media represented by this identifier | Security considerations: The media represented by this identifier | |||
| does not have security considerations beyond that found in | does not have security considerations beyond that found in | |||
| Section 6 of [RFC7159]. | Section 12 of [RFC8259]. | |||
| Interoperability considerations: There are no known | Interoperability considerations: There are no known | |||
| interoperability problems regarding this media format. | interoperability problems regarding this media format. | |||
| Published specification: RFC 7483 | Published specification: RFC <this new RFC number> | |||
| Applications that use this media type: Implementations of the | Applications that use this media type: Implementations of the | |||
| Registration Data Access Protocol (RDAP). | Registration Data Access Protocol (RDAP). | |||
| Additional information: This media type is a product of the IETF | Additional information: This media type is a product of the IETF | |||
| WEIRDS working group. The WEIRDS charter, information on the | REGEXT working group. The REGEXT charter, information on the | |||
| WEIRDS mailing list, and other documents produced by the WEIRDS | REGEXT mailing list, and other documents produced by the REGEXT | |||
| working group can be found at | working group can be found at https://datatracker.ietf.org/wg/ | |||
| <https://datatracker.ietf.org/wg/weirds/>. | regext/. | |||
| Person & email address to contact for further information: IESG | Person & email address to contact for further information: IESG | |||
| <iesg@ietf.org> | <iesg@ietf.org> | |||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Restrictions on usage: none | Restrictions on usage: none | |||
| Author: Andy Newton | Author: Andy Newton | |||
| skipping to change at page 53, line 47 ¶ | skipping to change at page 53, line 47 ¶ | |||
| meaning of the value, how it might be used, and/or how it should | meaning of the value, how it might be used, and/or how it should | |||
| be interpreted by clients. | be interpreted by clients. | |||
| 4. Registrant Name -- the name of the person registering the value. | 4. Registrant Name -- the name of the person registering the value. | |||
| 5. Registrant Contact Information -- an email address, postal | 5. Registrant Contact Information -- an email address, postal | |||
| address, or some other information to be used to contact the | address, or some other information to be used to contact the | |||
| registrant. | registrant. | |||
| This registry is operated under the "Expert Review" policy defined in | This registry is operated under the "Expert Review" policy defined in | |||
| [RFC5226]. | [RFC8126]. | |||
| Review of registrations into this registry by the designated | Review of registrations into this registry by the designated | |||
| expert(s) should be narrowly judged on the following criteria: | expert(s) should be narrowly judged on the following criteria: | |||
| 1. Values in need of being placed into multiple types must be | 1. Values in need of being placed into multiple types must be | |||
| assigned a separate registration for each type. | assigned a separate registration for each type. | |||
| 2. Values must be strings. They should be multiple words separated | 2. Values must be strings. They should be multiple words separated | |||
| by single space characters. Every character should be | by single space characters. Every character should be | |||
| lowercased. If possible, every word should be given in English | lowercased. If possible, every word should be given in English | |||
| skipping to change at page 54, line 39 ¶ | skipping to change at page 54, line 36 ¶ | |||
| DNR or RIR to make this determination. | DNR or RIR to make this determination. | |||
| The following sections provide initial registrations into this | The following sections provide initial registrations into this | |||
| registry. | registry. | |||
| 10.2.1. Notice and Remark Types | 10.2.1. Notice and Remark Types | |||
| The following values have been registered in the "RDAP JSON Values" | The following values have been registered in the "RDAP JSON Values" | |||
| registry: | registry: | |||
| Value: result set truncated due to authorization | * Value: result set truncated due to authorization | |||
| Type: notice and remark type | Type: notice and remark type | |||
| Description: The list of results does not contain all results due | Description: The list of results does not contain all results due | |||
| to lack of authorization. This may indicate to some clients | to lack of authorization. This may indicate to some clients that | |||
| that proper authorization will yield a longer result set. | proper authorization will yield a longer result set. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: result set truncated due to excessive load | ||||
| * Value: result set truncated due to excessive load | ||||
| Type: notice and remark type | Type: notice and remark type | |||
| Description: The list of results does not contain all results due | Description: The list of results does not contain all results due | |||
| to an excessively heavy load on the server. This may indicate | to excessively heavy load on the server. This may indicate to | |||
| to some clients that requerying at a later time will yield a | some clients that requerying at a later time will yield a longer | |||
| longer result set. | result set. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: result set truncated due to unexplainable reasons | * Value: result set truncated due to unexplainable reasons | |||
| Type: notice and remark type | Type: notice and remark type | |||
| Description: The list of results does not contain all results for | Description: The list of results does not contain all results for | |||
| an unexplainable reason. This may indicate to some clients | an unexplainable reason. This may indicate to some clients that | |||
| that requerying for any reason will not yield a longer result | requerying for any reason will not yield a longer result set. | |||
| set. | ||||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: object truncated due to authorization | * Value: object truncated due to authorization | |||
| Type: notice and remark type | Type: notice and remark type | |||
| Description: The object does not contain all data due to lack of | Description: The object does not contain all data due to lack of | |||
| authorization. | authorization. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: object truncated due to excessive load | * Value: object truncated due to excessive load | |||
| Type: notice and remark type | Type: notice and remark type | |||
| Description: The object does not contain all data due to an | ||||
| excessively heavy load on the server. This may indicate to | Description: The object does not contain all data due to | |||
| some clients that requerying at a later time will yield all | excessively heavy load on the server. This may indicate to some | |||
| data of the object. | clients that requerying at a later time will yield all data of the | |||
| object. | ||||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: object truncated due to unexplainable reasons | * Value: object truncated due to unexplainable reasons | |||
| Type: notice and remark type | Type: notice and remark type | |||
| Description: The object does not contain all data for an | Description: The object does not contain all data for an | |||
| unexplainable reason. | unexplainable reason. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| 10.2.2. Status | 10.2.2. Status | |||
| The following values have been registered in the "RDAP JSON Values" | The following values have been registered in the "RDAP JSON Values" | |||
| registry: | registry: | |||
| Value: validated | * Value: validated | |||
| Type: status | Type: status | |||
| Description: Signifies that the data of the object instance has | Description: Signifies that the data of the object instance has | |||
| been found to be accurate. This type of status is usually | been found to be accurate. This type of status is usually found | |||
| found on entity object instances to note the validity of | on entity object instances to note the validity of identifying | |||
| identifying contact information. | contact information. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: renew prohibited | * Value: renew prohibited | |||
| Type: status | Type: status | |||
| Description: Renewal or reregistration of the object instance is | Description: Renewal or reregistration of the object instance is | |||
| forbidden. | forbidden. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: update prohibited | * Value: update prohibited | |||
| Type: status | Type: status | |||
| Description: Updates to the object instance are forbidden. | Description: Updates to the object instance are forbidden. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: transfer prohibited | * Value: transfer prohibited | |||
| Type: status | Type: status | |||
| Description: Transfers of the registration from one registrar to | Description: Transfers of the registration from one registrar to | |||
| another are forbidden. This type of status normally applies to | another are forbidden. This type of status normally applies to | |||
| DNR domain names. | DNR domain names. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: delete prohibited | * Value: delete prohibited | |||
| Type: status | Type: status | |||
| Description: Deletion of the registration of the object instance | Description: Deletion of the registration of the object instance | |||
| is forbidden. This type of status normally applies to DNR | is forbidden. This type of status normally applies to DNR domain | |||
| domain names. | names. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: proxy | ||||
| * Value: proxy | ||||
| Type: status | Type: status | |||
| Description: The registration of the object instance has been | Description: The registration of the object instance has been | |||
| performed by a third party. This is most commonly applied to | performed by a third party. This is most commonly applied to | |||
| entities. | entities. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: private | * Value: private | |||
| Type: status | Type: status | |||
| Description: The information of the object instance is not | Description: The information of the object instance is not | |||
| designated for public consumption. This is most commonly | designated for public consumption. This is most commonly applied | |||
| applied to entities. | to entities. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: removed | * Value: removed | |||
| Type: status | Type: status | |||
| Description: Some of the information of the object instance has | Description: Some of the information of the object instance has | |||
| not been made available and has been removed. This is most | not been made available and has been removed. This is most | |||
| commonly applied to entities. | commonly applied to entities. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: obscured | * Value: obscured | |||
| Type: status | Type: status | |||
| Description: Some of the information of the object instance has | Description: Some of the information of the object instance has | |||
| been altered for the purposes of not readily revealing the | been altered for the purposes of not readily revealing the actual | |||
| actual information of the object instance. This is most | information of the object instance. This is most commonly applied | |||
| commonly applied to entities. | to entities. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: associated | * Value: associated | |||
| Type: status | Type: status | |||
| Description: The object instance is associated with other object | Description: The object instance is associated with other object | |||
| instances in the registry. This is most commonly used to | instances in the registry. This is most commonly used to signify | |||
| signify that a nameserver is associated with a domain or that | that a nameserver is associated with a domain or that an entity is | |||
| an entity is associated with a network resource or domain. | associated with a network resource or domain. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: active | ||||
| * Value: active | ||||
| Type: status | Type: status | |||
| Description: The object instance is in use. For domain names, it | Description: The object instance is in use. For domain names, it | |||
| signifies that the domain name is published in DNS. For | signifies that the domain name is published in DNS. For network | |||
| network and autnum registrations, it signifies that they are | and autnum registrations it signifies that they are allocated or | |||
| allocated or assigned for use in operational networks. This | assigned for use in operational networks. This maps to the | |||
| maps to the "OK" status of the Extensible Provisioning Protocol | Extensible Provisioning Protocol (EPP) [RFC5730] 'OK' status. | |||
| (EPP) [RFC5730] . | ||||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: inactive | * Value: inactive | |||
| Type: status | Type: status | |||
| Description: The object instance is not in use. See "active". | ||||
| Description: The object instance is not in use. See 'active'. | ||||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: locked | * Value: locked | |||
| Type: status | Type: status | |||
| Description: Changes to the object instance cannot be made, | Description: Changes to the object instance cannot be made, | |||
| including the association of other object instances. | including the association of other object instances. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: pending create | * Value: pending create | |||
| Type: status | Type: status | |||
| Description: A request has been received for the creation of the | Description: A request has been received for the creation of the | |||
| object instance, but this action is not yet complete. | object instance but this action is not yet complete. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: pending renew | * Value: pending renew | |||
| Type: status | Type: status | |||
| Description: A request has been received for the renewal of the | Description: A request has been received for the renewal of the | |||
| object instance, but this action is not yet complete. | object instance but this action is not yet complete. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: pending transfer | ||||
| * Value: pending transfer | ||||
| Type: status | Type: status | |||
| Description: A request has been received for the transfer of the | Description: A request has been received for the transfer of the | |||
| object instance, but this action is not yet complete. | object instance but this action is not yet complete. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: pending update | * Value: pending update | |||
| Type: status | Type: status | |||
| Description: A request has been received for the update or | Description: A request has been received for the update or | |||
| modification of the object instance, but this action is not yet | modification of the object instance but this action is not yet | |||
| complete. | complete. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: pending delete | * Value: pending delete | |||
| Type: status | Type: status | |||
| Description: A request has been received for the deletion or | Description: A request has been received for the deletion or | |||
| removal of the object instance, but this action is not yet | removal of the object instance but this action is not yet | |||
| complete. For domains, this might mean that the name is no | complete. For domains, this might mean that the name is no longer | |||
| longer published in DNS but has not yet been purged from the | published in DNS but has not yet been purged from the registry | |||
| registry database. | database. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| 10.2.3. Event Actions | 10.2.3. Event Actions | |||
| The following values have been registered in the "RDAP JSON Values" | The following values have been registered in the "RDAP JSON Values" | |||
| registry: | registry: | |||
| Value: registration | * Value: registration | |||
| Type: event action | Type: event action | |||
| Description: The object instance was initially registered. | Description: The object instance was initially registered. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: reregistration | * Value: reregistration | |||
| Type: event action | Type: event action | |||
| Description: The object instance was registered subsequently to | Description: The object instance was registered subsequently to | |||
| initial registration. | initial registration. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: last changed | ||||
| * Value: last changed | ||||
| Type: event action | Type: event action | |||
| Description: An action noting when the information in the object | Description: An action noting when the information in the object | |||
| instance was last changed. | instance was last changed. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: expiration | * Value: expiration | |||
| Type: event action | Type: event action | |||
| Description: The object instance has been removed or will be | Description: The object instance has been removed or will be | |||
| removed at a predetermined date and time from the registry. | removed at a pre-determined date and time from the registry. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: deletion | * Value: deletion | |||
| Type: event action | Type: event action | |||
| Description: The object instance was removed from the registry at | Description: The object instance was removed from the registry at | |||
| a point in time that was not predetermined. | a point in time that was not pre-determined. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: reinstantiation | * Value: reinstantiation | |||
| Type: event action | Type: event action | |||
| Description: The object instance was reregistered after having | Description: The object instance was reregistered after having | |||
| been removed from the registry. | been removed from the registry. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: transfer | * Value: transfer | |||
| Type: event action | Type: event action | |||
| Description: The object instance was transferred from one | Description: The object instance was transferred from one | |||
| registrant to another. | registrar to another. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: locked | * Value: locked | |||
| Type: event action | Type: event action | |||
| Description: The object instance was locked (see the "locked" | ||||
| status). | Description: The object instance was locked (see the 'locked' | |||
| status). | ||||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: unlocked | ||||
| * Value: unlocked | ||||
| Type: event action | Type: event action | |||
| Description: The object instance was unlocked (see the "locked" | ||||
| status). | Description: The object instance was unlocked (see the 'locked' | |||
| status). | ||||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| 10.2.4. Roles | 10.2.4. Roles | |||
| The following values have been registered in the "RDAP JSON Values" | The following values have been registered in the "RDAP JSON Values" | |||
| registry: | registry: | |||
| Value: registrant | * Value: registrant | |||
| Type: role | Type: role | |||
| Description: The entity object instance is the registrant of the | Description: The entity object instance is the registrant of the | |||
| registration. In some registries, this is known as a | registration. In some registries, this is known as a maintainer. | |||
| maintainer. | ||||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: technical | * Value: technical | |||
| Type: role | Type: role | |||
| Description: The entity object instance is a technical contact for | Description: The entity object instance is a technical contact for | |||
| the registration. | the registration. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: administrative | * Value: administrative | |||
| Type: role | Type: role | |||
| Description: The entity object instance is an administrative | Description: The entity object instance is an administrative | |||
| contact for the registration. | contact for the registration. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: abuse | * Value: abuse | |||
| Type: role | Type: role | |||
| Description: The entity object instance handles network abuse | Description: The entity object instance handles network abuse | |||
| issues on behalf of the registrant of the registration. | issues on behalf of the registrant of the registration. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: billing | ||||
| * Value: billing | ||||
| Type: role | Type: role | |||
| Description: The entity object instance handles payment and | Description: The entity object instance handles payment and | |||
| billing issues on behalf of the registrant of the registration. | billing issues on behalf of the registrant of the registration. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: registrar | * Value: registrar | |||
| Type: role | Type: role | |||
| Description: The entity object instance represents the authority | Description: The entity object instance represents the authority | |||
| responsible for the registration in the registry. | responsible for the registration in the registry. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: reseller | * Value: reseller | |||
| Type: role | Type: role | |||
| Description: The entity object instance represents a third party | Description: The entity object instance represents a third party | |||
| through which the registration was conducted (i.e., not the | through which the registration was conducted (i.e. not the | |||
| registry or registrar). | registry or registrar). | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: sponsor | * Value: sponsor | |||
| Type: role | Type: role | |||
| Description: The entity object instance represents a domain policy | Description: The entity object instance represents a domain policy | |||
| sponsor, such as an ICANN-approved sponsor. | sponsor, such as an ICANN approved sponsor. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: proxy | * Value: proxy | |||
| Type: role | Type: role | |||
| Description: The entity object instance represents a proxy for | Description: The entity object instance represents a proxy for | |||
| another entity object, such as a registrant. | another entity object, such as a registrant. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: notifications | * Value: notifications | |||
| Type: role | Type: role | |||
| Description: An entity object instance designated to receive | Description: An entity object instance designated to receive | |||
| notifications about association object instances. | notifications about association object instances. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: noc | ||||
| * Value: noc | ||||
| Type: role | Type: role | |||
| Description: The entity object instance handles communications | Description: The entity object instance handles communications | |||
| related to a network operations center (NOC). | related to a network operations center (NOC). | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| 10.2.5. Variant Relations | 10.2.5. Variant Relations | |||
| The following values have been registered in the "RDAP JSON Values" | The following values have been registered in the "RDAP JSON Values" | |||
| registry: | registry: | |||
| Value: registered | * Value: registered | |||
| Type: domain variant relation | Type: domain variant relation | |||
| Description: The variant names are registered in the registry. | Description: The variant names are registered in the registry. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: unregistered | * Value: unregistered | |||
| Type: domain variant relation | Type: domain variant relation | |||
| Description: The variant names are not found in the registry. | Description: The variant names are not found in the registry. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: registration restricted | * Value: registration restricted | |||
| Type: domain variant relation | Type: domain variant relation | |||
| Description: Registration of the variant names is restricted to | Description: Registration of the variant names is restricted to | |||
| certain parties or within certain rules. | certain parties or within certain rules. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: open registration | * Value: open registration | |||
| Type: domain variant relation | Type: domain variant relation | |||
| Description: Registration of the variant names is available to | Description: Registration of the variant names is available to | |||
| generally qualified registrants. | generally qualified registrants. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| Value: conjoined | ||||
| * Value: conjoined | ||||
| Type: domain variant relation | Type: domain variant relation | |||
| Description: Registration of the variant names occurs | Description: Registration of the variant names occurs | |||
| automatically with the registration of the containing domain | automatically with the registration of the containing domain | |||
| registration. | registration. | |||
| Registrant Name: IESG | Registrant Name: IESG | |||
| Registrant Contact Information: iesg@ietf.org | Registrant Contact Information: iesg@ietf.org | |||
| 11. Security Considerations | 11. Implementation Status | |||
| NOTE: Please remove this section and the reference to RFC 7942 prior | ||||
| to publication as an RFC. | ||||
| This section records the status of known implementations of the | ||||
| protocol defined by this specification at the time of posting of this | ||||
| Internet-Draft, and is based on a proposal described in RFC 7942 | ||||
| [RFC7942]. The description of implementations in this section is | ||||
| intended to assist the IETF in its decision processes in progressing | ||||
| drafts to RFCs. Please note that the listing of any individual | ||||
| implementation here does not imply endorsement by the IETF. | ||||
| Furthermore, no effort has been spent to verify the information | ||||
| presented here that was supplied by IETF contributors. This is not | ||||
| intended as, and must not be construed to be, a catalog of available | ||||
| implementations or their features. Readers are advised to note that | ||||
| other implementations may exist. | ||||
| According to RFC 7942, "this will allow reviewers and working groups | ||||
| to assign due consideration to documents that have the benefit of | ||||
| running code, which may serve as evidence of valuable experimentation | ||||
| and feedback that have made the implemented protocols more mature. | ||||
| It is up to the individual working groups to use this information as | ||||
| they see fit". | ||||
| 11.1. RedDog | ||||
| * Responsible Organization: NIC Mexico | ||||
| * Location: https://reddog.mx/ | ||||
| * Description: RedDog implements all the functionality of an RDAP | ||||
| Server defined in RFCs 7480,7481,7482 and 7483. RedDog is highly | ||||
| configurable and extensible to fit the needs of the developers and | ||||
| operators. | ||||
| * Level of Maturity: Production. | ||||
| * Coverage: RedDog supports all lookups, searches and responses for | ||||
| all object classes described in RFC 7482 and RFC 7483. | ||||
| * Version Compatibility: RFC 7482 and RFC 7483 | ||||
| * Licensing: Apache License 2.0 | ||||
| * Contact Information: reddog-dev@nic.mx | ||||
| * Information last updated: November 22, 2019 | ||||
| 11.2. Verisign | ||||
| * Responsible Organization: Verisign | ||||
| * Location: https://rdap.verisign.com/com/v1/, | ||||
| https://rdap.verisign.com/net/v1/ | ||||
| * Description: Verisign's production RDAP service for the .com and | ||||
| .net gTLDs. | ||||
| * Level of Maturity: Production. | ||||
| * Coverage: Lookup of domain names, name servers, entities; name | ||||
| server search by IP address; help. | ||||
| * Version Compatibility: RFC 7483 | ||||
| * Contact Information: info@verisign-grs.com | ||||
| 11.3. Verisign Labs | ||||
| * Responsible Organization: Verisign Labs | ||||
| * Location: https://rdap.verisignlabs.com/rdap/v1/ | ||||
| * Description: Verisign's experimental RDAP service for the .cc and | ||||
| .tv ccTLDs. | ||||
| * Level of Maturity: Experimental. | ||||
| * Coverage: Lookup of domain names, name servers, entities; name | ||||
| server search by IP address; basic search; regular expression | ||||
| search; federated authentication; help. | ||||
| * Version Compatibility: RFC 7483 | ||||
| * Contact Information: Scott Hollenbeck, shollenbeck@verisign.com | ||||
| 11.4. Asia-Pacific Network Information Centre (APNIC) | ||||
| * Responsible Organization: Asia-Pacific Network Information Centre | ||||
| (APNIC) | ||||
| * Location: https://rdap.apnic.net/, https://github.com/APNIC-net/ | ||||
| rdapd | ||||
| * Description: APNIC's production RDAP service for Internet number | ||||
| resouces. | ||||
| * Level of Maturity: Production. | ||||
| * Coverage: Lookup of IP networks, AS numbers, domains, and | ||||
| entities. Also domain search by name, entity search by handle or | ||||
| full name, and help responses. | ||||
| * Version Compatibility: RFC 7483 | ||||
| * Contact Information: helpdesk@apnic.net | ||||
| 12. Security Considerations | ||||
| This specification models information serialized in JSON format. As | This specification models information serialized in JSON format. As | |||
| JSON is a subset of JavaScript, implementations are advised to follow | JSON is a subset of JavaScript, implementations are advised to follow | |||
| the security considerations outlined in Section 6 of [RFC7159] to | the security considerations outlined in Section 12 of [RFC8259] to | |||
| prevent code injection. | prevent code injection. | |||
| Though not specific to JSON, RDAP implementers should be aware of the | Though not specific to JSON, RDAP implementers should be aware of the | |||
| security considerations specified in [RFC7480] and the security | security considerations specified in [RFC7480] and the security | |||
| requirements and considerations in [RFC7481]. | requirements and considerations in [RFC7481]. | |||
| RDAP responses allow for retrieval of DNSSEC (key) related | ||||
| information, but the RRSIG DS from the parent zone is not conveyed | ||||
| alongside it. This means that the DNSSEC keys retrieved by RDAP are | ||||
| disconnected from their containing PKI, and as such are not generally | ||||
| expected to be trusted without additional information. In | ||||
| particular, the HTTPS channel protecting the RDAP connection is not | ||||
| expected to be authorized to certify the validity of the DNSSEC keys. | ||||
| Clients caching data, especially clients using RDAP-specific caches | Clients caching data, especially clients using RDAP-specific caches | |||
| (instead of HTTP-layer caches), should have safeguards to prevent | (instead of HTTP-layer caches), should have safeguards to prevent | |||
| cache poisoning. See Section 5 for advice on using the self links | cache poisoning. See Section 5 for advice on using the self links | |||
| for caching. | for caching. | |||
| Finally, service operators should be aware of the privacy mechanisms | Finally, service operators should be aware of the privacy mechanisms | |||
| noted in Section 13. | noted in Section 14. | |||
| 12. Internationalization Considerations | 13. Internationalization Considerations | |||
| 12.1. Character Encoding | 13.1. Character Encoding | |||
| The default text encoding for JSON responses in RDAP is UTF-8 | The default text encoding for JSON responses in RDAP is UTF-8 | |||
| [RFC3629], and all servers and clients MUST support UTF-8. | [RFC3629], and all servers and clients MUST support UTF-8. | |||
| 12.2. URIs and IRIs | 13.2. URIs and IRIs | |||
| [RFC7480] defines the use of URIs and IRIs in RDAP. | [RFC7480] defines the use of URIs and IRIs in RDAP. | |||
| 12.3. Language Tags | 13.3. Language Tags | |||
| Section 4.4 defines the use of language tags in the JSON responses | Section 4.4 defines the use of language tags in the JSON responses | |||
| defined in this document. | defined in this document. | |||
| 12.4. Internationalized Domain Names | 13.4. Internationalized Domain Names | |||
| IDNs are denoted in this specification by the separation of DNS names | IDNs are denoted in this specification by the separation of DNS names | |||
| in LDH form and Unicode form (see Section 3). Representation of IDNs | in LDH form and Unicode form (see Section 3). Representation of IDNs | |||
| in registries is described by the "variants" object in Section 5.3 | in registries is described by the "variants" object in Section 5.3 | |||
| and the suggested values listed in Section 10.2.5. | and the suggested values listed in Section 10.2.5. | |||
| 13. Privacy Considerations | 14. Privacy Considerations | |||
| This specification suggests status values to denote contact and | This specification suggests status values to denote contact and | |||
| registrant information that has been marked as private and/or has | registrant information that has been marked as private and/or has | |||
| been removed or obscured. See Section 10.2.2 for the complete list | been removed or obscured. See Section 10.2.2 for the complete list | |||
| of status values. A few of the status values indicate that there are | of status values. A few of the status values indicate that there are | |||
| privacy concerns associated with the object instance. The following | privacy concerns associated with the object instance. The following | |||
| status codes SHOULD be used to describe data elements of a response | status codes SHOULD be used to describe data elements of a response | |||
| when appropriate: | when appropriate: | |||
| private -- The object is not be shared in query responses, unless | private -- The object is not be shared in query responses, unless | |||
| skipping to change at page 65, line 41 ¶ | skipping to change at page 70, line 34 ¶ | |||
| but the response value has been altered so that values are not | but the response value has been altered so that values are not | |||
| easily discernible. A value changed from "1212" to "XXXX" is an | easily discernible. A value changed from "1212" to "XXXX" is an | |||
| example of obscured data. This option may reveal privacy | example of obscured data. This option may reveal privacy | |||
| sensitive information and should only be used when data | sensitive information and should only be used when data | |||
| sensitivity does not require a more protective option like | sensitivity does not require a more protective option like | |||
| "private" or "removed". | "private" or "removed". | |||
| See Appendix A.1 for an example of applying those values to contacts | See Appendix A.1 for an example of applying those values to contacts | |||
| and registrants. | and registrants. | |||
| 14. References | 15. References | |||
| 14.1. Normative References | 15.1. Normative References | |||
| [I-D.ietf-regext-rfc7482bis] | ||||
| Hollenbeck, S. and A. Newton, "Registration Data Access | ||||
| Protocol (RDAP) Query Format", Work in Progress, Internet- | ||||
| Draft, draft-ietf-regext-rfc7482bis-02, 8 September 2020, | ||||
| <http://www.ietf.org/internet-drafts/draft-ietf-regext- | ||||
| rfc7482bis-02.txt>. | ||||
| [ISO.3166.1988] | [ISO.3166.1988] | |||
| International Organization for Standardization, "Codes for | International Organization for Standardization, "Codes for | |||
| the representation of names of countries, 3rd edition", | the representation of names of countries, 3rd edition", | |||
| ISO Standard 3166, August 1988. | ISO Standard 3166, August 1988. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997, | Requirement Levels", BCP 14, RFC 2119, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | ||||
| [RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the | [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: | |||
| Internet: Timestamps", RFC 3339, July 2002, | Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, | |||
| <http://www.rfc-editor.org/info/rfc3339>. | <https://www.rfc-editor.org/info/rfc3339>. | |||
| [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | |||
| 10646", STD 63, RFC 3629, November 2003, | 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November | |||
| <http://www.rfc-editor.org/info/rfc3629>. | 2003, <https://www.rfc-editor.org/info/rfc3629>. | |||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
| Resource Identifier (URI): Generic Syntax", STD 66, RFC | Resource Identifier (URI): Generic Syntax", STD 66, | |||
| 3986, January 2005, | RFC 3986, DOI 10.17487/RFC3986, January 2005, | |||
| <http://www.rfc-editor.org/info/rfc3986>. | <https://www.rfc-editor.org/info/rfc3986>. | |||
| [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. | [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
| Rose, "Resource Records for the DNS Security Extensions", | Rose, "Resource Records for the DNS Security Extensions", | |||
| RFC 4034, March 2005, | RFC 4034, DOI 10.17487/RFC4034, March 2005, | |||
| <http://www.rfc-editor.org/info/rfc4034>. | <https://www.rfc-editor.org/info/rfc4034>. | |||
| [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | ||||
| IANA Considerations Section in RFCs", BCP 26, RFC 5226, | ||||
| May 2008, <http://www.rfc-editor.org/info/rfc5226>. | ||||
| [RFC5396] Huston, G. and G. Michaelson, "Textual Representation of | [RFC5396] Huston, G. and G. Michaelson, "Textual Representation of | |||
| Autonomous System (AS) Numbers", RFC 5396, December 2008, | Autonomous System (AS) Numbers", RFC 5396, | |||
| <http://www.rfc-editor.org/info/rfc5396>. | DOI 10.17487/RFC5396, December 2008, | |||
| <https://www.rfc-editor.org/info/rfc5396>. | ||||
| [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying | [RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying | |||
| Languages", BCP 47, RFC 5646, September 2009, | Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, | |||
| <http://www.rfc-editor.org/info/rfc5646>. | September 2009, <https://www.rfc-editor.org/info/rfc5646>. | |||
| [RFC5890] Klensin, J., "Internationalized Domain Names for | [RFC5890] Klensin, J., "Internationalized Domain Names for | |||
| Applications (IDNA): Definitions and Document Framework", | Applications (IDNA): Definitions and Document Framework", | |||
| RFC 5890, August 2010, | RFC 5890, DOI 10.17487/RFC5890, August 2010, | |||
| <http://www.rfc-editor.org/info/rfc5890>. | <https://www.rfc-editor.org/info/rfc5890>. | |||
| [RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6 | [RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6 | |||
| Address Text Representation", RFC 5952, August 2010, | Address Text Representation", RFC 5952, | |||
| <http://www.rfc-editor.org/info/rfc5952>. | DOI 10.17487/RFC5952, August 2010, | |||
| <https://www.rfc-editor.org/info/rfc5952>. | ||||
| [RFC5988] Nottingham, M., "Web Linking", RFC 5988, October 2010, | ||||
| <http://www.rfc-editor.org/info/rfc5988>. | ||||
| [RFC7095] Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095, | [RFC7095] Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095, | |||
| January 2014, <http://www.rfc-editor.org/info/rfc7095>. | DOI 10.17487/RFC7095, January 2014, | |||
| <https://www.rfc-editor.org/info/rfc7095>. | ||||
| [RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data | ||||
| Interchange Format", RFC 7159, March 2014, | ||||
| <http://www.rfc-editor.org/info/rfc7159>. | ||||
| [RFC7480] Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the | [RFC7480] Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the | |||
| Registration Data Access Protocol (RDAP)", RFC 7480, March | Registration Data Access Protocol (RDAP)", RFC 7480, | |||
| 2015, <http://www.rfc-editor.org/info/rfc7480>. | DOI 10.17487/RFC7480, March 2015, | |||
| <https://www.rfc-editor.org/info/rfc7480>. | ||||
| [RFC7481] Hollenbeck, S. and N. Kong, "Security Services for the | [RFC7481] Hollenbeck, S. and N. Kong, "Security Services for the | |||
| Registration Data Access Protocol (RDAP)", RFC 7481, March | Registration Data Access Protocol (RDAP)", RFC 7481, | |||
| 2015, <http://www.rfc-editor.org/info/rfc7481>. | DOI 10.17487/RFC7481, March 2015, | |||
| <https://www.rfc-editor.org/info/rfc7481>. | ||||
| [RFC7482] Newton, A. and S. Hollenbeck, "Registration Data Access | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Protocol (RDAP) Query Format", RFC 7482, March 2015, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| <http://www.rfc-editor.org/info/rfc7482>. | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| <https://www.rfc-editor.org/info/rfc8126>. | ||||
| 14.2. Informative References | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
| [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data | ||||
| Interchange Format", STD 90, RFC 8259, | ||||
| DOI 10.17487/RFC8259, December 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8259>. | ||||
| [RFC8288] Nottingham, M., "Web Linking", RFC 8288, | ||||
| DOI 10.17487/RFC8288, October 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8288>. | ||||
| 15.2. Informative References | ||||
| [IANA_IDNTABLES] | [IANA_IDNTABLES] | |||
| IANA, "Repository of IDN Practices", | IANA, "Repository of IDN Practices", | |||
| <http://www.iana.org/domains/idn-tables>. | <https://www.iana.org/domains/idn-tables>. | |||
| [JSON_ascendancy] | [JSON_ascendancy] | |||
| MacVittie, L., "The Stealthy Ascendancy of JSON", April | MacVittie, L., "The Stealthy Ascendancy of JSON", April | |||
| 2011, <https://devcentral.f5.com/weblogs/macvittie/ | 2011, <https://devcentral.f5.com/s/articles/the-stealthy- | |||
| archive/2011/04/27/the-stealthy-ascendancy-of-json.aspx>. | ascendancy-of-json>. | |||
| [JSON_performance_study] | [JSON_performance_study] | |||
| Nurseitov, N., Paulson, M., Reynolds, R., and C. Izurieta, | Nurseitov, N., Paulson, M., Reynolds, R., and C. Izurieta, | |||
| "Comparison of JSON and XML Data Interchange Formats: A | "Comparison of JSON and XML Data Interchange Formats: A | |||
| Case Study", 2009, | Case Study", 2009, | |||
| <http://www.cs.montana.edu/izurieta/pubs/caine2009.pdf>. | <https://www.cs.montana.edu/izurieta/pubs/caine2009.pdf>. | |||
| [RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912, | [RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912, | |||
| September 2004, <http://www.rfc-editor.org/info/rfc3912>. | DOI 10.17487/RFC3912, September 2004, | |||
| <https://www.rfc-editor.org/info/rfc3912>. | ||||
| [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", | [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", | |||
| STD 69, RFC 5730, August 2009, | STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009, | |||
| <http://www.rfc-editor.org/info/rfc5730>. | <https://www.rfc-editor.org/info/rfc5730>. | |||
| [RFC5910] Gould, J. and S. Hollenbeck, "Domain Name System (DNS) | [RFC5910] Gould, J. and S. Hollenbeck, "Domain Name System (DNS) | |||
| Security Extensions Mapping for the Extensible | Security Extensions Mapping for the Extensible | |||
| Provisioning Protocol (EPP)", RFC 5910, May 2010, | Provisioning Protocol (EPP)", RFC 5910, | |||
| <http://www.rfc-editor.org/info/rfc5910>. | DOI 10.17487/RFC5910, May 2010, | |||
| <https://www.rfc-editor.org/info/rfc5910>. | ||||
| [RFC6350] Perreault, S., "vCard Format Specification", RFC 6350, | [RFC6350] Perreault, S., "vCard Format Specification", RFC 6350, | |||
| August 2011, <http://www.rfc-editor.org/info/rfc6350>. | DOI 10.17487/RFC6350, August 2011, | |||
| <https://www.rfc-editor.org/info/rfc6350>. | ||||
| [RFC6839] Hansen, T. and A. Melnikov, "Additional Media Type | [RFC6839] Hansen, T. and A. Melnikov, "Additional Media Type | |||
| Structured Syntax Suffixes", RFC 6839, January 2013, | Structured Syntax Suffixes", RFC 6839, | |||
| <http://www.rfc-editor.org/info/rfc6839>. | DOI 10.17487/RFC6839, January 2013, | |||
| <https://www.rfc-editor.org/info/rfc6839>. | ||||
| [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | ||||
| Code: The Implementation Status Section", BCP 205, | ||||
| RFC 7942, DOI 10.17487/RFC7942, July 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7942>. | ||||
| Appendix A. Suggested Data Modeling with the Entity Object Class | Appendix A. Suggested Data Modeling with the Entity Object Class | |||
| A.1. Registrants and Contacts | A.1. Registrants and Contacts | |||
| This document does not provide specific object classes for | This document does not provide specific object classes for | |||
| registrants and contacts. Instead, the entity object class may be | registrants and contacts. Instead, the entity object class may be | |||
| used to represent a registrant or contact. When the entity object is | used to represent a registrant or contact. When the entity object is | |||
| embedded inside a containing object such as a domain name or IP | embedded inside a containing object such as a domain name or IP | |||
| network, the "roles" string array can be used to signify the | network, the "roles" string array can be used to signify the | |||
| skipping to change at page 71, line 51 ¶ | skipping to change at page 77, line 31 ¶ | |||
| "remarks":[ | "remarks":[ | |||
| { | { | |||
| "description":[ | "description":[ | |||
| "She sells sea shells down by the sea shore.", | "She sells sea shells down by the sea shore.", | |||
| "Originally written by Terry Sullivan." | "Originally written by Terry Sullivan." | |||
| ] | ] | |||
| } | } | |||
| ], | ], | |||
| "links":[ | "links":[ | |||
| { | { | |||
| "value":"http://example.net/entity/XXXX", | "value":"https://example.net/entity/XXXX", | |||
| "rel":"alternate", | "rel":"alternate", | |||
| "type":"text/html", | "type":"text/html", | |||
| "href":"http://www.example.com" | "href":"https://www.example.com" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| Figure 36 | Figure 36 | |||
| Appendix B. Modeling Events | Appendix B. Modeling Events | |||
| skipping to change at page 75, line 27 ¶ | skipping to change at page 81, line 4 ¶ | |||
| { | { | |||
| "type":["work", "cell", "voice", "video", "text"] | "type":["work", "cell", "voice", "video", "text"] | |||
| }, | }, | |||
| "uri", | "uri", | |||
| "tel:+1-555-555-1234" | "tel:+1-555-555-1234" | |||
| ], | ], | |||
| ["email", | ["email", | |||
| { "type":"work" }, | { "type":"work" }, | |||
| "text", "joe.user@example.com" | "text", "joe.user@example.com" | |||
| ], | ], | |||
| ["geo", { | ["geo", { | |||
| "type":"work" | "type":"work" | |||
| }, "uri", "geo:46.772673,-71.282945"], | }, "uri", "geo:46.772673,-71.282945"], | |||
| ["key", | ["key", | |||
| { "type":"work" }, | { "type":"work" }, | |||
| "uri", "http://www.example.com/joe.user/joe.asc" | "uri", "https://www.example.com/joe.user/joe.asc" | |||
| ], | ], | |||
| ["tz", {}, | ["tz", {}, | |||
| "utc-offset", "-05:00"], | "utc-offset", "-05:00"], | |||
| ["url", { "type":"home" }, | ["url", { "type":"home" }, | |||
| "uri", "http://example.org"] | "uri", "https://example.org"] | |||
| ] | ] | |||
| ] | ] | |||
| } | } | |||
| Figure 40 | Figure 40 | |||
| The arrays in Figure 40 with the first member of "adr" represent | The arrays in Figure 40 with the first member of "adr" represent | |||
| postal addresses. In the first example, the postal address is given | postal addresses. In the first example, the postal address is given | |||
| as an array of strings and constitutes a structured address. For | as an array of strings and constitutes a structured address. For | |||
| components of the structured address that are not applicable, an | components of the structured address that are not applicable, an | |||
| skipping to change at page 76, line 19 ¶ | skipping to change at page 81, line 44 ¶ | |||
| 3. street address -- 4321 Rue Somewhere | 3. street address -- 4321 Rue Somewhere | |||
| 4. locality (e.g., city) -- Quebec | 4. locality (e.g., city) -- Quebec | |||
| 5. region (e.g., state or province) -- QC | 5. region (e.g., state or province) -- QC | |||
| 6. postal code -- G1V 2M2 | 6. postal code -- G1V 2M2 | |||
| 7. country name (full name) -- Canada | 7. country name (full name) -- Canada | |||
| The second example is an unstructured address. It uses the label | The second example is an unstructured address. It uses the "label" | |||
| attribute, which is a string containing a newline (\n) character to | attribute, which is a string containing a newline (\n) character to | |||
| separate address components in an unordered, unspecified manner. | separate address components in an unordered, unspecified manner. | |||
| Note that in this example, the structured address array is still | Note that in this example, the structured address array is still | |||
| given but that each string is an empty string. | given but that each string is an empty string. | |||
| Appendix D. Secure DNS | Appendix D. Secure DNS | |||
| Section 5.3 defines the "secureDNS" member to represent secure DNS | Section 5.3 defines the "secureDNS" member to represent secure DNS | |||
| information about domain names. | information about domain names. | |||
| skipping to change at page 77, line 36 ¶ | skipping to change at page 83, line 16 ¶ | |||
| not a universal constant in that industry. And finally, EPP's use of | not a universal constant in that industry. And finally, EPP's use of | |||
| XML predates the specification of JSON. If EPP had been defined | XML predates the specification of JSON. If EPP had been defined | |||
| today, it may very well have used JSON instead of XML. | today, it may very well have used JSON instead of XML. | |||
| Beyond the specific DNR and RIR communities, the trend in the broader | Beyond the specific DNR and RIR communities, the trend in the broader | |||
| Internet industry is also switching to JSON over XML, especially in | Internet industry is also switching to JSON over XML, especially in | |||
| the area of RESTful web services (see [JSON_ascendancy]). Studies | the area of RESTful web services (see [JSON_ascendancy]). Studies | |||
| have also found that JSON is generally less bulky and consequently | have also found that JSON is generally less bulky and consequently | |||
| faster to parse (see [JSON_performance_study]). | faster to parse (see [JSON_performance_study]). | |||
| Acknowledgements | Acknowledgments | |||
| This document is derived from original work on RIR responses in JSON | This document is derived from original work on RIR responses in JSON | |||
| by Byron J. Ellacott, Arturo L. Servin, Kaveh Ranjbar, and Andrew L. | by Byron J. Ellacott, Arturo L. Servin, Kaveh Ranjbar, and Andrew | |||
| Newton. Additionally, this document incorporates work on DNR | L. Newton. Additionally, this document incorporates work on DNR | |||
| responses in JSON by Ning Kong, Linlin Zhou, Jiagui Xie, and Sean | responses in JSON by Ning Kong, Linlin Zhou, Jiagui Xie, and Sean | |||
| Shen. | Shen. | |||
| The components of the DNR object classes are derived from a | The components of the DNR object classes are derived from a | |||
| categorization of WHOIS response formats created by Ning Kong, Linlin | categorization of WHOIS response formats created by Ning Kong, Linlin | |||
| Zhou, Guangqing Deng, Steve Sheng, Francisco Arias, Ray Bellis, and | Zhou, Guangqing Deng, Steve Sheng, Francisco Arias, Ray Bellis, and | |||
| Frederico Neves. | Frederico Neves. | |||
| Tom Harrison, Murray Kucherawy, Ed Lewis, Audric Schiltknecht, Naoki | Tom Harrison, Murray Kucherawy, Ed Lewis, Audric Schiltknecht, Naoki | |||
| Kambe, and Maarten Bosteels contributed significant review comments | Kambe, Maarten Bosteels, Mario Loffredo, and Jasdip Singh contributed | |||
| and provided clarifying text. James Mitchell provided text regarding | significant review comments and provided clarifying text. James | |||
| the processing of unknown JSON attributes and identified issues | Mitchell provided text regarding the processing of unknown JSON | |||
| leading to the remodeling of events. Ernie Dainow and Francisco | attributes and identified issues leading to the remodeling of events. | |||
| Obispo provided concrete suggestions that led to a better variant | Ernie Dainow and Francisco Obispo provided concrete suggestions that | |||
| model for domain names. | led to a better variant model for domain names. | |||
| Ernie Dainow provided the background information on the secure DNS | Ernie Dainow provided the background information on the secure DNS | |||
| attributes and objects for domains, informative text on DNSSEC, and | attributes and objects for domains, informative text on DNSSEC, and | |||
| many other attributes that appear throughout the object classes of | many other attributes that appear throughout the object classes of | |||
| this document. | this document. | |||
| The switch to and incorporation of jCard was performed by Simon | The switch to and incorporation of jCard was performed by Simon | |||
| Perreault. | Perreault. | |||
| Olaf Kolkman and Murray Kucherawy chaired the IETF's WEIRDS working | Olaf Kolkman and Murray Kucherawy chaired the IETF's WEIRDS working | |||
| group from which this document has been created. | group from which this document was originally created. James Galvin | |||
| and Antoin Verschuren chaired the REGEXT working group that worked on | ||||
| the -bis version. | ||||
| Authors' Addresses | Changes from RFC 7483 | |||
| Andrew Lee Newton | 00: Initial version ported from RFC 7483. Addressed known errata. | |||
| American Registry for Internet Numbers | ||||
| 3635 Concorde Parkway | ||||
| Chantilly, VA 20151 | ||||
| United States | ||||
| EMail: andy@arin.net | Added Implementation Status section. | |||
| URI: http://www.arin.net | ||||
| 01: Updated references to 7482 to 7482bis Internet-Draft. Updated | ||||
| "Change Log" to "Changes from RFC 7483". Added APNIC | ||||
| implementation status. Adjusted case of "xxxx" used in examples | ||||
| where "XXXX" was previously used, and removed an "X" from "XXXXX". | ||||
| Changed IPv6 address example using "C00" to "c00". Added "a | ||||
| string representing" to the definitions of startAddress and | ||||
| endAddress. Removed "entity" from "Autonomous System Number | ||||
| Entity Object Class". Added "an unsigned 32-bit integer" to the | ||||
| definition of startAutnum and endAutnum. Added "a string | ||||
| representing" to the definition of name in the IP network and ASN | ||||
| object classes. Clarified rdapConformance identifier registration | ||||
| expectations in Section 4.1. Changed "lunarNic_level_0" to | ||||
| "lunarNIC_level_0". Clarified that the "value", "rel" and "href" | ||||
| JSON values MUST be specified in the "links" array. Clarified | ||||
| that the "description" array is required in the Notices and | ||||
| Remarks data structures and other values are OPTIONAL. Noted that | ||||
| all members of the "events" and "Public IDs" arrays are REQUIRED. | ||||
| Fix "self" link values in examples. Changed "http" to "https" | ||||
| link values in examples. Noted that Figure 18 is an example of a | ||||
| nameserver object with all "appropriate" values given. In | ||||
| appendix C, quoted the word "label" in "label attribute". Added | ||||
| reference to "status" definition in the descriptions for IP | ||||
| networks and autnums. Fixed a 404 for the informative reference | ||||
| to "The Stealthy Ascendancy of JSON". Added "boolean" to the | ||||
| definition of zoneSigned. Clarified REQUIRED and OPTIONAL members | ||||
| of the "events" array. Changed "SHOULD not" to "SHOULD NOT" in | ||||
| Section 5. Updated normative references (5226-8126, 5988-8288, | ||||
| 7159-8259). Changed examples using "ns1.xn--fo-5ja.example" to | ||||
| split URLs to avoid long lines. | ||||
| 00: Initial working group version. Added acknowledgments. | ||||
| 01: Changed "The "lang" attribute may appear anywhere in an object | ||||
| class or data structure except for in jCard objects" to "The | ||||
| "lang" attribute as defined in this section MAY appear anywhere in | ||||
| an object class or data structure, except for in jCard objects. | ||||
| jCard supports similar functionality by way of the LANGUAGE | ||||
| property parameter (see Section 5.1 of RFC 6350 [RFC6350]". | ||||
| Changed "simple data types conveyed in JSON strings" to "simple | ||||
| data types conveyed in JSON primitive types (strings, numbers, | ||||
| booleans, and null)". Changed "In other words, servers are free | ||||
| to not include JSON members containing registration data based on | ||||
| their own policies" to "In other words, servers are free to omit | ||||
| unrequired/optional JSON members containing registration data | ||||
| based on their own policies". Changed "This data structure | ||||
| appears only in the topmost JSON object of a response" to "This | ||||
| data structure MUST appear in the topmost JSON object of a | ||||
| response". Changed "Some non-answer responses may return entity | ||||
| bodies with information that could be more descriptive" to "Some | ||||
| non-answer responses MAY return entity bodies with information | ||||
| that could be more descriptive". Changed "The basic structure of | ||||
| that response is an object class containing an error code number | ||||
| (corresponding to the HTTP response code) followed by a string | ||||
| named "title" and an array of strings named "description"" to "The | ||||
| basic structure of that response is an object class containing a | ||||
| REQUIRED error code number (corresponding to the HTTP response | ||||
| code) followed by an OPTIONAL string named "title" and an OPTIONAL | ||||
| array of strings named "description"". Changed the "Autonomous | ||||
| System Number Object Class" section title to "The Autonomous | ||||
| System Number Object Class" for consistency with other section | ||||
| titles. Removed trailing periods in the "Terminology and | ||||
| Definitions" section for consistency. Changed instances of | ||||
| "lunarNic" to "lunarNIC" for consistency. Removed an extraneous | ||||
| trailing period after the eventDate description. Changed a "." to | ||||
| ";" in the description of the "network" member of the domain | ||||
| object class. Changed "The high-level structure of the autnum | ||||
| object class consists of information about the network | ||||
| registration" to "The high-level structure of the autnum object | ||||
| class consists of information about the autonomous system number | ||||
| registration". Changed "registry unique" to "registry-unique". | ||||
| 02: Changed "registrant" to "registrar" in the description of the | ||||
| "transfer" event action to address erratum 6158. Added IANA | ||||
| instructions to correct the description of the value in the | ||||
| registry. Added text to Section 4.2 to note that "self" and | ||||
| "related" "href" URIs MUST NOT be the same. Added text to | ||||
| Section 4.2 to describe return of IDNs in LDH name format. | ||||
| 03: Added text to note that the "fn" member of a contact object MAY | ||||
| be empty in Section 3. | ||||
| 04: Added text to clarify rdapConformance requirements in | ||||
| Section 4.1. | ||||
| 05: Added "obsoletes 7483" to the headers, Abstract, and | ||||
| Introduction. Updated BCP14 template. Updated IANA | ||||
| Considerations to note that this new RFC (a product of the REGEXT | ||||
| working group) replaces 7483. Changed "simple string" to "simple | ||||
| character string" in Sections 3 and 4.7. Clarified requirement | ||||
| for the "fn" member in Section 3. Modified the requirement for | ||||
| rdapConformance placement in Section 4.1. Changed "jCard" to | ||||
| "vCard" LANGUAGE property reference in Section 4.4. Changed "no | ||||
| use" to "little or no use" in Section 5.1. Added example line | ||||
| wrap note in Section 5.2. Modified the definition of "idnTable" | ||||
| in Section 5.3. Modified the dsData and keyData examples in | ||||
| Section 5.3. Changed "2001:c00::/23" to "2001:db8::/32" in | ||||
| Section 5.4. Expanded the definition of "type" in Sections 5.4 | ||||
| and 5.5. Modified example autnums in Section 5.5. Added text to | ||||
| the Security Considerations section to note that DNSSEC | ||||
| information returned in a response can not be trusted directly. | ||||
| Authors' Addresses | ||||
| Scott Hollenbeck | Scott Hollenbeck | |||
| Verisign Labs | Verisign Labs | |||
| 12061 Bluemont Way | 12061 Bluemont Way | |||
| Reston, VA 20190 | Reston, VA 20190 | |||
| United States | United States | |||
| EMail: shollenbeck@verisign.com | Email: shollenbeck@verisign.com | |||
| URI: http://www.verisignlabs.com/ | URI: https://www.verisignlabs.com/ | |||
| Andy Newton | ||||
| Amazon Web Services, Inc. | ||||
| 13200 Woodland Park Road | ||||
| Herndon, VA 20171 | ||||
| United States of America | ||||
| Email: andy@hxr.us | ||||
| End of changes. 477 change blocks. | ||||
| 572 lines changed or deleted | 1057 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||