1 Internet Engineering Task Force (IETF)                     S. Hollenbeck   
    2 Request for Comments: 9083                                 Verisign Labs   
    3 STD: 95                                                        A. Newton   
    4 Obsoletes: 7483                                                      AWS   
    5 Category: Standards Track                                      June 2021   
    6 ISSN: 2070-1721                                                            
    7                                                                            
    8                                                                            
    9     JSON Responses for the Registration Data Access Protocol (RDAP)        
   10                                                                            
   11 Abstract                                                                   
   12                                                                            
   13    This document describes JSON data structures representing               
   14    registration information maintained by Regional Internet Registries     
   15    (RIRs) and Domain Name Registries (DNRs).  These data structures are    
   16    used to form Registration Data Access Protocol (RDAP) query             
   17    responses.  This document obsoletes RFC 7483.                           
   18                                                                            
   19 Status of This Memo                                                        
   20                                                                            
   21    This is an Internet Standards Track document.                           
   22                                                                            
   23    This document is a product of the Internet Engineering Task Force       
   24    (IETF).  It represents the consensus of the IETF community.  It has     
   25    received public review and has been approved for publication by the     
   26    Internet Engineering Steering Group (IESG).  Further information on     
   27    Internet Standards is available in Section 2 of RFC 7841.               
   28                                                                            
   29    Information about the current status of this document, any errata,      
   30    and how to provide feedback on it may be obtained at                    
   31    https://www.rfc-editor.org/info/rfc9083.                                
   32                                                                            
   33 Copyright Notice                                                           
   34                                                                            
   35    Copyright (c) 2021 IETF Trust and the persons identified as the         
   36    document authors.  All rights reserved.                                 
   37                                                                            
   38    This document is subject to BCP 78 and the IETF Trust's Legal           
   39    Provisions Relating to IETF Documents                                   
   40    (https://trustee.ietf.org/license-info) in effect on the date of        
   41    publication of this document.  Please review these documents            
   42    carefully, as they describe your rights and restrictions with respect   
   43    to this document.  Code Components extracted from this document must    
   44    include Simplified BSD License text as described in Section 4.e of      
   45    the Trust Legal Provisions and are provided without warranty as         
   46    described in the Simplified BSD License.                                
   47                                                                            
   48 Table of Contents                                                          
   49                                                                            
   50    1.  Introduction                                                        
   51      1.1.  Terminology and Definitions                                     
   52      1.2.  Data Model                                                      
   53    2.  Use of JSON                                                         
   54      2.1.  Naming                                                          
   55    3.  Common Data Types                                                   
   56    4.  Common Data Structures                                              
   57      4.1.  RDAP Conformance                                                
   58      4.2.  Links                                                           
   59      4.3.  Notices and Remarks                                             
   60      4.4.  Language Identifier                                             
   61      4.5.  Events                                                          
   62      4.6.  Status                                                          
   63      4.7.  Port 43 WHOIS Server                                            
   64      4.8.  Public IDs                                                      
   65      4.9.  Object Class Name                                               
   66      4.10. An Example                                                      
   67    5.  Object Classes                                                      
   68      5.1.  The Entity Object Class                                         
   69      5.2.  The Nameserver Object Class                                     
   70      5.3.  The Domain Object Class                                         
   71      5.4.  The IP Network Object Class                                     
   72      5.5.  The Autonomous System Number Object Class                       
   73    6.  Error Response Body                                                 
   74    7.  Responding to Help Queries                                          
   75    8.  Responding To Searches                                              
   76    9.  Indicating Truncated Responses                                      
   77    10. IANA Considerations                                                 
   78      10.1.  RDAP JSON Media Type Registration                              
   79      10.2.  JSON Values Registry                                           
   80        10.2.1.  Notice and Remark Types                                    
   81        10.2.2.  Status                                                     
   82        10.2.3.  Event Actions                                              
   83        10.2.4.  Roles                                                      
   84        10.2.5.  Variant Relations                                          
   85    11. Security Considerations                                             
   86    12. Internationalization Considerations                                 
   87      12.1.  Character Encoding                                             
   88      12.2.  URIs and IRIs                                                  
   89      12.3.  Language Tags                                                  
   90      12.4.  Internationalized Domain Names                                 
   91    13. Privacy Considerations                                              
   92    14. References                                                          
   93      14.1.  Normative References                                           
   94      14.2.  Informative References                                         
   95    Appendix A.  Suggested Data Modeling with the Entity Object Class       
   96      A.1.  Registrants and Contacts                                        
   97      A.2.  Registrars                                                      
   98    Appendix B.  Modeling Events                                            
   99    Appendix C.  Structured vs. Unstructured Addresses                      
  100    Appendix D.  Secure DNS                                                 
  101    Appendix E.  Motivations for Using JSON                                 
  102    Appendix F.  Changes from RFC 7483                                      
  103    Acknowledgments                                                         
  104    Authors' Addresses                                                      
  105                                                                            
  106 1.  Introduction                                                           
  107                                                                            
  108    This document describes responses in the JSON [RFC8259] format for      
  109    the queries as defined by the Registration Data Access Protocol Query   
  110    Format [RFC9082].  A communication protocol for exchanging queries      
  111    and responses is described in [RFC7480].  This document obsoletes RFC   
  112    7483.                                                                   
  113                                                                            
  114 1.1.  Terminology and Definitions                                          
  115                                                                            
  116    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",     
  117    "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and    
  118    "OPTIONAL" in this document are to be interpreted as described in       
  119    BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all      
  120    capitals, as shown here.                                                
  121                                                                            
  122    The following list describes terminology and definitions used           
  123    throughout this document:                                               
  124                                                                            
  125    DNR:  Domain Name Registry or Domain Name Registrar                     
  126                                                                            
  127    LDH:  letters, digits, hyphen                                           
  128                                                                            
  129    member:  data found within an object as defined by JSON [RFC8259]       
  130                                                                            
  131    object:  a data structure as defined by JSON [RFC8259]                  
  132                                                                            
  133    object class:  the definition of members that may be found in JSON      
  134     objects described in this document                                     
  135                                                                            
  136    object instance:  an instantiation or specific instance of an object    
  137     class                                                                  
  138                                                                            
  139    RDAP:  Registration Data Access Protocol                                
  140                                                                            
  141    RIR:  Regional Internet Registry                                        
  142                                                                            
  143 1.2.  Data Model                                                           
  144                                                                            
  145    The data model for JSON responses is specified in five sections:        
  146                                                                            
  147    1.  simple data types conveyed in JSON primitive types (strings,        
  148        numbers, booleans, and null)                                        
  149                                                                            
  150    2.  data structures specified as JSON arrays or objects that are used   
  151        repeatedly when building up larger objects                          
  152                                                                            
  153    3.  object classes representing structured data corresponding to a      
  154        lookup of a single object                                           
  155                                                                            
  156    4.  arrays of objects representing structured data corresponding to a   
  157        search for multiple objects                                         
  158                                                                            
  159    5.  the response to an error                                            
  160                                                                            
  161    The object classes represent responses for two major categories of      
  162    data: responses returned by RIRs for registration data related to IP    
  163    addresses, reverse DNS names, and Autonomous System numbers and         
  164    responses returned by DNRs for registration data related to forward     
  165    DNS names.  The following object classes are returned by both RIRs      
  166    and DNRs:                                                               
  167                                                                            
  168    1.  domains                                                             
  169                                                                            
  170    2.  nameservers                                                         
  171                                                                            
  172    3.  entities                                                            
  173                                                                            
  174    The information served by both RIRs and DNRs for these object classes   
  175    overlap extensively and are given in this document as a unified model   
  176    for both classes of service.                                            
  177                                                                            
  178    In addition to the object classes listed above, RIRs also serve the     
  179    following object classes:                                               
  180                                                                            
  181    1.  IP networks                                                         
  182                                                                            
  183    2.  Autonomous System numbers                                           
  184                                                                            
  185    Object classes defined in this document represent a minimal set of      
  186    what a compliant client/server needs to understand to function          
  187    correctly; however, some deployments may want to include additional     
  188    object classes to suit individual needs.  Anticipating this need for    
  189    extension, Section 2.1 of this document defines a mechanism for         
  190    extending the JSON objects that are described in this document.         
  191                                                                            
  192    Positive responses take two forms.  A response to a lookup of a         
  193    single object in the registration system yields a JSON object, which    
  194    is the subject of the lookup.  A response to a search for multiple      
  195    objects yields a JSON object that contains an array of JSON objects     
  196    that are the subject of the search.  In each type of response, other    
  197    data structures are present within the topmost JSON object.             
  198                                                                            
  199 2.  Use of JSON                                                            
  200                                                                            

The IETF is responsible for the creation and maintenance of the DNS RFCs. The ICANN DNS RFC annotation project provides a forum for collecting community annotations on these RFCs as an aid to understanding for implementers and any interested parties. The annotations displayed here are not the result of the IETF consensus process.

This RFC is included in the DNS RFCs annotation project whose home page is here.

  201 2.1.  Naming                                                               
  202                                                                            
  203    Clients of these JSON responses SHOULD ignore unrecognized JSON         
  204    members in responses.  Servers can insert members into the JSON         
  205    responses, which are not specified in this document, but that does      
  206    not constitute an error in the response.  Servers that insert such      
  207    unspecified members into JSON responses SHOULD have member names        
  208    prefixed with a short identifier followed by an underscore followed     
  209    by a meaningful name.  It has been observed that these short            
  210    identifiers aid software implementers with identifying the              
  211    specification of the JSON member, and failure to use one could cause    
  212    an implementer to assume the server is erroneously using a name from    
  213    this specification.  This allowance does not apply to jCard [RFC7095]   
  214    objects.  The full JSON name (the prefix plus the underscore plus the   
  215    meaningful name) SHOULD adhere to the character and name limitations    
  216    of the prefix registry described in [RFC7480].  Failure to use these    
  217    limitations could result in slower adoption as these limitations have   
  218    been observed to aid some client programming models.                    
  219                                                                            
  220    Consider the following JSON response with JSON members, all of which    
  221    are specified in this document.                                         
  222                                                                            
  223    {                                                                       
  224      "handle" : "ABC123",                                                  
  225      "remarks" :                                                           
  226      [                                                                     
  227        {                                                                   
  228          "description" :                                                   
  229          [                                                                 
  230            "She sells sea shells down by the sea shore.",                  
  231            "Originally written by Terry Sullivan."                         
  232          ]                                                                 
  233        }                                                                   
  234      ]                                                                     
  235    }                                                                       
  236                                                                            
  237                                   Figure 1                                 
  238                                                                            
  239    If The Registry of the Moon desires to express information not found    
  240    in this specification, it might select "lunarNIC" as its identifying    
  241    prefix and insert, as an example, the member named                      
  242    "lunarNIC_beforeOneSmallStep" to signify registrations occurring        
  243    before the first moon landing and the member named                      
  244    "lunarNIC_harshMistressNotes" that contains other descriptive text.     
  245                                                                            
  246    Consider the following JSON response with JSON names, some of which     
  247    should be ignored by clients without knowledge of their meaning.        
  248                                                                            
  249    {                                                                       
  250      "handle" : "ABC123",                                                  
  251      "lunarNIC_beforeOneSmallStep" : "TRUE THAT!",                         
  252      "remarks" :                                                           
  253      [                                                                     
  254        {                                                                   
  255          "description" :                                                   
  256          [                                                                 
  257            "She sells sea shells down by the sea shore.",                  
  258            "Originally written by Terry Sullivan."                         
  259          ]                                                                 
  260        }                                                                   
  261      ],                                                                    
  262      "lunarNIC_harshMistressNotes" :                                       
  263      [                                                                     
  264        "In space,",                                                        
  265        "nobody can hear you scream."                                       
  266      ]                                                                     
  267    }                                                                       
  268                                                                            
  269                                   Figure 2                                 
  270                                                                            
  271    Insertion of unrecognized members ignored by clients may also be used   
  272    for future revisions to this specification.                             
  273                                                                            
  274    Clients processing JSON responses need to be prepared for members       
  275    representing registration data specified in this document to be         
  276    absent from a response.  In other words, servers are free to omit       
  277    unrequired/optional JSON members containing registration data based     
  278    on their own policies.                                                  
  279                                                                            
  280    Finally, all JSON names specified in this document are case             
  281    sensitive.  Both servers and clients MUST transmit and process them     
  282    using the specified character case.                                     
  283                                                                            
  284 3.  Common Data Types                                                      
  285                                                                            
  286    JSON [RFC8259] defines the data types of a number, character string,    
  287    boolean, array, object, and null.  This section describes the           
  288    semantics and/or syntax reference for common, JSON character strings    
  289    used in this document.                                                  
  290                                                                            
  291    handle:           DNRs and RIRs have registry-unique identifiers that   
  292                      may be used to specifically reference an object       
  293                      instance.  The semantics of this data type as found   
  294                      in this document are to be a registry-unique          
  295                      reference to the closest enclosing object where the   
  296                      value is found.  The data type names "registryId",    
  297                      "roid", "nic-handle", "registrationNo", etc., are     
  298                      terms often synonymous with this data type.  In       
  299                      this document, the term "handle" is used.  The term   
  300                      exposed to users by clients is a presentation issue   
  301                      beyond the scope of this document.  This value is a   
  302                      simple character string.                              
  303                                                                            
  304    IPv4 addresses:   The representation of IPv4 addresses in this          
  305                      document uses the dotted-decimal notation.  An        
  306                      example of this textual representation is             
  307                      "192.0.2.0".                                          
  308                                                                            
  309    IPv6 addresses:   The representation of IPv6 addresses in this          
  310                      document follow the forms outlined in [RFC5952].      
  311                      An example of this textual representation is          
  312                      "2001:db8::1:0:0:1".                                  
  313                                                                            
  314    country codes:    Where the identity of a geopolitical nation or        
  315                      country is needed, these identities are represented   
  316                      with the alpha-2 or two-character country code        
  317                      designation as defined in [ISO.3166.2020].  The       
  318                      alpha-2 representation is used because it is freely   
  319                      available, whereas the alpha-3 and numeric-3          
  320                      standards are not.                                    
  321                                                                            
  322    LDH names:        Textual representations of DNS names where the        
  323                      labels of the domain are all "letters, digits,        
  324                      hyphen" labels as described by [RFC5890].  Trailing   
  325                      periods are optional.                                 
  326                                                                            
  327    Unicode names:    Textual representations of DNS names where one or     
  328                      more of the labels are U-labels as described by       
  329                      [RFC5890].  Trailing periods are optional.            
  330                                                                            
  331    dates and times:  The syntax for values denoting dates and times is     
  332                      defined in [RFC3339].                                 
  333                                                                            
  334    URIs:             The syntax for values denoting a Uniform Resource     
  335                      Identifier (URI) is defined by [RFC3986].             
  336                                                                            
  337    Contact information is defined using jCards as described in             
  338    [RFC7095].  The "fn" member is required and MUST NOT be null            
  339    according to [RFC6350].  An empty "fn" member MAY be used when the      
  340    contact name does not exist or is redacted.                             
  341                                                                            
  342 4.  Common Data Structures                                                 
  343                                                                            
  344    This section defines common data structures used in responses and       
  345    object classes.                                                         
  346                                                                            
section-2.1 Scott Hollenbeck(Technical Erratum #7094) [Verified]
based on outdated version
If The Registry of the Moon desires to express information not found
in this specification, it might select "lunarNIC" as its identifying
prefix and insert, as an example, the member named
"lunarNIC_beforeOneSmallStep" to signify registrations occurring
before the first moon landing and the member named
"lunarNIC_harshMistressNotes" that contains other descriptive text.

Consider the following JSON response with JSON names, some of which
should be ignored by clients without knowledge of their meaning.

{
  "handle" : "ABC123",
  "lunarNIC_beforeOneSmallStep" : "TRUE THAT!",
  "remarks" :
  [
    {
      "description" :
      [
        "She sells sea shells down by the sea shore.",
        "Originally written by Terry Sullivan."
      ]
    }
  ],
  "lunarNIC_harshMistressNotes" :
  [
    "In space,",
    "nobody can hear you scream."
  ]
}
Figure 2
It should say:
If The Registry of the Moon desires to express information not found
in this specification, it might select "lunarNIC_level_0" as its
identifying prefix and insert, as an example, the member named
"lunarNIC_level_0_beforeOneSmallStep" to signify registrations occurring
before the first moon landing and the member named
"lunarNIC_level_0_harshMistressNotes" that contains other descriptive
text.

Consider the following JSON response with JSON names, some of which
should be ignored by clients without knowledge of their meaning.

{
  "handle" : "ABC123",
  "lunarNIC_level_0_beforeOneSmallStep" : "TRUE THAT!",
  "remarks" :
  [
    {
      "description" :
      [
        "She sells sea shells down by the sea shore.",
        "Originally written by Terry Sullivan."
      ]
    }
  ],
  "lunarNIC_level_0_harshMistressNotes" :
  [
    "In space,",
    "nobody can hear you scream."
  ]
}
Figure 2

The original text uses the string identifier "lunarNIC" as the prefix
for an example extension. This is inconsistent with the example given in
Section 4.1, where "lunarNIC_level_0" is used as an example of a
registered identifier for an RDAP extension. This inconsistency can lead
implementers to believe that the registered identifier and the
extension prefix can be inconsistent, when the intent of the
specification is that they should be consistent. This inconsistency can
cause significant misunderstanding of the technical specification and
might result in faulty implementations if not corrected. Changing the
examples in Section 2.1 aligns the text with the example in Section 4.1,
demonstrating that the extension prefix and the registered identifier
should be one and the same.
  347 4.1.  RDAP Conformance                                                     
  348                                                                            
  349    The data structure named "rdapConformance" is an array of strings,      
  350    each providing a hint as to the specifications used in the              
  351    construction of the response.  This data structure MUST appear in the   
  352    topmost JSON object of a response and MUST NOT appear anywhere else.    
  353    A response to a "help" request will include identifiers for all of      
  354    the specifications supported by the server.  A response to any other    
  355    request will include only identifiers for the specifications used in    
  356    the construction of the response.  The set of returned identifiers      
  357    MAY vary depending on the authorization level of the client.            
  358                                                                            
  359    An example rdapConformance data structure:                              
  360                                                                            
  361    "rdapConformance" :                                                     
  362    [                                                                       
  363      "rdap_level_0"                                                        
  364    ]                                                                       
  365                                                                            
  366                                   Figure 3                                 
  367                                                                            
  368    The string literal "rdap_level_0" signifies conformance with this       
  369    specification.  When custom JSON values are inserted into responses,    
  370    conformance to those custom specifications MUST be indicated by         
  371    including a unique string literal value registered in the IANA RDAP     
  372    Extensions registry specified in [RFC7480].  For example, if the        
  373    fictional Registry of the Moon wants to signify that their JSON         
  374    responses are conformant with their registered extensions, the string   
  375    used might be "lunarNIC_level_0".  These registered values aid the      
  376    identification of specifications for software implementers, and         
  377    failure to use them could result in slower adoption of extensions.      
  378                                                                            
  379    Example rdapConformance structure with custom extensions noted:         
  380                                                                            
  381    "rdapConformance" :                                                     
  382    [                                                                       
  383      "rdap_level_0",                                                       
  384      "lunarNIC_level_0"                                                    
  385    ]                                                                       
  386                                                                            
  387                                   Figure 4                                 
  388                                                                            
  389 4.2.  Links                                                                
  390                                                                            
  391    The "links" array is found in data structures to signify links to       
  392    other resources on the Internet.  The relationship of these links is    
  393    defined by the IANA registry described by [RFC8288].                    
  394                                                                            
  395    The following is an example of the link structure:                      
  396                                                                            
  397        {                                                                   
  398          "value" : "https://example.com/context_uri",                      
  399          "rel" : "self",                                                   
  400          "href" : "https://example.com/target_uri",                        
  401          "hreflang" : [ "en", "ch" ],                                      
  402          "title" : "title",                                                
  403          "media" : "screen",                                               
  404          "type" : "application/json"                                       
  405        }                                                                   
  406                                                                            
  407                                   Figure 5                                 
  408                                                                            
  409    The JSON name/values of "rel", "href", "hreflang", "title", "media",    
  410    and "type" correspond to values found in Section 3 of [RFC8288].  The   
  411    "value" JSON value is the context URI as described by [RFC8288].  The   
  412    "value", "rel", and "href" JSON values MUST be specified.  All other    
  413    JSON values are OPTIONAL.  A "related" link relation MUST NOT include   
  414    an "href" URI that is the same as the "self" link relation "href" URI   
  415    to reduce the risk of infinite client processing loops.                 
  416    Internationalized Domain Names (IDNs) returned in URIs SHOULD be        
  417    consistently returned in LDH name format to allow clients to process    
  418    these IDNs according to their capabilities.                             
  419                                                                            
  420    This is an example of the "links" array as it might be found in an      
  421    object class:                                                           
  422                                                                            
  423        "links" :                                                           
  424        [                                                                   
  425            {                                                               
  426              "value" : "https://example.com/ip/2001:db8::123",             
  427              "rel" : "self",                                               
  428              "href" : "https://example.com/ip/2001:db8::123",              
  429              "type" : "application/rdap+json"                              
  430            },                                                              
  431            {                                                               
  432              "value" : "https://example.com/ip/2001:db8::123",             
  433              "rel" : "up",                                                 
  434              "href" : "https://example.com/ip/2001:db8::/48",              
  435              "type" : "application/rdap+json"                              
  436            }                                                               
  437                                                                            
  438        ]                                                                   
  439                                                                            
  440                                   Figure 6                                 
  441                                                                            
  442 4.3.  Notices and Remarks                                                  
  443                                                                            
  444    The "notices" and "remarks" data structures take the same form.  The    
  445    notices structure denotes information about the service providing       
  446    RDAP information and/or information about the entire response,          
  447    whereas the remarks structure denotes information about the object      
  448    class that contains it (see Section 5 regarding object classes).        
  449                                                                            
  450    Both are arrays of objects.  Each object contains a "title" string      
  451    representing the title of the object, a "type" string denoting a        
  452    registered type of remark or notice (see Section 10.2.1), an array of   
  453    strings named "description" for the purposes of conveying any           
  454    descriptive text, and a "links" array as described in Section 4.2.      
  455    The "description" array MUST be included.  All other JSON values are    
  456    OPTIONAL.                                                               
  457                                                                            
  458    An example of the notices data structure:                               
  459                                                                            
  460    "notices" :                                                             
  461    [                                                                       
  462      {                                                                     
  463        "title" : "Terms of Use",                                           
  464        "description" :                                                     
  465        [                                                                   
  466          "Service subject to The Registry of the Moon's TOS.",             
  467          "Copyright (c) 2020 LunarNIC"                                     
  468        ],                                                                  
  469        "links" :                                                           
  470        [                                                                   
  471          {                                                                 
  472            "value" : "https://example.net/entity/XXXX",                    
  473            "rel" : "alternate",                                            
  474            "type" : "text/html",                                           
  475            "href" : "https://www.example.com/terms_of_use.html"            
  476          }                                                                 
  477        ]                                                                   
  478      }                                                                     
  479    ]                                                                       
  480                                                                            
  481                                   Figure 7                                 
  482                                                                            
  483    It is the job of the clients to determine line breaks, spacing, and     
  484    display issues for sentences within the character strings of the        
  485    "description" array.  Each string in the "description" array contains   
  486    a single complete division of human-readable text indicating to         
  487    clients where there are semantic breaks.                                
  488                                                                            
  489    An example of the remarks data structure:                               
  490                                                                            
  491    "remarks" :                                                             
  492    [                                                                       
  493      {                                                                     
  494        "description" :                                                     
  495        [                                                                   
  496          "She sells sea shells down by the sea shore.",                    
  497          "Originally written by Terry Sullivan."                           
  498        ]                                                                   
  499      }                                                                     
  500    ]                                                                       
  501                                                                            
  502                                   Figure 8                                 
  503                                                                            
  504    Note that objects in the "remarks" array may also have a "links"        
  505    array.                                                                  
  506                                                                            
  507    While the "title" and "description" fields are intended primarily for   
  508    human consumption, the "type" string contains a well-known value to     
  509    be registered with IANA (see Section 10.2.1) for programmatic use.      
  510                                                                            
  511    An example of the remarks data structure:                               
  512                                                                            
  513    "remarks" :                                                             
  514    [                                                                       
  515      {                                                                     
  516        "type" : "object truncated due to authorization",                   
  517        "description" :                                                     
  518        [                                                                   
  519          "Some registration data may not have been given.",                
  520          "Use proper authorization credentials to see all of it."          
  521        ]                                                                   
  522      }                                                                     
  523    ]                                                                       
  524                                                                            
  525                                   Figure 9                                 
  526                                                                            
  527    While the "remarks" array will appear in many object classes in a       
  528    response, the "notices" array appears only in the topmost object of a   
  529    response.                                                               
  530                                                                            
  531 4.4.  Language Identifier                                                  
  532                                                                            
  533    This data structure consists solely of a name/value pair, where the     
  534    name is "lang" and the value is a string containing a language          
  535    identifier as described in [RFC5646].                                   
  536                                                                            
  537    "lang" : "mn-Cyrl-MN"                                                   
  538                                                                            
  539                                  Figure 10                                 
  540                                                                            
  541    The "lang" attribute as defined in this section MAY appear anywhere     
  542    in an object class or data structure, except for in jCard objects.      
  543    vCard supports similar functionality by way of the LANGUAGE property    
  544    parameter (see Section 5.1 of RFC 6350 [RFC6350]).                      
  545                                                                            
  546 4.5.  Events                                                               
  547                                                                            
  548    This data structure represents events that have occurred on an          
  549    instance of an object class (see Section 5 regarding object classes).   
  550                                                                            
  551    This is an example of an "events" array.                                
  552                                                                            
  553    "events" :                                                              
  554    [                                                                       
  555      {                                                                     
  556        "eventAction" : "registration",                                     
  557        "eventActor" : "SOMEID-LUNARNIC",                                   
  558        "eventDate" : "1990-12-31T23:59:59Z"                                
  559      },                                                                    
  560      {                                                                     
  561        "eventAction" : "last changed",                                     
  562        "eventActor" : "OTHERID-LUNARNIC",                                  
  563        "eventDate" : "1991-12-31T23:59:59Z"                                
  564      }                                                                     
  565    ]                                                                       
  566                                                                            
  567                                  Figure 11                                 
  568                                                                            
  569    The "events" array consists of objects, each with the following         
  570    members:                                                                
  571                                                                            
  572    *  "eventAction" -- a REQUIRED string denoting the reason for the       
  573       event                                                                
  574                                                                            
  575    *  "eventActor" -- an OPTIONAL identifier denoting the actor            
  576       responsible for the event                                            
  577                                                                            
  578    *  "eventDate" -- a REQUIRED string containing the time and date the    
  579       event occurred                                                       
  580                                                                            
  581    *  "links" -- OPTIONAL; see Section 4.2                                 
  582                                                                            
  583    Events can be future dated.  One use case for future dating of events   
  584    is to denote when an object expires from a registry.                    
  585                                                                            
  586    The "links" array in this data structure is provided for references     
  587    to the event actor.  In order to reference an RDAP entity, a "rel" of   
  588    "related" and a "type" of "application/rdap+json" is used in the link   
  589    reference.                                                              
  590                                                                            
  591    See Section 10.2.3 for a list of values for the "eventAction" string.   
  592    See Appendix B regarding the various ways events can be modeled.        
  593                                                                            
  594 4.6.  Status                                                               
  595                                                                            
  596    This data structure, named "status", is an array of strings             
  597    indicating the state of a registered object (see Section 10.2.2 for a   
  598    list of values).                                                        
  599                                                                            
  600 4.7.  Port 43 WHOIS Server                                                 
  601                                                                            
  602    This data structure, a member named "port43", is a simple character     
  603    string containing the fully qualified host name or IP address of the    
  604    WHOIS [RFC3912] server where the containing object instance may be      
  605    found.  Note that this is not a URI, as there is no WHOIS URI scheme.   
  606                                                                            
  607 4.8.  Public IDs                                                           
  608                                                                            
  609    This data structure maps a public identifier to an object class.  It    
  610    is named "publicIds" and is an array of objects, with each object       
  611    containing the following REQUIRED members:                              
  612                                                                            
  613    *  type -- a string denoting the type of public identifier              
  614                                                                            
  615    *  identifier -- a string denoting a public identifier of the type      
  616       related to "type"                                                    
  617                                                                            
  618    The following is an example of a publicIds structure.                   
  619                                                                            
  620    "publicIds":                                                            
  621    [                                                                       
  622      {                                                                     
  623        "type":"IANA Registrar ID",                                         
  624        "identifier":"1"                                                    
  625      }                                                                     
  626    ]                                                                       
  627                                                                            
  628                                  Figure 12                                 
  629                                                                            
  630 4.9.  Object Class Name                                                    
  631                                                                            
  632    This data structure, a member named "objectClassName", gives the        
  633    object class name of a particular object as a string.  This             
  634    identifies the type of object being processed.  An objectClassName is   
  635    REQUIRED in all RDAP response objects so that the type of the object    
  636    can be interpreted.                                                     
  637                                                                            
  638 4.10.  An Example                                                          
  639                                                                            
  640    This is an example response with both rdapConformance and notices       
  641    embedded:                                                               
  642                                                                            
  643    {                                                                       
  644      "rdapConformance" :                                                   
  645      [                                                                     
  646        "rdap_level_0"                                                      
  647      ],                                                                    
  648      "notices" :                                                           
  649      [                                                                     
  650        {                                                                   
  651          "title" : "Content Removed",                                      
  652          "description" :                                                   
  653          [                                                                 
  654            "Without full authorization, content has been removed.",        
  655            "Sorry, dude!"                                                  
  656          ],                                                                
  657          "links" :                                                         
  658          [                                                                 
  659            {                                                               
  660              "value" : "https://example.net/ip/192.0.2.0/24",              
  661              "rel" : "alternate",                                          
  662              "type" : "text/html",                                         
  663              "href" : "https://www.example.com/redaction_policy.html"      
  664            }                                                               
  665          ]                                                                 
  666        }                                                                   
  667      ],                                                                    
  668      "lang" : "en",                                                        
  669      "objectClassName" : "ip network",                                     
  670      "startAddress" : "192.0.2.0",                                         
  671      "endAddress" : "192.0.2.255",                                         
  672      "handle" : "XXXX-RIR",                                                
  673      "ipVersion" : "v4",                                                   
  674      "name": "NET-RTR-1",                                                  
  675      "parentHandle" : "YYYY-RIR",                                          
  676      "remarks" :                                                           
  677      [                                                                     
  678                                                                            
  679        {                                                                   
  680          "description" :                                                   
  681          [                                                                 
  682            "She sells sea shells down by the sea shore.",                  
  683            "Originally written by Terry Sullivan."                         
  684          ]                                                                 
  685        }                                                                   
  686      ]                                                                     
  687    }                                                                       
  688                                                                            
  689                                  Figure 13                                 
  690                                                                            
  691 5.  Object Classes                                                         
  692                                                                            
  693    Object classes represent structures appropriate for a response from     
  694    the queries specified in [RFC9082].                                     
  695                                                                            
  696    Each object class contains a "links" array as specified in              
  697    Section 4.2.  For every object class instance in a response, whether    
  698    the object class instance is directly representing the response to a    
  699    query or is embedded in other object class instances or is an item in   
  700    a search result set, servers SHOULD provide a link representing a URI   
  701    for that object class instance using the "self" relationship as         
  702    described in the IANA registry specified by [RFC8288].  As explained    
  703    in Section 5.2, this may be not always be possible for nameserver       
  704    data.  Clients MUST be able to process object instances without a       
  705    self link.  When present, clients can use the self link for caching     
  706    data.  Servers MAY provide more than one self link for any given        
  707    object instance.  Failure to provide any self link by a server may      
  708    result in clients being unable to cache object class instances.         
  709                                                                            
  710    Clients using self links for caching SHOULD NOT cache any object        
  711    class instances where the authority of the self link is different       
  712    than the authority of the server returning the data.  Failing to do     
  713    so might result in cache poisoning.                                     
  714                                                                            
  715    Self links MUST contain a "type" element containing the "application/   
  716    rdap+json" media type when referencing RDAP object instances as         
  717    defined by this document.                                               
  718                                                                            
  719    This is an example of the "links" array with a self link to an object   
  720    class:                                                                  
  721                                                                            
  722        "links" :                                                           
  723        [                                                                   
  724            {                                                               
  725              "value" : "https://example.com/ip/2001:db8::123",             
  726              "rel" : "self",                                               
  727              "href" : "https://example.com/ip/2001:db8::123",              
  728              "type" : "application/rdap+json"                              
  729            }                                                               
  730        ]                                                                   
  731                                                                            
  732                                  Figure 14                                 
  733                                                                            
  734 5.1.  The Entity Object Class                                              
  735                                                                            
  736    The entity object class appears throughout this document and is an      
  737    appropriate response for the /entity/XXXX query defined in              
  738    "Registration Data Access Protocol (RDAP) Query Format" [RFC9082].      
  739    This object class represents the information of organizations,          
  740    corporations, governments, non-profits, clubs, individual persons,      
  741    and informal groups of people.  All of these representations are so     
  742    similar that it is best to represent them in JSON [RFC8259] with one    
  743    construct, the entity object class, to aid in the reuse of code by      
  744    implementers.                                                           
  745                                                                            
  746    The entity object class uses jCard [RFC7095] to represent contact       
  747    information, such as postal addresses, email addresses, phone numbers   
  748    and names of organizations and individuals.  Many of the types of       
  749    information that can be represented with jCard have little or no use    
  750    in RDAP, such as birthdays, anniversaries, and gender.                  
  751                                                                            
  752    The entity object is served by both RIRs and DNRs.  The following is    
  753    an example of an entity that might be served by an RIR.                 
  754                                                                            
  755    {                                                                       
  756      "objectClassName" : "entity",                                         
  757      "handle":"XXXX",                                                      
  758      "vcardArray":[                                                        
  759        "vcard",                                                            
  760        [                                                                   
  761          ["version", {}, "text", "4.0"],                                   
  762          ["fn", {}, "text", "Joe User"],                                   
  763          ["n", {}, "text",                                                 
  764            ["User", "Joe", "", "", ["ing. jr", "M.Sc."]]                   
  765          ],                                                                
  766          ["kind", {}, "text", "individual"],                               
  767          ["lang", {                                                        
  768            "pref":"1"                                                      
  769          }, "language-tag", "fr"],                                         
  770          ["lang", {                                                        
  771            "pref":"2"                                                      
  772          }, "language-tag", "en"],                                         
  773          ["org", {                                                         
  774            "type":"work"                                                   
  775          }, "text", "Example"],                                            
  776          ["title", {}, "text", "Research Scientist"],                      
  777          ["role", {}, "text", "Project Lead"],                             
  778          ["adr",                                                           
  779            { "type":"work" },                                              
  780            "text",                                                         
  781            [                                                               
  782              "",                                                           
  783              "Suite 1234",                                                 
  784              "4321 Rue Somewhere",                                         
  785              "Quebec",                                                     
  786              "QC",                                                         
  787              "G1V 2M2",                                                    
  788              "Canada"                                                      
  789            ]                                                               
  790          ],                                                                
  791          ["adr",                                                           
  792            {                                                               
  793              "type":"home",                                                
  794              "label":"123 Maple Ave\nSuite 90001\nVancouver\nBC\n1239\n"   
  795            },                                                              
  796            "text",                                                         
  797            [                                                               
  798              "", "", "", "", "", "", ""                                    
  799            ]                                                               
  800          ],                                                                
  801          ["tel",                                                           
  802            {                                                               
  803              "type":["work", "voice"],                                     
  804              "pref":"1"                                                    
  805            },                                                              
  806            "uri",                                                          
  807            "tel:+1-555-555-1234;ext=102"                                   
  808          ],                                                                
  809          ["tel",                                                           
  810            { "type":["work", "cell", "voice", "video", "text"] },          
  811            "uri",                                                          
  812            "tel:+1-555-555-4321"                                           
  813          ],                                                                
  814          ["email",                                                         
  815            { "type":"work" },                                              
  816            "text",                                                         
  817            "joe.user@example.com"                                          
  818          ],                                                                
  819          ["geo", {                                                         
  820            "type":"work"                                                   
  821          }, "uri", "geo:46.772673,-71.282945"],                            
  822          ["key",                                                           
  823            { "type":"work" },                                              
  824            "uri",                                                          
  825            "https://www.example.com/joe.user/joe.asc"                      
  826          ],                                                                
  827          ["tz", {},                                                        
  828            "utc-offset", "-05:00"],                                        
  829          ["url", { "type":"home" },                                        
  830            "uri", "https://example.org"]                                   
  831        ]                                                                   
  832      ],                                                                    
  833      "roles":[ "registrar" ],                                              
  834      "publicIds":[                                                         
  835        {                                                                   
  836          "type":"IANA Registrar ID",                                       
  837          "identifier":"1"                                                  
  838        }                                                                   
  839      ],                                                                    
  840      "remarks":[                                                           
  841        {                                                                   
  842          "description":[                                                   
  843            "She sells sea shells down by the sea shore.",                  
  844            "Originally written by Terry Sullivan."                         
  845          ]                                                                 
  846        }                                                                   
  847      ],                                                                    
  848      "links":[                                                             
  849        {                                                                   
  850          "value":"https://example.com/entity/XXXX",                        
  851          "rel":"self",                                                     
  852          "href":"https://example.com/entity/XXXX",                         
  853          "type" : "application/rdap+json"                                  
  854        }                                                                   
  855      ],                                                                    
  856      "events":[                                                            
  857        {                                                                   
  858          "eventAction":"registration",                                     
  859          "eventDate":"1990-12-31T23:59:59Z"                                
  860        }                                                                   
  861      ],                                                                    
  862      "asEventActor":[                                                      
  863                                                                            
  864        {                                                                   
  865          "eventAction":"last changed",                                     
  866          "eventDate":"1991-12-31T23:59:59Z"                                
  867        }                                                                   
  868      ]                                                                     
  869    }                                                                       
  870                                                                            
  871                                  Figure 15                                 
  872                                                                            
  873    The entity object class can contain the following members:              
  874                                                                            
  875    *  objectClassName -- the string "entity"                               
  876                                                                            
  877    *  handle -- a string representing a registry-unique identifier of      
  878       the entity                                                           
  879                                                                            
  880    *  vcardArray -- a jCard with the entity's contact information          
  881                                                                            
  882    *  roles -- an array of strings, each signifying the relationship an    
  883       object would have with its closest containing object (see            
  884       Section 10.2.4 for a list of values)                                 
  885                                                                            
  886    *  publicIds -- see Section 4.8                                         
  887                                                                            
  888    *  entities -- an array of entity objects as defined by this section    
  889                                                                            
  890    *  remarks -- see Section 4.3                                           
  891                                                                            
  892    *  links -- see Section 4.2                                             
  893                                                                            
  894    *  events -- see Section 4.5                                            
  895                                                                            
  896    *  asEventActor -- this data structure takes the same form as the       
  897       events data structure (see Section 4.5), but each object in the      
  898       array MUST NOT have an "eventActor" member.  These objects denote    
  899       that the entity is an event actor for the given events.  See         
  900       Appendix B regarding the various ways events can be modeled.         
  901                                                                            
  902    *  status -- see Section 4.6                                            
  903                                                                            
  904    *  port43 -- see Section 4.7                                            
  905                                                                            
  906    *  networks -- an array of IP network objects as defined in             
  907       Section 5.4                                                          
  908                                                                            
  909    *  autnums -- an array of autnum objects as defined in Section 5.5      
  910                                                                            
  911    Entities may also have other entities embedded with them in an array.   
  912    This can be used to model an organization with specific individuals     
  913    fulfilling designated roles of responsibility.                          
  914                                                                            
  915    The following is an elided example of an entity with embedded           
  916    entities.                                                               
  917                                                                            
  918    {                                                                       
  919      "objectClassName" : "entity",                                         
  920      "handle" : "ANENTITY",                                                
  921      "roles" : [ "registrar" ],                                            
  922      ...                                                                   
  923      "entities" :                                                          
  924      [                                                                     
  925        {                                                                   
  926          "objectClassName" : "entity",                                     
  927          "handle": "ANEMBEDDEDENTITY",                                     
  928          "roles" : [ "technical" ],                                        
  929          ...                                                               
  930        },                                                                  
  931        ...                                                                 
  932      ],                                                                    
  933      ...                                                                   
  934    }                                                                       
  935                                                                            
  936                                  Figure 16                                 
  937                                                                            
  938    The following is an example of an entity that might be served by a      
  939    DNR.                                                                    
  940                                                                            
  941    {                                                                       
  942      "objectClassName" : "entity",                                         
  943      "handle":"XXXX",                                                      
  944      "vcardArray":[                                                        
  945        "vcard",                                                            
  946        [                                                                   
  947          ["version", {}, "text", "4.0"],                                   
  948          ["fn", {}, "text", "Joe User"],                                   
  949          ["kind", {}, "text", "individual"],                               
  950          ["lang", {                                                        
  951            "pref":"1"                                                      
  952          }, "language-tag", "fr"],                                         
  953          ["lang", {                                                        
  954            "pref":"2"                                                      
  955          }, "language-tag", "en"],                                         
  956          ["org", {                                                         
  957            "type":"work"                                                   
  958          }, "text", "Example"],                                            
  959          ["title", {}, "text", "Research Scientist"],                      
  960          ["role", {}, "text", "Project Lead"],                             
  961          ["adr",                                                           
  962            { "type":"work" },                                              
  963            "text",                                                         
  964            [                                                               
  965              "",                                                           
  966              "Suite 1234",                                                 
  967              "4321 Rue Somewhere",                                         
  968              "Quebec",                                                     
  969              "QC",                                                         
  970              "G1V 2M2",                                                    
  971              "Canada"                                                      
  972            ]                                                               
  973          ],                                                                
  974          ["tel",                                                           
  975            { "type":["work", "voice"], "pref":"1" },                       
  976            "uri", "tel:+1-555-555-1234;ext=102"                            
  977          ],                                                                
  978          ["email",                                                         
  979            { "type":"work" },                                              
  980            "text", "joe.user@example.com"                                  
  981          ]                                                                 
  982        ]                                                                   
  983      ],                                                                    
  984      "status":[ "validated", "locked" ],                                   
  985      "remarks":[                                                           
  986        {                                                                   
  987          "description":[                                                   
  988            "She sells sea shells down by the sea shore.",                  
  989            "Originally written by Terry Sullivan."                         
  990          ]                                                                 
  991        }                                                                   
  992      ],                                                                    
  993      "links":[                                                             
  994        {                                                                   
  995          "value":"https://example.com/entity/XXXX",                        
  996          "rel":"self",                                                     
  997          "href":"https://example.com/entity/XXXX",                         
  998          "type":"application/rdap+json"                                    
  999        }                                                                   
 1000      ],                                                                    
 1001      "port43":"whois.example.net",                                         
 1002      "events":[                                                            
 1003        {                                                                   
 1004          "eventAction":"registration",                                     
 1005          "eventDate":"1990-12-31T23:59:59Z"                                
 1006        },                                                                  
 1007        {                                                                   
 1008          "eventAction":"last changed",                                     
 1009          "eventDate":"1991-12-31T23:59:59Z",                               
 1010          "eventActor":"joe@example.com"                                    
 1011        }                                                                   
 1012      ]                                                                     
 1013    }                                                                       
 1014                                                                            
 1015                                  Figure 17                                 
 1016                                                                            
 1017    See Appendix A for use of the entity object class to model various      
 1018    types of entities found in both RIRs and DNRs.  See Appendix C          
 1019    regarding structured vs.  unstructured postal addresses in entities.    
 1020                                                                            
 1021 5.2.  The Nameserver Object Class                                          
 1022                                                                            
 1023    The nameserver object class represents information regarding DNS        
 1024    nameservers used in both forward and reverse DNS.  RIRs and some DNRs   
 1025    register or expose nameserver information as an attribute of a domain   
 1026    name, while other DNRs model nameservers as "first class objects".      
 1027    Please note that some of the examples in this section include lines     
 1028    that have been wrapped for reading clarity.                             
 1029                                                                            
 1030    The nameserver object class accommodates both models and degrees of     
 1031    variation in between.                                                   
 1032                                                                            
 1033    The following is an example of a nameserver object.                     
 1034                                                                            
 1035      {                                                                     
 1036        "objectClassName" : "nameserver",                                   
 1037        "handle" : "XXXX",                                                  
 1038        "ldhName" : "ns1.xn--fo-5ja.example",                               
 1039        "unicodeName" : "ns.fóo.example",                                   
 1040        "status" : [ "active" ],                                            
 1041        "ipAddresses" :                                                     
 1042        {                                                                   
 1043          "v4": [ "192.0.2.1", "192.0.2.2" ],                               
 1044          "v6": [ "2001:db8::123" ]                                         
 1045        },                                                                  
 1046        "remarks" :                                                         
 1047        [                                                                   
 1048          {                                                                 
 1049            "description" :                                                 
 1050            [                                                               
 1051              "She sells sea shells down by the sea shore.",                
 1052              "Originally written by Terry Sullivan."                       
 1053            ]                                                               
 1054          }                                                                 
 1055        ],                                                                  
 1056        "links" :                                                           
 1057        [                                                                   
 1058          {                                                                 
 1059            "value" : "https://example.net/nameserver/                      
 1060                       ns1.xn--fo-5ja.example",                             
 1061            "rel" : "self",                                                 
 1062            "href" : "https://example.net/nameserver/                       
 1063                      ns1.xn--fo-5ja.example",                              
 1064            "type" : "application/rdap+json"                                
 1065          }                                                                 
 1066        ],                                                                  
 1067        "port43" : "whois.example.net",                                     
 1068        "events" :                                                          
 1069        [                                                                   
 1070          {                                                                 
 1071            "eventAction" : "registration",                                 
 1072            "eventDate" : "1990-12-31T23:59:59Z"                            
 1073          },                                                                
 1074          {                                                                 
 1075            "eventAction" : "last changed",                                 
 1076            "eventDate" : "1991-12-31T23:59:59Z",                           
 1077            "eventActor" : "joe@example.com"                                
 1078          }                                                                 
 1079        ]                                                                   
 1080      }                                                                     
 1081                                                                            
 1082                                  Figure 18                                 
 1083                                                                            
 1084    Figure 18 is an example of a nameserver object with all appropriate     
 1085    values given.  Registries using a first-class nameserver data model     
 1086    would embed this in domain objects as well as allowing references to    
 1087    it with the "/nameserver" query type (all depending on the registry     
 1088    operators policy).  Other registries may pare back the information as   
 1089    needed.  Figure 19 is an example of a nameserver object as would be     
 1090    found in RIRs and some DNRs, while Figure 20 is an example of a         
 1091    nameserver object as would be found in other DNRs.                      
 1092                                                                            
 1093    The following is an example of the simplest nameserver object:          
 1094                                                                            
 1095      {                                                                     
 1096        "objectClassName" : "nameserver",                                   
 1097        "ldhName" : "ns1.example.com"                                       
 1098      }                                                                     
 1099                                                                            
 1100                                  Figure 19                                 
 1101                                                                            
 1102    The following is an example of a simple nameserver object that might    
 1103    be commonly used by DNRs:                                               
 1104                                                                            
 1105      {                                                                     
 1106        "objectClassName" : "nameserver",                                   
 1107        "ldhName" : "ns1.example.com",                                      
 1108        "ipAddresses" : { "v6" : [ "2001:db8::123", "2001:db8::124" ] }     
 1109      }                                                                     
 1110                                                                            
 1111                                  Figure 20                                 
 1112                                                                            
 1113    As nameservers can be modeled by some registries to be first-class      
 1114    objects, they may also have an array of entities (Section 5.1)          
 1115    embedded to signify parties responsible for the maintenance,            
 1116    registrations, etc., of the nameservers.                                
 1117                                                                            
 1118    The following is an elided example of a nameserver with embedded        
 1119    entities.                                                               
 1120                                                                            
 1121    {                                                                       
 1122      "objectClassName" : "nameserver",                                     
 1123      "handle" : "XXXX",                                                    
 1124      "ldhName" : "ns.xn--fo-5ja.example",                                  
 1125      ...                                                                   
 1126      "entities" :                                                          
 1127      [                                                                     
 1128        ...                                                                 
 1129      ],                                                                    
 1130      ...                                                                   
 1131    }                                                                       
 1132                                                                            
 1133                                  Figure 21                                 
 1134                                                                            
 1135    The nameserver object class can contain the following members:          
 1136                                                                            
 1137    *  objectClassName -- the string "nameserver"                           
 1138                                                                            
 1139    *  handle -- a string representing a registry-unique identifier of      
 1140       the nameserver                                                       
 1141                                                                            
 1142    *  ldhName -- a string containing the LDH name of the nameserver (see   
 1143       Section 3)                                                           
 1144                                                                            
 1145    *  unicodeName -- a string containing a DNS Unicode name of the         
 1146       nameserver (see Section 3)                                           
 1147                                                                            
 1148    *  ipAddresses -- an object containing the following members:           
 1149                                                                            
 1150       -  v6 -- an array of strings containing IPv6 addresses of the        
 1151          nameserver                                                        
 1152                                                                            
 1153       -  v4 -- an array of strings containing IPv4 addresses of the        
 1154          nameserver                                                        
 1155                                                                            
 1156    *  entities -- an array of entity objects as defined by Section 5.1     
 1157                                                                            
 1158    *  status -- see Section 4.6                                            
 1159                                                                            
 1160    *  remarks -- see Section 4.3                                           
 1161                                                                            
 1162    *  links -- see Section 4.2                                             
 1163                                                                            
 1164    *  port43 -- see Section 4.7                                            
 1165                                                                            
 1166    *  events -- see Section 4.5                                            
 1167                                                                            
 1168 5.3.  The Domain Object Class                                              
 1169                                                                            
 1170    The domain object class represents a DNS name and point of              
 1171    delegation.  For RIRs, these delegation points are in the reverse DNS   
 1172    tree, whereas for DNRs, these delegation points are in the forward      
 1173    DNS tree.                                                               
 1174                                                                            
 1175    In both cases, the high-level structure of the domain object class      
 1176    consists of information about the domain registration, nameserver       
 1177    information related to the domain name, and entities related to the     
 1178    domain name (e.g., registrant information, contacts, etc.).             
 1179                                                                            
 1180    The following is an elided example of the domain object showing the     
 1181    high-level structure:                                                   
 1182                                                                            
 1183    {                                                                       
 1184      "objectClassName" : "domain",                                         
 1185      "handle" : "XXX",                                                     
 1186      "ldhName" : "blah.example.com",                                       
 1187      ...                                                                   
 1188      "nameservers" :                                                       
 1189      [                                                                     
 1190        ...                                                                 
 1191      ],                                                                    
 1192      ...                                                                   
 1193      "entities" :                                                          
 1194      [                                                                     
 1195        ...                                                                 
 1196      ]                                                                     
 1197    }                                                                       
 1198                                                                            
 1199                                  Figure 22                                 
 1200                                                                            
 1201    The domain object class can contain the following members:              
 1202                                                                            
 1203                                                                            
 1204    *  objectClassName -- the string "domain"                               
 1205                                                                            
 1206    *  handle -- a string representing a registry-unique identifier of      
 1207       the domain object instance                                           
 1208                                                                            
 1209    *  ldhName -- a string describing a domain name in LDH form as          
 1210       described in Section 3                                               
 1211                                                                            
 1212    *  unicodeName -- a string containing a domain name with U-labels as    
 1213       described in Section 3                                               
 1214                                                                            
 1215    *  variants -- an array of objects, each containing the following       
 1216       values:                                                              
 1217                                                                            
 1218       -  relation -- an array of strings, with each string denoting the    
 1219          relationship between the variants and the containing domain       
 1220          object (see Section 10.2.5 for a list of suggested variant        
 1221          relations).                                                       
 1222                                                                            
 1223       -  idnTable -- the character string literal that represents the      
 1224          Internationalized Domain Name (IDN) table that has been           
 1225          registered in the IANA Repository of IDN Practices                
 1226          [IANA_IDNTABLES].                                                 
 1227                                                                            
 1228       -  variantNames -- an array of objects, with each object             
 1229          containing an "ldhName" member and a "unicodeName" member (see    
 1230          Section 3).                                                       
 1231                                                                            
 1232    *  nameservers -- an array of nameserver objects as defined by          
 1233       Section 5.2                                                          
 1234                                                                            
 1235    *  secureDNS -- an object with the following members:                   
 1236                                                                            
 1237       -  zoneSigned -- boolean true if the zone has been signed, false     
 1238          otherwise.                                                        
 1239                                                                            
 1240       -  delegationSigned -- boolean true if there are DS records in the   
 1241          parent, false otherwise.                                          
 1242                                                                            
 1243       -  maxSigLife -- an integer representing the signature lifetime in   
 1244          seconds to be used when creating the RRSIG DS record in the       
 1245          parent zone [RFC5910].                                            
 1246                                                                            
 1247       -  dsData -- an array of objects, each with the following members:   
 1248                                                                            
 1249          o  keyTag -- an integer as specified by the key tag field of a    
 1250             DNS DS record as specified by [RFC4034] in presentation        
 1251             format                                                         
 1252                                                                            
 1253          o  algorithm -- an integer as specified by the algorithm field    
 1254             of a DNS DS record as described by RFC 4034 in presentation    
 1255             format                                                         
 1256                                                                            
 1257          o  digest -- a string as specified by the digest field of a DNS   
 1258             DS record as specified by RFC 4034 in presentation format      
 1259                                                                            
 1260          o  digestType -- an integer as specified by the digest type       
 1261             field of a DNS DS record as specified by RFC 4034 in           
 1262             presentation format                                            
 1263                                                                            
 1264          o  events -- see Section 4.5                                      
 1265                                                                            
 1266          o  links -- see Section 4.2                                       
 1267                                                                            
 1268       -  keyData -- an array of objects, each with the following           
 1269          members:                                                          
 1270                                                                            
 1271          o  flags -- an integer representing the flags field value in      
 1272             the DNSKEY record [RFC4034] in presentation format             
 1273                                                                            
 1274          o  protocol -- an integer representation of the protocol field    
 1275             value of the DNSKEY record [RFC4034] in presentation format    
 1276                                                                            
 1277          o  publicKey -- a string representation of the public key in      
 1278             the DNSKEY record [RFC4034] in presentation format             
 1279                                                                            
 1280          o  algorithm -- an integer as specified by the algorithm field    
 1281             of a DNSKEY record as specified by [RFC4034] in presentation   
 1282             format                                                         
 1283                                                                            
 1284          o  events -- see Section 4.5                                      
 1285                                                                            
 1286          o  links -- see Section 4.2                                       
 1287                                                                            
 1288             See Appendix D for background information on these objects.    
 1289                                                                            
 1290    *  entities -- an array of entity objects as defined by Section 5.1     
 1291                                                                            
 1292    *  status -- see Section 4.6                                            
 1293                                                                            
 1294    *  publicIds -- see Section 4.8                                         
 1295                                                                            
 1296    *  remarks -- see Section 4.3                                           
 1297                                                                            
 1298    *  links -- see Section 4.2                                             
 1299                                                                            
 1300    *  port43 -- see Section 4.7                                            
 1301                                                                            
 1302    *  events -- see Section 4.5                                            
 1303                                                                            
 1304    *  network -- represents the IP network for which a reverse DNS         
 1305       domain is referenced; see Section 5.4                                
 1306                                                                            
 1307    The following is an example of a JSON domain object representing a      
 1308    reverse DNS delegation point that might be served by an RIR (note       
 1309    that the dsData digest value has been modified to fit on one line).     
 1310                                                                            
 1311    {                                                                       
 1312      "objectClassName" : "domain",                                         
 1313      "handle" : "XXXX",                                                    
 1314      "ldhName" : "0.2.192.in-addr.arpa",                                   
 1315      "nameservers" :                                                       
 1316      [                                                                     
 1317        {                                                                   
 1318          "objectClassName" : "nameserver",                                 
 1319          "ldhName" : "ns1.rir.example"                                     
 1320        },                                                                  
 1321        {                                                                   
 1322          "objectClassName" : "nameserver",                                 
 1323          "ldhName" : "ns2.rir.example"                                     
 1324        }                                                                   
 1325      ],                                                                    
 1326      "secureDNS":                                                          
 1327      {                                                                     
 1328        "delegationSigned": true,                                           
 1329        "dsData":                                                           
 1330        [                                                                   
 1331          {                                                                 
 1332            "keyTag": 25345,                                                
 1333            "algorithm": 8,                                                 
 1334            "digestType": 2,                                                
 1335            "digest": "2788970E18EA14...C890C85B8205B94"                    
 1336          }                                                                 
 1337        ]                                                                   
 1338      },                                                                    
 1339      "remarks" :                                                           
 1340      [                                                                     
 1341        {                                                                   
 1342          "description" :                                                   
 1343          [                                                                 
 1344            "She sells sea shells down by the sea shore.",                  
 1345            "Originally written by Terry Sullivan."                         
 1346          ]                                                                 
 1347        }                                                                   
 1348      ],                                                                    
 1349      "links" :                                                             
 1350      [                                                                     
 1351        {                                                                   
 1352          "value": "https://example.net/domain/0.2.192.in-addr.arpa",       
 1353          "rel" : "self",                                                   
 1354          "href" : "https://example.net/domain/0.2.192.in-addr.arpa",       
 1355          "type" : "application/rdap+json"                                  
 1356                                                                            
 1357        }                                                                   
 1358      ],                                                                    
 1359      "events" :                                                            
 1360      [                                                                     
 1361        {                                                                   
 1362          "eventAction" : "registration",                                   
 1363          "eventDate" : "1990-12-31T23:59:59Z"                              
 1364        },                                                                  
 1365        {                                                                   
 1366          "eventAction" : "last changed",                                   
 1367          "eventDate" : "1991-12-31T23:59:59Z",                             
 1368          "eventActor" : "joe@example.com"                                  
 1369        }                                                                   
 1370      ],                                                                    
 1371      "entities" :                                                          
 1372      [                                                                     
 1373        {                                                                   
 1374          "objectClassName" : "entity",                                     
 1375          "handle" : "XXXX",                                                
 1376          "vcardArray":[                                                    
 1377            "vcard",                                                        
 1378            [                                                               
 1379              ["version", {}, "text", "4.0"],                               
 1380              ["fn", {}, "text", "Joe User"],                               
 1381              ["kind", {}, "text", "individual"],                           
 1382              ["lang", {                                                    
 1383                "pref":"1"                                                  
 1384              }, "language-tag", "fr"],                                     
 1385              ["lang", {                                                    
 1386                "pref":"2"                                                  
 1387              }, "language-tag", "en"],                                     
 1388              ["org", {                                                     
 1389                "type":"work"                                               
 1390              }, "text", "Example"],                                        
 1391              ["title", {}, "text", "Research Scientist"],                  
 1392              ["role", {}, "text", "Project Lead"],                         
 1393              ["adr",                                                       
 1394                { "type":"work" },                                          
 1395                "text",                                                     
 1396                [                                                           
 1397                  "",                                                       
 1398                  "Suite 1234",                                             
 1399                  "4321 Rue Somewhere",                                     
 1400                  "Quebec",                                                 
 1401                  "QC",                                                     
 1402                  "G1V 2M2",                                                
 1403                  "Canada"                                                  
 1404                ]                                                           
 1405                                                                            
 1406              ],                                                            
 1407              ["tel",                                                       
 1408                { "type":["work", "voice"], "pref":"1" },                   
 1409                "uri", "tel:+1-555-555-1234;ext=102"                        
 1410              ],                                                            
 1411              ["email",                                                     
 1412                { "type":"work" },                                          
 1413                "text", "joe.user@example.com"                              
 1414              ]                                                             
 1415            ]                                                               
 1416          ],                                                                
 1417          "roles" : [ "registrant" ],                                       
 1418          "remarks" :                                                       
 1419          [                                                                 
 1420            {                                                               
 1421              "description" :                                               
 1422              [                                                             
 1423                "She sells sea shells down by the sea shore.",              
 1424                "Originally written by Terry Sullivan."                     
 1425              ]                                                             
 1426            }                                                               
 1427          ],                                                                
 1428          "links" :                                                         
 1429          [                                                                 
 1430            {                                                               
 1431              "value": "https://example.net/entity/XXXX",                   
 1432              "rel" : "self",                                               
 1433              "href" : "https://example.net/entity/XXXX",                   
 1434              "type" : "application/rdap+json"                              
 1435            }                                                               
 1436          ],                                                                
 1437          "events" :                                                        
 1438          [                                                                 
 1439            {                                                               
 1440              "eventAction" : "registration",                               
 1441              "eventDate" : "1990-12-31T23:59:59Z"                          
 1442            },                                                              
 1443            {                                                               
 1444              "eventAction" : "last changed",                               
 1445              "eventDate" : "1991-12-31T23:59:59Z",                         
 1446              "eventActor" : "joe@example.com"                              
 1447            }                                                               
 1448          ]                                                                 
 1449        }                                                                   
 1450      ],                                                                    
 1451      "network" :                                                           
 1452      {                                                                     
 1453        "objectClassName" : "ip network",                                   
 1454        "handle" : "XXXX-RIR",                                              
 1455        "startAddress" : "192.0.2.0",                                       
 1456        "endAddress" : "192.0.2.255",                                       
 1457        "ipVersion" : "v4",                                                 
 1458        "name": "NET-RTR-1",                                                
 1459        "type" : "DIRECT ALLOCATION",                                       
 1460        "country" : "AU",                                                   
 1461        "parentHandle" : "YYYY-RIR",                                        
 1462        "status" : [ "active" ]                                             
 1463      }                                                                     
 1464    }                                                                       
 1465                                                                            
 1466                                  Figure 23                                 
 1467                                                                            
 1468    The following is an example of a JSON domain object representing a      
 1469    forward DNS delegation point that might be served by a DNR.  Note       
 1470    that the secureDNS keyData publicKey value has been modified to fit     
 1471    on a single line.                                                       
 1472                                                                            
 1473    {                                                                       
 1474      "objectClassName" : "domain",                                         
 1475      "handle" : "XXXX",                                                    
 1476      "ldhName" : "xn--fo-5ja.example",                                     
 1477      "unicodeName" : "fóo.example",                                        
 1478      "variants" :                                                          
 1479      [                                                                     
 1480        {                                                                   
 1481          "relation" : [ "registered", "conjoined" ],                       
 1482          "variantNames" :                                                  
 1483          [                                                                 
 1484            {                                                               
 1485              "ldhName" : "xn--fo-cka.example",                             
 1486              "unicodeName" : "fõo.example"                                 
 1487            },                                                              
 1488            {                                                               
 1489              "ldhName" : "xn--fo-fka.example",                             
 1490              "unicodeName" : "föo.example"                                 
 1491            }                                                               
 1492          ]                                                                 
 1493        },                                                                  
 1494        {                                                                   
 1495          "relation" : [ "unregistered", "registration restricted" ],       
 1496          "idnTable": ".EXAMPLE Swedish",                                   
 1497          "variantNames" :                                                  
 1498          [                                                                 
 1499            {                                                               
 1500              "ldhName": "xn--fo-8ja.example",                              
 1501              "unicodeName" : "fôo.example"                                 
 1502            }                                                               
 1503          ]                                                                 
 1504                                                                            
 1505        }                                                                   
 1506      ],                                                                    
 1507      "status" : [ "locked", "transfer prohibited" ],                       
 1508      "publicIds":[                                                         
 1509        {                                                                   
 1510          "type":"ENS_Auth ID",                                             
 1511          "identifier":"1234567890"                                         
 1512        }                                                                   
 1513      ],                                                                    
 1514      "nameservers" :                                                       
 1515      [                                                                     
 1516        {                                                                   
 1517          "objectClassName" : "nameserver",                                 
 1518          "handle" : "XXXX",                                                
 1519          "ldhName" : "ns1.example.com",                                    
 1520          "status" : [ "active" ],                                          
 1521          "ipAddresses" :                                                   
 1522          {                                                                 
 1523            "v6": [ "2001:db8::123", "2001:db8::124" ],                     
 1524            "v4": [ "192.0.2.1", "192.0.2.2" ]                              
 1525          },                                                                
 1526          "remarks" :                                                       
 1527          [                                                                 
 1528            {                                                               
 1529              "description" :                                               
 1530              [                                                             
 1531                "She sells sea shells down by the sea shore.",              
 1532                "Originally written by Terry Sullivan."                     
 1533              ]                                                             
 1534            }                                                               
 1535          ],                                                                
 1536          "links" :                                                         
 1537          [                                                                 
 1538            {                                                               
 1539              "value" : "https://example.net/nameserver/ns1.example.com",   
 1540              "rel" : "self",                                               
 1541              "href" : "https://example.net/nameserver/ns1.example.com",    
 1542              "type" : "application/rdap+json"                              
 1543            }                                                               
 1544          ],                                                                
 1545          "events" :                                                        
 1546          [                                                                 
 1547            {                                                               
 1548              "eventAction" : "registration",                               
 1549              "eventDate" : "1990-12-31T23:59:59Z"                          
 1550            },                                                              
 1551            {                                                               
 1552              "eventAction" : "last changed",                               
 1553              "eventDate" : "1991-12-31T23:59:59Z"                          
 1554            }                                                               
 1555          ]                                                                 
 1556        },                                                                  
 1557        {                                                                   
 1558          "objectClassName" : "nameserver",                                 
 1559          "handle" : "XXXX",                                                
 1560          "ldhName" : "ns2.example.com",                                    
 1561          "status" : [ "active" ],                                          
 1562          "ipAddresses" :                                                   
 1563          {                                                                 
 1564            "v6" : [ "2001:db8::125", "2001:db8::126" ],                    
 1565            "v4" : [ "192.0.2.3", "192.0.2.4" ]                             
 1566          },                                                                
 1567          "remarks" :                                                       
 1568          [                                                                 
 1569            {                                                               
 1570              "description" :                                               
 1571              [                                                             
 1572                "She sells sea shells down by the sea shore.",              
 1573                "Originally written by Terry Sullivan."                     
 1574              ]                                                             
 1575            }                                                               
 1576          ],                                                                
 1577          "links" :                                                         
 1578          [                                                                 
 1579            {                                                               
 1580              "value" : "https://example.net/nameserver/ns2.example.com",   
 1581              "rel" : "self",                                               
 1582              "href" : "https://example.net/nameserver/ns2.example.com",    
 1583              "type" : "application/rdap+json"                              
 1584            }                                                               
 1585          ],                                                                
 1586          "events" :                                                        
 1587          [                                                                 
 1588            {                                                               
 1589              "eventAction" : "registration",                               
 1590              "eventDate" : "1990-12-31T23:59:59Z"                          
 1591            },                                                              
 1592            {                                                               
 1593              "eventAction" : "last changed",                               
 1594              "eventDate" : "1991-12-31T23:59:59Z"                          
 1595            }                                                               
 1596          ]                                                                 
 1597        }                                                                   
 1598      ],                                                                    
 1599      "secureDNS":                                                          
 1600      {                                                                     
 1601                                                                            
 1602         "zoneSigned": true,                                                
 1603         "delegationSigned": true,                                          
 1604         "maxSigLife": 604800,                                              
 1605         "keyData":                                                         
 1606         [                                                                  
 1607           {                                                                
 1608             "flags": 257,                                                  
 1609             "protocol": 3,                                                 
 1610             "algorithm": 8,                                                
 1611             "publicKey": "AwEAAa6eDzronzjEDbT...Jg1M5N rBSPkuXpdFE=",      
 1612             "events":                                                      
 1613             [                                                              
 1614               {                                                            
 1615                 "eventAction": "last changed",                             
 1616                 "eventDate": "2012-07-23T05:15:47Z"                        
 1617               }                                                            
 1618             ]                                                              
 1619           }                                                                
 1620         ]                                                                  
 1621      },                                                                    
 1622      "remarks" :                                                           
 1623      [                                                                     
 1624        {                                                                   
 1625          "description" :                                                   
 1626          [                                                                 
 1627            "She sells sea shells down by the sea shore.",                  
 1628            "Originally written by Terry Sullivan."                         
 1629          ]                                                                 
 1630        }                                                                   
 1631      ],                                                                    
 1632      "links" :                                                             
 1633      [                                                                     
 1634        {                                                                   
 1635          "value": "https://example.net/domain/xn--fo-5ja.example",         
 1636          "rel" : "self",                                                   
 1637          "href" : "https://example.net/domain/xn--fo-5ja.example",         
 1638          "type" : "application/rdap+json"                                  
 1639        }                                                                   
 1640      ],                                                                    
 1641      "port43" : "whois.example.net",                                       
 1642      "events" :                                                            
 1643      [                                                                     
 1644        {                                                                   
 1645          "eventAction" : "registration",                                   
 1646          "eventDate" : "1990-12-31T23:59:59Z"                              
 1647        },                                                                  
 1648        {                                                                   
 1649          "eventAction" : "last changed",                                   
 1650          "eventDate" : "1991-12-31T23:59:59Z",                             
 1651          "eventActor" : "joe@example.com"                                  
 1652        },                                                                  
 1653        {                                                                   
 1654          "eventAction" : "transfer",                                       
 1655          "eventDate" : "1991-12-31T23:59:59Z",                             
 1656          "eventActor" : "joe@example.com"                                  
 1657        },                                                                  
 1658        {                                                                   
 1659          "eventAction" : "expiration",                                     
 1660          "eventDate" : "2016-12-31T23:59:59Z",                             
 1661          "eventActor" : "joe@example.com"                                  
 1662        }                                                                   
 1663      ],                                                                    
 1664      "entities" :                                                          
 1665      [                                                                     
 1666        {                                                                   
 1667          "objectClassName" : "entity",                                     
 1668          "handle" : "XXXX",                                                
 1669          "vcardArray":[                                                    
 1670            "vcard",                                                        
 1671            [                                                               
 1672              ["version", {}, "text", "4.0"],                               
 1673              ["fn", {}, "text", "Joe User"],                               
 1674              ["kind", {}, "text", "individual"],                           
 1675              ["lang", {                                                    
 1676                "pref":"1"                                                  
 1677              }, "language-tag", "fr"],                                     
 1678              ["lang", {                                                    
 1679                "pref":"2"                                                  
 1680              }, "language-tag", "en"],                                     
 1681              ["org", {                                                     
 1682                "type":"work"                                               
 1683              }, "text", "Example"],                                        
 1684              ["title", {}, "text", "Research Scientist"],                  
 1685              ["role", {}, "text", "Project Lead"],                         
 1686              ["adr",                                                       
 1687                { "type":"work" },                                          
 1688                "text",                                                     
 1689                [                                                           
 1690                  "",                                                       
 1691                  "Suite 1234",                                             
 1692                  "4321 Rue Somewhere",                                     
 1693                  "Quebec",                                                 
 1694                  "QC",                                                     
 1695                  "G1V 2M2",                                                
 1696                  "Canada"                                                  
 1697                ]                                                           
 1698                                                                            
 1699              ],                                                            
 1700              ["tel",                                                       
 1701                { "type":["work", "voice"], "pref":"1" },                   
 1702                "uri", "tel:+1-555-555-1234;ext=102"                        
 1703              ],                                                            
 1704              ["email",                                                     
 1705                { "type":"work" },                                          
 1706                "text", "joe.user@example.com"                              
 1707              ]                                                             
 1708            ]                                                               
 1709          ],                                                                
 1710          "status" : [ "validated", "locked" ],                             
 1711          "roles" : [ "registrant" ],                                       
 1712          "remarks" :                                                       
 1713          [                                                                 
 1714            {                                                               
 1715              "description" :                                               
 1716              [                                                             
 1717                "She sells sea shells down by the sea shore.",              
 1718                "Originally written by Terry Sullivan."                     
 1719              ]                                                             
 1720            }                                                               
 1721          ],                                                                
 1722          "links" :                                                         
 1723          [                                                                 
 1724            {                                                               
 1725              "value" : "https://example.net/entity/XXXX",                  
 1726              "rel" : "self",                                               
 1727              "href" : "https://example.net/entity/XXXX",                   
 1728              "type" : "application/rdap+json"                              
 1729            }                                                               
 1730          ],                                                                
 1731          "events" :                                                        
 1732          [                                                                 
 1733            {                                                               
 1734              "eventAction" : "registration",                               
 1735              "eventDate" : "1990-12-31T23:59:59Z"                          
 1736            },                                                              
 1737            {                                                               
 1738              "eventAction" : "last changed",                               
 1739              "eventDate" : "1991-12-31T23:59:59Z"                          
 1740            }                                                               
 1741          ]                                                                 
 1742        }                                                                   
 1743      ]                                                                     
 1744    }                                                                       
 1745                                                                            
 1746                                  Figure 24                                 
 1747                                                                            
 1748 5.4.  The IP Network Object Class                                          
 1749                                                                            
 1750    The IP network object class models IP network registrations found in    
 1751    RIRs and is the expected response for the "/ip" query as defined by     
 1752    [RFC9082].  There is no equivalent object class for DNRs.  The high-    
 1753    level structure of the IP network object class consists of              
 1754    information about the network registration and entities related to      
 1755    the IP network (e.g., registrant information, contacts, etc.).          
 1756                                                                            
 1757    The following is an elided example of the IP network object type        
 1758    showing the high-level structure:                                       
 1759                                                                            
 1760    {                                                                       
 1761      "objectClassName" : "ip network",                                     
 1762      "handle" : "XXX",                                                     
 1763      ...                                                                   
 1764      "entities" :                                                          
 1765      [                                                                     
 1766        ...                                                                 
 1767      ]                                                                     
 1768    }                                                                       
 1769                                                                            
 1770                                  Figure 25                                 
 1771                                                                            
 1772    The following is an example of the JSON object for the network          
 1773    registration information.                                               
 1774                                                                            
 1775    {                                                                       
 1776      "objectClassName" : "ip network",                                     
 1777      "handle" : "XXXX-RIR",                                                
 1778      "startAddress" : "2001:db8::",                                        
 1779      "endAddress" : "2001:db8:0:ffff:ffff:ffff:ffff:ffff",                 
 1780      "ipVersion" : "v6",                                                   
 1781      "name": "NET-RTR-1",                                                  
 1782      "type" : "DIRECT ALLOCATION",                                         
 1783      "country" : "AU",                                                     
 1784      "parentHandle" : "YYYY-RIR",                                          
 1785      "status" : [ "active" ],                                              
 1786      "remarks" :                                                           
 1787      [                                                                     
 1788        {                                                                   
 1789          "description" :                                                   
 1790          [                                                                 
 1791            "She sells sea shells down by the sea shore.",                  
 1792            "Originally written by Terry Sullivan."                         
 1793          ]                                                                 
 1794        }                                                                   
 1795      ],                                                                    
 1796      "links" :                                                             
 1797      [                                                                     
 1798        {                                                                   
 1799          "value" : "https://example.net/ip/2001:db8::/48",                 
 1800          "rel" : "self",                                                   
 1801          "href" : "https://example.net/ip/2001:db8::/48",                  
 1802          "type" : "application/rdap+json"                                  
 1803        },                                                                  
 1804        {                                                                   
 1805          "value" : "https://example.net/ip/2001:db8::/48",                 
 1806          "rel" : "up",                                                     
 1807          "href" : "https://example.net/ip/2001:db8::/32",                  
 1808          "type" : "application/rdap+json"                                  
 1809        }                                                                   
 1810      ],                                                                    
 1811      "events" :                                                            
 1812      [                                                                     
 1813        {                                                                   
 1814          "eventAction" : "registration",                                   
 1815          "eventDate" : "1990-12-31T23:59:59Z"                              
 1816        },                                                                  
 1817        {                                                                   
 1818          "eventAction" : "last changed",                                   
 1819          "eventDate" : "1991-12-31T23:59:59Z"                              
 1820        }                                                                   
 1821      ],                                                                    
 1822      "entities" :                                                          
 1823      [                                                                     
 1824        {                                                                   
 1825          "objectClassName" : "entity",                                     
 1826          "handle" : "XXXX",                                                
 1827          "vcardArray":[                                                    
 1828            "vcard",                                                        
 1829            [                                                               
 1830              ["version", {}, "text", "4.0"],                               
 1831              ["fn", {}, "text", "Joe User"],                               
 1832              ["kind", {}, "text", "individual"],                           
 1833              ["lang", {                                                    
 1834                "pref":"1"                                                  
 1835              }, "language-tag", "fr"],                                     
 1836              ["lang", {                                                    
 1837                "pref":"2"                                                  
 1838              }, "language-tag", "en"],                                     
 1839              ["org", {                                                     
 1840                "type":"work"                                               
 1841              }, "text", "Example"],                                        
 1842              ["title", {}, "text", "Research Scientist"],                  
 1843              ["role", {}, "text", "Project Lead"],                         
 1844              ["adr",                                                       
 1845                { "type":"work" },                                          
 1846                "text",                                                     
 1847                [                                                           
 1848                  "",                                                       
 1849                  "Suite 1234",                                             
 1850                  "4321 Rue Somewhere",                                     
 1851                  "Quebec",                                                 
 1852                  "QC",                                                     
 1853                  "G1V 2M2",                                                
 1854                  "Canada"                                                  
 1855                ]                                                           
 1856              ],                                                            
 1857              ["tel",                                                       
 1858                { "type":["work", "voice"], "pref":"1" },                   
 1859                "uri", "tel:+1-555-555-1234;ext=102"                        
 1860              ],                                                            
 1861              ["email",                                                     
 1862                { "type":"work" },                                          
 1863                "text", "joe.user@example.com"                              
 1864              ]                                                             
 1865            ]                                                               
 1866          ],                                                                
 1867          "roles" : [ "registrant" ],                                       
 1868          "remarks" :                                                       
 1869          [                                                                 
 1870            {                                                               
 1871              "description" :                                               
 1872              [                                                             
 1873                "She sells sea shells down by the sea shore.",              
 1874                "Originally written by Terry Sullivan."                     
 1875              ]                                                             
 1876            }                                                               
 1877          ],                                                                
 1878          "links" :                                                         
 1879          [                                                                 
 1880            {                                                               
 1881              "value" : "https://example.net/entity/xxxx",                  
 1882              "rel" : "self",                                               
 1883              "href" : "https://example.net/entity/xxxx",                   
 1884              "type" : "application/rdap+json"                              
 1885            }                                                               
 1886          ],                                                                
 1887          "events" :                                                        
 1888          [                                                                 
 1889            {                                                               
 1890              "eventAction" : "registration",                               
 1891              "eventDate" : "1990-12-31T23:59:59Z"                          
 1892                                                                            
 1893            },                                                              
 1894            {                                                               
 1895              "eventAction" : "last changed",                               
 1896              "eventDate" : "1991-12-31T23:59:59Z"                          
 1897            }                                                               
 1898          ]                                                                 
 1899        }                                                                   
 1900      ]                                                                     
 1901    }                                                                       
 1902                                                                            
 1903                                  Figure 26                                 
 1904                                                                            
 1905    The IP network object class can contain the following members:          
 1906                                                                            
 1907    *  objectClassName -- the string "ip network"                           
 1908                                                                            
 1909    *  handle -- a string representing the RIR-unique identifier of the     
 1910       network registration                                                 
 1911                                                                            
 1912    *  startAddress -- a string representing the starting IP address of     
 1913       the network, either IPv4 or IPv6                                     
 1914                                                                            
 1915    *  endAddress -- a string representing the ending IP address of the     
 1916       network, either IPv4 or IPv6                                         
 1917                                                                            
 1918    *  ipVersion -- a string signifying the IP protocol version of the      
 1919       network: "v4" signifies an IPv4 network, and "v6" signifies an       
 1920       IPv6 network                                                         
 1921                                                                            
 1922    *  name -- a string representing an identifier assigned to the          
 1923       network registration by the registration holder                      
 1924                                                                            
 1925    *  type -- a string containing an RIR-specific classification of the    
 1926       network per that RIR's registration model                            
 1927                                                                            
 1928    *  country -- a string containing the two-character country code of     
 1929       the network                                                          
 1930                                                                            
 1931    *  parentHandle -- a string containing an RIR-unique identifier of      
 1932       the parent network of this network registration                      
 1933                                                                            
 1934    *  status -- an array of strings indicating the state of the IP         
 1935       network as defined by Section 4.6                                    
 1936                                                                            
 1937    *  entities -- an array of entity objects as defined by Section 5.1     
 1938                                                                            
 1939    *  remarks -- see Section 4.3                                           
 1940                                                                            
 1941    *  links -- see Section 4.2                                             
 1942                                                                            
 1943    *  port43 -- see Section 4.7                                            
 1944                                                                            
 1945    *  events -- see Section 4.5                                            
 1946                                                                            
 1947 5.5.  The Autonomous System Number Object Class                            
 1948                                                                            
 1949    The Autonomous System number (autnum) object class models Autonomous    
 1950    System number registrations found in RIRs and represents the expected   
 1951    response to an "/autnum" query as defined by [RFC9082].  There is no    
 1952    equivalent object class for DNRs.  The high-level structure of the      
 1953    autnum object class consists of information about the Autonomous        
 1954    System number registration and entities related to the autnum           
 1955    registration (e.g., registrant information, contacts, etc.) and is      
 1956    similar to the IP network object class.                                 
 1957                                                                            
 1958    The following is an example of a JSON object representing an autnum.    
 1959                                                                            
 1960    {                                                                       
 1961      "objectClassName" : "autnum",                                         
 1962      "handle" : "XXXX-RIR",                                                
 1963      "startAutnum" : 65536,                                                
 1964      "endAutnum" : 65541,                                                  
 1965      "name": "AS-RTR-1",                                                   
 1966      "type" : "DIRECT ALLOCATION",                                         
 1967      "status" : [ "active" ],                                              
 1968      "country": "AU",                                                      
 1969      "remarks" :                                                           
 1970      [                                                                     
 1971        {                                                                   
 1972          "description" :                                                   
 1973          [                                                                 
 1974            "She sells sea shells down by the sea shore.",                  
 1975            "Originally written by Terry Sullivan."                         
 1976          ]                                                                 
 1977        }                                                                   
 1978      ],                                                                    
 1979      "links" :                                                             
 1980      [                                                                     
 1981        {                                                                   
 1982          "value" : "https://example.net/autnum/65537",                     
 1983          "rel" : "self",                                                   
 1984          "href" : "https://example.net/autnum/65537",                      
 1985          "type" : "application/rdap+json"                                  
 1986        }                                                                   
 1987      ],                                                                    
 1988      "events" :                                                            
 1989                                                                            
 1990      [                                                                     
 1991        {                                                                   
 1992          "eventAction" : "registration",                                   
 1993          "eventDate" : "1990-12-31T23:59:59Z"                              
 1994        },                                                                  
 1995        {                                                                   
 1996          "eventAction" : "last changed",                                   
 1997          "eventDate" : "1991-12-31T23:59:59Z"                              
 1998        }                                                                   
 1999      ],                                                                    
 2000      "entities" :                                                          
 2001      [                                                                     
 2002        {                                                                   
 2003          "objectClassName" : "entity",                                     
 2004          "handle" : "XXXX",                                                
 2005          "vcardArray":[                                                    
 2006            "vcard",                                                        
 2007            [                                                               
 2008              ["version", {}, "text", "4.0"],                               
 2009              ["fn", {}, "text", "Joe User"],                               
 2010              ["kind", {}, "text", "individual"],                           
 2011              ["lang", {                                                    
 2012                "pref":"1"                                                  
 2013              }, "language-tag", "fr"],                                     
 2014              ["lang", {                                                    
 2015                "pref":"2"                                                  
 2016              }, "language-tag", "en"],                                     
 2017              ["org", {                                                     
 2018                "type":"work"                                               
 2019              }, "text", "Example"],                                        
 2020              ["title", {}, "text", "Research Scientist"],                  
 2021              ["role", {}, "text", "Project Lead"],                         
 2022              ["adr",                                                       
 2023                { "type":"work" },                                          
 2024                "text",                                                     
 2025                [                                                           
 2026                  "",                                                       
 2027                  "Suite 1234",                                             
 2028                  "4321 Rue Somewhere",                                     
 2029                  "Quebec",                                                 
 2030                  "QC",                                                     
 2031                  "G1V 2M2",                                                
 2032                  "Canada"                                                  
 2033                ]                                                           
 2034              ],                                                            
 2035              ["tel",                                                       
 2036                { "type":["work", "voice"], "pref":"1" },                   
 2037                "uri", "tel:+1-555-555-1234;ext=102"                        
 2038              ],                                                            
 2039              ["email",                                                     
 2040                { "type":"work" },                                          
 2041                "text", "joe.user@example.com"                              
 2042              ]                                                             
 2043            ]                                                               
 2044          ],                                                                
 2045          "roles" : [ "registrant" ],                                       
 2046          "remarks" :                                                       
 2047          [                                                                 
 2048            {                                                               
 2049              "description" :                                               
 2050              [                                                             
 2051                "She sells sea shells down by the sea shore.",              
 2052                "Originally written by Terry Sullivan."                     
 2053              ]                                                             
 2054            }                                                               
 2055          ],                                                                
 2056          "links" :                                                         
 2057          [                                                                 
 2058            {                                                               
 2059              "value" : "https://example.net/entity/XXXX",                  
 2060              "rel" : "self",                                               
 2061              "href" : "https://example.net/entity/XXXX",                   
 2062              "type" : "application/rdap+json"                              
 2063            }                                                               
 2064          ],                                                                
 2065          "events" :                                                        
 2066          [                                                                 
 2067            {                                                               
 2068              "eventAction" : "registration",                               
 2069              "eventDate" : "1990-12-31T23:59:59Z"                          
 2070            },                                                              
 2071            {                                                               
 2072              "eventAction" : "last changed",                               
 2073              "eventDate" : "1991-12-31T23:59:59Z"                          
 2074            }                                                               
 2075          ]                                                                 
 2076        }                                                                   
 2077      ]                                                                     
 2078    }                                                                       
 2079                                                                            
 2080                                  Figure 27                                 
 2081                                                                            
 2082    The Autonomous System number object class can contain the following     
 2083    members:                                                                
 2084                                                                            
 2085    *  objectClassName -- the string "autnum"                               
 2086                                                                            
 2087    *  handle -- a string representing the RIR-unique identifier of the     
 2088       autnum registration                                                  
 2089                                                                            
 2090    *  startAutnum -- an unsigned 32-bit integer representing the           
 2091       starting number [RFC5396] in the block of Autonomous System          
 2092       numbers                                                              
 2093                                                                            
 2094    *  endAutnum -- an unsigned 32-bit integer representing the ending      
 2095       number [RFC5396] in the block of Autonomous System numbers           
 2096                                                                            
 2097    *  name -- a string representing an identifier assigned to the autnum   
 2098       registration by the registration holder                              
 2099                                                                            
 2100    *  type -- a string containing an RIR-specific classification of the    
 2101       autnum per that RIR's registration model                             
 2102                                                                            
 2103    *  status -- an array of strings indicating the state of the autnum     
 2104       as defined by Section 4.6                                            
 2105                                                                            
 2106    *  country -- a string containing the two-character country code of     
 2107       the autnum                                                           
 2108                                                                            
 2109    *  entities -- an array of entity objects as defined by Section 5.1     
 2110                                                                            
 2111    *  remarks -- see Section 4.3                                           
 2112                                                                            
 2113    *  links -- see Section 4.2                                             
 2114                                                                            
 2115    *  port43 -- see Section 4.7                                            
 2116                                                                            
 2117    *  events -- see Section 4.5                                            
 2118                                                                            
 2119 6.  Error Response Body                                                    
 2120                                                                            
 2121    Some non-answer responses MAY return entity bodies with information     
 2122    that could be more descriptive.                                         
 2123                                                                            
 2124    The basic structure of that response is an object class containing a    
 2125    REQUIRED error code number (corresponding to the HTTP response code)    
 2126    followed by an OPTIONAL string named "title" and an OPTIONAL array of   
 2127    strings named "description".                                            
 2128                                                                            
 2129    This is an example of the common response body.                         
 2130                                                                            
 2131    {                                                                       
 2132      "errorCode": 418,                                                     
 2133      "title": "Your Beverage Choice is Not Available",                     
 2134      "description":                                                        
 2135      [                                                                     
 2136        "I know coffee has more ummppphhh.",                                
 2137        "Sorry, dude!"                                                      
 2138      ]                                                                     
 2139    }                                                                       
 2140                                                                            
 2141                                  Figure 28                                 
 2142                                                                            
 2143    This is an example of the common response body with an                  
 2144    rdapConformance and notices data structures:                            
 2145                                                                            
 2146    {                                                                       
 2147      "rdapConformance" :                                                   
 2148      [                                                                     
 2149        "rdap_level_0"                                                      
 2150      ],                                                                    
 2151      "notices" :                                                           
 2152      [                                                                     
 2153        {                                                                   
 2154          "title" : "Beverage Policy",                                      
 2155          "description" :                                                   
 2156          [                                                                 
 2157            "Beverages with caffeine for keeping horses awake."             
 2158          ],                                                                
 2159          "links" :                                                         
 2160          [                                                                 
 2161            {                                                               
 2162              "value" : "https://example.net/ip/192.0.2.0/24",              
 2163              "rel" : "alternate",                                          
 2164              "type" : "text/html",                                         
 2165              "href" : "https://www.example.com/redaction_policy.html"      
 2166            }                                                               
 2167          ]                                                                 
 2168        }                                                                   
 2169      ],                                                                    
 2170      "lang" : "en",                                                        
 2171      "errorCode": 418,                                                     
 2172      "title": "Your beverage choice is not available",                     
 2173      "description":                                                        
 2174      [                                                                     
 2175        "I know coffee has more ummppphhh.",                                
 2176        "Sorry, dude!"                                                      
 2177      ]                                                                     
 2178    }                                                                       
 2179                                                                            
 2180                                  Figure 29                                 
 2181                                                                            
 2182 7.  Responding to Help Queries                                             
 2183                                                                            
 2184    The appropriate response to /help queries as defined by [RFC9082] is    
 2185    to use the notices structure as defined in Section 4.3.                 
 2186                                                                            
 2187    This is an example of a response to a /help query including the         
 2188    rdapConformance data structure.                                         
 2189                                                                            
 2190    {                                                                       
 2191      "rdapConformance" :                                                   
 2192      [                                                                     
 2193        "rdap_level_0"                                                      
 2194      ],                                                                    
 2195      "notices" :                                                           
 2196      [                                                                     
 2197        {                                                                   
 2198          "title" : "Authentication Policy",                                
 2199          "description" :                                                   
 2200          [                                                                 
 2201            "Access to sensitive data for users with proper credentials."   
 2202          ],                                                                
 2203          "links" :                                                         
 2204          [                                                                 
 2205            {                                                               
 2206              "value" : "https://example.net/help",                         
 2207              "rel" : "alternate",                                          
 2208              "type" : "text/html",                                         
 2209              "href" : "https://www.example.com/auth_policy.html"           
 2210            }                                                               
 2211          ]                                                                 
 2212        }                                                                   
 2213      ]                                                                     
 2214    }                                                                       
 2215                                                                            
 2216                                  Figure 30                                 
 2217                                                                            
 2218 8.  Responding To Searches                                                 
 2219                                                                            
 2220    [RFC9082] specifies three types of searches: domains, nameservers,      
 2221    and entities.  Responses to these searches take the form of an array    
 2222    of object instances where each instance is an appropriate object        
 2223    class for the search (i.e., a search for /domains yields an array of    
 2224    domain object instances).  These arrays are contained within the        
 2225    response object.                                                        
 2226                                                                            
 2227    The names of the arrays are as follows:                                 
 2228                                                                            
 2229    *  for /domains searches, the array is "domainSearchResults"            
 2230                                                                            
 2231    *  for /nameservers searches, the array is "nameserverSearchResults"    
 2232                                                                            
 2233    *  for /entities searches, the array is "entitySearchResults"           
 2234                                                                            
 2235    The following is an elided example of a response to a /domains          
 2236    search.                                                                 
 2237                                                                            
 2238    {                                                                       
 2239      "rdapConformance" :                                                   
 2240      [                                                                     
 2241        "rdap_level_0"                                                      
 2242      ],                                                                    
 2243      ...                                                                   
 2244      "domainSearchResults" :                                               
 2245      [                                                                     
 2246        {                                                                   
 2247          "objectClassName" : "domain",                                     
 2248          "handle" : "1-XXXX",                                              
 2249          "ldhName" : "1.example.com",                                      
 2250          ...                                                               
 2251        },                                                                  
 2252        {                                                                   
 2253          "objectClassName" : "domain",                                     
 2254          "handle" : "2-XXXX",                                              
 2255          "ldhName" : "2.example.com",                                      
 2256          ...                                                               
 2257        }                                                                   
 2258      ]                                                                     
 2259    }                                                                       
 2260                                                                            
 2261                                  Figure 31                                 
 2262                                                                            
 2263 9.  Indicating Truncated Responses                                         
 2264                                                                            
 2265    In cases where the data of a response needs to be limited or parts of   
 2266    the data need to be omitted, the response is considered "truncated".    
 2267    A truncated response is still valid JSON, but some of the results in    
 2268    a search set or some of the data in an object are not provided by the   
 2269    server.  A server may indicate this by including a typed notice in      
 2270    the response object.                                                    
 2271                                                                            
 2272    The following is an elided example of a search response that has been   
 2273    truncated.                                                              
 2274                                                                            
 2275    {                                                                       
 2276      "rdapConformance" :                                                   
 2277      [                                                                     
 2278        "rdap_level_0"                                                      
 2279      ],                                                                    
 2280      "notices" :                                                           
 2281      [                                                                     
 2282        {                                                                   
 2283          "title" : "Search Policy",                                        
 2284          "type" : "result set truncated due to authorization",             
 2285          "description" :                                                   
 2286          [                                                                 
 2287            "Search results are limited to 25 per day per querying IP."     
 2288          ],                                                                
 2289          "links" :                                                         
 2290          [                                                                 
 2291            {                                                               
 2292              "value" : "https://example.net/help",                         
 2293              "rel" : "alternate",                                          
 2294              "type" : "text/html",                                         
 2295              "href" : "https://www.example.com/search_policy.html"         
 2296            }                                                               
 2297          ]                                                                 
 2298        }                                                                   
 2299      ],                                                                    
 2300      "domainSearchResults" :                                               
 2301      [                                                                     
 2302        ...                                                                 
 2303      ]                                                                     
 2304    }                                                                       
 2305                                                                            
 2306                                  Figure 32                                 
 2307                                                                            
 2308    A similar technique can be used with a typed remark where a single      
 2309    object has been returned and data in that object has been truncated.    
 2310    Such an example might be an entity object with only a partial set of    
 2311    the IP networks associated with it.                                     
 2312                                                                            
 2313    The following is an elided example of an entity truncated data.         
 2314                                                                            
 2315    {                                                                       
 2316      "objectClassName" : "entity",                                         
 2317      "handle" : "ANENTITY",                                                
 2318      "roles" : [ "registrant" ],                                           
 2319      ...                                                                   
 2320      "entities" :                                                          
 2321      [                                                                     
 2322        {                                                                   
 2323          "objectClassName" : "entity",                                     
 2324          "handle": "ANEMBEDDEDENTITY",                                     
 2325          "roles" : [ "technical" ],                                        
 2326          ...                                                               
 2327        },                                                                  
 2328        ...                                                                 
 2329      ],                                                                    
 2330      "networks" :                                                          
 2331      [                                                                     
 2332        ...                                                                 
 2333      ],                                                                    
 2334      ...                                                                   
 2335      "remarks" :                                                           
 2336      [                                                                     
 2337        {                                                                   
 2338          "title" : "Data Policy",                                          
 2339          "type" : "object truncated due to unexplainable reason",          
 2340          "description" :                                                   
 2341          [                                                                 
 2342            "Some of the data in this object has been removed."             
 2343          ],                                                                
 2344          "links" :                                                         
 2345          [                                                                 
 2346            {                                                               
 2347              "value" : "https://example.net/help",                         
 2348              "rel" : "alternate",                                          
 2349              "type" : "text/html",                                         
 2350              "href" : "https://www.example.com/data_policy.html"           
 2351            }                                                               
 2352          ]                                                                 
 2353        }                                                                   
 2354      ]                                                                     
 2355    }                                                                       
 2356                                                                            
 2357                                  Figure 33                                 
 2358                                                                            
 2359 10.  IANA Considerations                                                   
 2360                                                                            
 2361    IANA has updated the description of the "transfer" event action as      
 2362    described in Section 10.2.3.                                            
 2363                                                                            
 2364 10.1.  RDAP JSON Media Type Registration                                   
 2365                                                                            
 2366    IANA has updated the media type registration as described below.        
 2367                                                                            
 2368    This specification registers the "application/rdap+json" media type.    
 2369                                                                            
 2370    Type name:  application                                                 
 2371                                                                            
 2372    Subtype name:  rdap+json                                                
 2373                                                                            
 2374    Required parameters:  n/a                                               
 2375                                                                            
 2376    Encoding considerations:  See Section 3.1 of [RFC6839].                 
 2377                                                                            
 2378    Security considerations:  The media represented by this identifier      
 2379       does not have security considerations beyond that found in           
 2380       Section 12 of [RFC8259].                                             
 2381                                                                            
 2382    Interoperability considerations:  There are no known interoperability   
 2383       problems regarding this media format.                                
 2384                                                                            
 2385    Published specification:  RFC 9083                                      
 2386                                                                            
 2387    Applications that use this media type:  Implementations of the          
 2388       Registration Data Access Protocol (RDAP).                            
 2389                                                                            
 2390    Additional information:  This media type is a product of the IETF       
 2391       REGEXT Working Group.  The REGEXT charter, information on the        
 2392       REGEXT mailing list, and other documents produced by the REGEXT      
 2393       Working Group can be found at https://datatracker.ietf.org/wg/       
 2394       regext/.                                                             
 2395                                                                            
 2396    Person & email address to contact for further information:              
 2397       IESG <iesg@ietf.org>                                                 
 2398                                                                            
 2399    Intended usage:  COMMON                                                 
 2400                                                                            
 2401    Restrictions on usage:  none                                            
 2402                                                                            
 2403    Author:  Andy Newton                                                    
 2404                                                                            
 2405    Change controller:  IETF                                                
 2406                                                                            
 2407    Provisional Registration:  No                                           
 2408                                                                            
 2409 10.2.  JSON Values Registry                                                
 2410                                                                            
 2411    IANA has created a category in the protocol registries labeled          
 2412    "Registration Data Access Protocol (RDAP)", and within that category,   
 2413    IANA has established a URL-referenceable, stand-alone registry          
 2414    labeled "RDAP JSON Values".  This new registry is for use in the        
 2415    notices and remarks (Section 4.3), status (Section 4.6), role           
 2416    (Section 5.1), event action (Section 4.5), and domain variant           
 2417    relation (Section 5.3) fields specified in RDAP.                        
 2418                                                                            
 2419    Each entry in the registry contains the following fields:               
 2420                                                                            
 2421    1.  Value -- the string value being registered.                         
 2422                                                                            
 2423    2.  Type -- the type of value being registered.  It should be one of    
 2424        the following:                                                      
 2425                                                                            
 2426        *  "notice or remark type" -- denotes a type of notice or remark.   
 2427                                                                            
 2428        *  "status" -- denotes a value for the "status" object member as    
 2429           defined by Section 4.6.                                          
 2430                                                                            
 2431        *  "role" -- denotes a value for the "role" array as defined in     
 2432           Section 5.1.                                                     
 2433                                                                            
 2434        *  "event action" -- denotes a value for an event action as         
 2435           defined in Section 4.5.                                          
 2436                                                                            
 2437        *  "domain variant relation" -- denotes a relationship between a    
 2438           domain and a domain variant as defined in Section 5.3.           
 2439                                                                            
 2440    3.  Description -- a one- or two-sentence description regarding the     
 2441        meaning of the value, how it might be used, and/or how it should    
 2442        be interpreted by clients.                                          
 2443                                                                            
 2444    4.  Registrant Name -- the name of the person registering the value.    
 2445                                                                            
 2446    5.  Registrant Contact Information -- an email address, postal          
 2447        address, or some other information to be used to contact the        
 2448        registrant.                                                         
 2449                                                                            
 2450    This registry is operated under the "Expert Review" policy defined in   
 2451    [RFC8126].                                                              
 2452                                                                            
 2453    Review of registrations into this registry by the designated            
 2454    expert(s) should be narrowly judged on the following criteria:          
 2455                                                                            
 2456    1.  Values in need of being placed into multiple types must be          
 2457        assigned a separate registration for each type.                     
 2458                                                                            
 2459    2.  Values must be strings.  They should be multiple words separated    
 2460        by single space characters.  Every character should be              
 2461        lowercased.  If possible, every word should be given in English     
 2462        and each character should be US-ASCII.                              
 2463                                                                            
 2464    3.  Registrations should not duplicate the meaning of any existing      
 2465        registration.  That is, if a request for a registration is          
 2466        significantly similar in nature to an existing registration, the    
 2467        request should be denied.  For example, the terms "maintainer"      
 2468        and "registrant" are significantly similar in nature as they both   
 2469        denote a holder of a domain name or Internet number resource.  In   
 2470        cases where it may be reasonably argued that machine                
 2471        interpretation of two similar values may alter the operation of     
 2472        client software, designated experts should not judge the values     
 2473        to be of significant similarity.                                    
 2474                                                                            
 2475    4.  Registrations should be relevant to the common usages of RDAP.      
 2476        Designated experts may rely upon the serving of the value by a      
 2477        DNR or RIR to make this determination.                              
 2478                                                                            
 2479    The following sections provide initial registrations into this          
 2480    registry.                                                               
 2481                                                                            
 2482 10.2.1.  Notice and Remark Types                                           
 2483                                                                            
 2484    The following values have been registered in the "RDAP JSON Values"     
 2485    registry:                                                               
 2486                                                                            
 2487    Value:  result set truncated due to authorization                       
 2488    Type:  notice and remark type                                           
 2489    Description:  The list of results does not contain all results due to   
 2490       lack of authorization.  This may indicate to some clients that       
 2491       proper authorization will yield a longer result set.                 
 2492    Registrant Name:  IESG                                                  
 2493    Registrant Contact Information:  iesg@ietf.org                          
 2494                                                                            
 2495    Value:  result set truncated due to excessive load                      
 2496    Type:  notice and remark type                                           
 2497    Description:  The list of results does not contain all results due to   
 2498       an excessively heavy load on the server.  This may indicate to       
 2499       some clients that requerying at a later time will yield a longer     
 2500       result set.                                                          
 2501    Registrant Name:  IESG                                                  
 2502    Registrant Contact Information:  iesg@ietf.org                          
 2503                                                                            
 2504    Value:  result set truncated due to unexplainable reasons               
 2505    Type:  notice and remark type                                           
 2506    Description:  The list of results does not contain all results for an   
 2507       unexplainable reason.  This may indicate to some clients that        
 2508       requerying for any reason will not yield a longer result set.        
 2509    Registrant Name:  IESG                                                  
 2510    Registrant Contact Information:  iesg@ietf.org                          
 2511                                                                            
 2512    Value:  object truncated due to authorization                           
 2513    Type:  notice and remark type                                           
 2514    Description:  The object does not contain all data due to lack of       
 2515       authorization.                                                       
 2516    Registrant Name:  IESG                                                  
 2517    Registrant Contact Information:  iesg@ietf.org                          
 2518                                                                            
 2519    Value:  object truncated due to excessive load                          
 2520    Type:  notice and remark type                                           
 2521    Description:  The object does not contain all data due to an            
 2522       excessively heavy load on the server.  This may indicate to some     
 2523       clients that requerying at a later time will yield all data of the   
 2524       object.                                                              
 2525    Registrant Name:  IESG                                                  
 2526    Registrant Contact Information:  iesg@ietf.org                          
 2527                                                                            
 2528    Value:  object truncated due to unexplainable reasons                   
 2529    Type:  notice and remark type                                           
 2530    Description:  The object does not contain all data for an               
 2531       unexplainable reason.                                                
 2532    Registrant Name:  IESG                                                  
 2533    Registrant Contact Information:  iesg@ietf.org                          
 2534                                                                            
 2535 10.2.2.  Status                                                            
 2536                                                                            
 2537    The following values have been registered in the "RDAP JSON Values"     
 2538    registry:                                                               
 2539                                                                            
 2540    Value:  validated                                                       
 2541    Type:  status                                                           
 2542    Description:  Signifies that the data of the object instance has been   
 2543       found to be accurate.  This type of status is usually found on       
 2544       entity object instances to note the validity of identifying          
 2545       contact information.                                                 
 2546    Registrant Name:  IESG                                                  
 2547    Registrant Contact Information:  iesg@ietf.org                          
 2548                                                                            
 2549    Value:  renew prohibited                                                
 2550    Type:  status                                                           
 2551    Description:  Renewal or reregistration of the object instance is       
 2552       forbidden.                                                           
 2553    Registrant Name:  IESG                                                  
 2554    Registrant Contact Information:  iesg@ietf.org                          
 2555                                                                            
 2556    Value:  update prohibited                                               
 2557    Type:  status                                                           
 2558    Description:  Updates to the object instance are forbidden.             
 2559    Registrant Name:  IESG                                                  
 2560    Registrant Contact Information:  iesg@ietf.org                          
 2561                                                                            
 2562    Value:  transfer prohibited                                             
 2563    Type:  status                                                           
 2564    Description:  Transfers of the registration from one registrar to       
 2565       another are forbidden.  This type of status normally applies to      
 2566       DNR domain names.                                                    
 2567    Registrant Name:  IESG                                                  
 2568    Registrant Contact Information:  iesg@ietf.org                          
 2569                                                                            
 2570    Value:  delete prohibited                                               
 2571    Type:  status                                                           
 2572    Description:  Deletion of the registration of the object instance is    
 2573       forbidden.  This type of status normally applies to DNR domain       
 2574       names.                                                               
 2575    Registrant Name:  IESG                                                  
 2576    Registrant Contact Information:  iesg@ietf.org                          
 2577                                                                            
 2578    Value:  proxy                                                           
 2579    Type:  status                                                           
 2580    Description:  The registration of the object instance has been          
 2581       performed by a third party.  This is most commonly applied to        
 2582       entities.                                                            
 2583    Registrant Name:  IESG                                                  
 2584    Registrant Contact Information:  iesg@ietf.org                          
 2585                                                                            
 2586    Value:  private                                                         
 2587    Type:  status                                                           
 2588    Description:  The information of the object instance is not             
 2589       designated for public consumption.  This is most commonly applied    
 2590       to entities.                                                         
 2591    Registrant Name:  IESG                                                  
 2592    Registrant Contact Information:  iesg@ietf.org                          
 2593                                                                            
 2594    Value:  removed                                                         
 2595    Type:  status                                                           
 2596    Description:  Some of the information of the object instance has not    
 2597       been made available and has been removed.  This is most commonly     
 2598       applied to entities.                                                 
 2599    Registrant Name:  IESG                                                  
 2600    Registrant Contact Information:  iesg@ietf.org                          
 2601                                                                            
 2602    Value:  obscured                                                        
 2603    Type:  status                                                           
 2604    Description:  Some of the information of the object instance has been   
 2605       altered for the purposes of not readily revealing the actual         
 2606       information of the object instance.  This is most commonly applied   
 2607       to entities.                                                         
 2608    Registrant Name:  IESG                                                  
 2609    Registrant Contact Information:  iesg@ietf.org                          
 2610                                                                            
 2611    Value:  associated                                                      
 2612    Type:  status                                                           
 2613    Description:  The object instance is associated with other object       
 2614       instances in the registry.  This is most commonly used to signify    
 2615       that a nameserver is associated with a domain or that an entity is   
 2616       associated with a network resource or domain.                        
 2617    Registrant Name:  IESG                                                  
 2618    Registrant Contact Information:  iesg@ietf.org                          
 2619                                                                            
 2620    Value:  active                                                          
 2621    Type:  status                                                           
 2622    Description:  The object instance is in use.  For domain names, it      
 2623       signifies that the domain name is published in DNS.  For network     
 2624       and autnum registrations, it signifies that they are allocated or    
 2625       assigned for use in operational networks.  This maps to the "OK"     
 2626       status of the Extensible Provisioning Protocol (EPP) [RFC5730].      
 2627    Registrant Name:  IESG                                                  
 2628    Registrant Contact Information:  iesg@ietf.org                          
 2629                                                                            
 2630    Value:  inactive                                                        
 2631    Type:  status                                                           
 2632    Description:  The object instance is not in use.  See "active".         
 2633    Registrant Name:  IESG                                                  
 2634    Registrant Contact Information:  iesg@ietf.org                          
 2635                                                                            
 2636    Value:  locked                                                          
 2637    Type:  status                                                           
 2638    Description:  Changes to the object instance cannot be made,            
 2639       including the association of other object instances.                 
 2640    Registrant Name:  IESG                                                  
 2641    Registrant Contact Information:  iesg@ietf.org                          
 2642                                                                            
 2643    Value:  pending create                                                  
 2644    Type:  status                                                           
 2645    Description:  A request has been received for the creation of the       
 2646       object instance, but this action is not yet complete.                
 2647    Registrant Name:  IESG                                                  
 2648    Registrant Contact Information:  iesg@ietf.org                          
 2649                                                                            
 2650    Value:  pending renew                                                   
 2651    Type:  status                                                           
 2652    Description:  A request has been received for the renewal of the        
 2653       object instance, but this action is not yet complete.                
 2654    Registrant Name:  IESG                                                  
 2655    Registrant Contact Information:  iesg@ietf.org                          
 2656                                                                            
 2657    Value:  pending transfer                                                
 2658    Type:  status                                                           
 2659    Description:  A request has been received for the transfer of the       
 2660       object instance, but this action is not yet complete.                
 2661    Registrant Name:  IESG                                                  
 2662    Registrant Contact Information:  iesg@ietf.org                          
 2663                                                                            
 2664    Value:  pending update                                                  
 2665    Type:  status                                                           
 2666    Description:  A request has been received for the update or             
 2667       modification of the object instance, but this action is not yet      
 2668       complete.                                                            
 2669    Registrant Name:  IESG                                                  
 2670    Registrant Contact Information:  iesg@ietf.org                          
 2671                                                                            
 2672    Value:  pending delete                                                  
 2673    Type:  status                                                           
 2674    Description:  A request has been received for the deletion or removal   
 2675       of the object instance, but this action is not yet complete.  For    
 2676       domains, this might mean that the name is no longer published in     
 2677       DNS but has not yet been purged from the registry database.          
 2678    Registrant Name:  IESG                                                  
 2679    Registrant Contact Information:  iesg@ietf.org                          
 2680                                                                            
 2681 10.2.3.  Event Actions                                                     
 2682                                                                            
 2683    The following values have been registered in the "RDAP JSON Values"     
 2684    registry:                                                               
 2685                                                                            
 2686    Value:  registration                                                    
 2687    Type:  event action                                                     
 2688    Description:  The object instance was initially registered.             
 2689    Registrant Name:  IESG                                                  
 2690    Registrant Contact Information:  iesg@ietf.org                          
 2691                                                                            
 2692    Value:  reregistration                                                  
 2693    Type:  event action                                                     
 2694    Description:  The object instance was registered subsequently to        
 2695       initial registration.                                                
 2696    Registrant Name:  IESG                                                  
 2697    Registrant Contact Information:  iesg@ietf.org                          
 2698                                                                            
 2699    Value:  last changed                                                    
 2700    Type:  event action                                                     
 2701    Description:  An action noting when the information in the object       
 2702       instance was last changed.                                           
 2703    Registrant Name:  IESG                                                  
 2704    Registrant Contact Information:  iesg@ietf.org                          
 2705                                                                            
 2706    Value:  expiration                                                      
 2707    Type:  event action                                                     
 2708    Description:  The object instance has been removed or will be removed   
 2709       at a predetermined date and time from the registry.                  
 2710    Registrant Name:  IESG                                                  
 2711    Registrant Contact Information:  iesg@ietf.org                          
 2712                                                                            
 2713    Value:  deletion                                                        
 2714    Type:  event action                                                     
 2715    Description:  The object instance was removed from the registry at a    
 2716       point in time that was not predetermined.                            
 2717    Registrant Name:  IESG                                                  
 2718    Registrant Contact Information:  iesg@ietf.org                          
 2719                                                                            
 2720    Value:  reinstantiation                                                 
 2721    Type:  event action                                                     
 2722    Description:  The object instance was reregistered after having been    
 2723       removed from the registry.                                           
 2724    Registrant Name:  IESG                                                  
 2725    Registrant Contact Information:  iesg@ietf.org                          
 2726                                                                            
 2727    Value:  transfer                                                        
 2728    Type:  event action                                                     
 2729    Description:  The object instance was transferred from one registrar    
 2730       to another.                                                          
 2731    Registrant Name:  IESG                                                  
 2732    Registrant Contact Information:  iesg@ietf.org                          
 2733                                                                            
 2734    Value:  locked                                                          
 2735    Type:  event action                                                     
 2736    Description:  The object instance was locked (see the "locked"          
 2737       status).                                                             
 2738    Registrant Name:  IESG                                                  
 2739    Registrant Contact Information:  iesg@ietf.org                          
 2740                                                                            
 2741    Value:  unlocked                                                        
 2742    Type:  event action                                                     
 2743    Description:  The object instance was unlocked (see the "locked"        
 2744       status).                                                             
 2745    Registrant Name:  IESG                                                  
 2746    Registrant Contact Information:  iesg@ietf.org                          
 2747                                                                            
 2748 10.2.4.  Roles                                                             
 2749                                                                            
 2750    The following values have been registered in the "RDAP JSON Values"     
 2751    registry:                                                               
 2752                                                                            
 2753    Value:  registrant                                                      
 2754    Type:  role                                                             
 2755    Description:  The entity object instance is the registrant of the       
 2756       registration.  In some registries, this is known as a maintainer.    
 2757    Registrant Name:  IESG                                                  
 2758    Registrant Contact Information:  iesg@ietf.org                          
 2759                                                                            
 2760    Value:  technical                                                       
 2761    Type:  role                                                             
 2762    Description:  The entity object instance is a technical contact for     
 2763       the registration.                                                    
 2764    Registrant Name:  IESG                                                  
 2765    Registrant Contact Information:  iesg@ietf.org                          
 2766                                                                            
 2767    Value:  administrative                                                  
 2768    Type:  role                                                             
 2769    Description:  The entity object instance is an administrative contact   
 2770       for the registration.                                                
 2771    Registrant Name:  IESG                                                  
 2772    Registrant Contact Information:  iesg@ietf.org                          
 2773                                                                            
 2774    Value:  abuse                                                           
 2775    Type:  role                                                             
 2776    Description:  The entity object instance handles network abuse issues   
 2777       on behalf of the registrant of the registration.                     
 2778    Registrant Name:  IESG                                                  
 2779    Registrant Contact Information:  iesg@ietf.org                          
 2780                                                                            
 2781    Value:  billing                                                         
 2782    Type:  role                                                             
 2783    Description:  The entity object instance handles payment and billing    
 2784       issues on behalf of the registrant of the registration.              
 2785    Registrant Name:  IESG                                                  
 2786    Registrant Contact Information:  iesg@ietf.org                          
 2787                                                                            
 2788    Value:  registrar                                                       
 2789    Type:  role                                                             
 2790    Description:  The entity object instance represents the authority       
 2791       responsible for the registration in the registry.                    
 2792    Registrant Name:  IESG                                                  
 2793    Registrant Contact Information:  iesg@ietf.org                          
 2794                                                                            
 2795    Value:  reseller                                                        
 2796    Type:  role                                                             
 2797    Description:  The entity object instance represents a third party       
 2798       through which the registration was conducted (i.e., not the          
 2799       registry or registrar).                                              
 2800    Registrant Name:  IESG                                                  
 2801    Registrant Contact Information:  iesg@ietf.org                          
 2802                                                                            
 2803    Value:  sponsor                                                         
 2804    Type:  role                                                             
 2805    Description:  The entity object instance represents a domain policy     
 2806       sponsor, such as an ICANN-approved sponsor.                          
 2807    Registrant Name:  IESG                                                  
 2808    Registrant Contact Information:  iesg@ietf.org                          
 2809                                                                            
 2810    Value:  proxy                                                           
 2811    Type:  role                                                             
 2812    Description:  The entity object instance represents a proxy for         
 2813       another entity object, such as a registrant.                         
 2814    Registrant Name:  IESG                                                  
 2815    Registrant Contact Information:  iesg@ietf.org                          
 2816                                                                            
 2817    Value:  notifications                                                   
 2818    Type:  role                                                             
 2819    Description:  An entity object instance designated to receive           
 2820       notifications about association object instances.                    
 2821    Registrant Name:  IESG                                                  
 2822    Registrant Contact Information:  iesg@ietf.org                          
 2823                                                                            
 2824    Value:  noc                                                             
 2825    Type:  role                                                             
 2826    Description:  The entity object instance handles communications         
 2827       related to a network operations center (NOC).                        
 2828    Registrant Name:  IESG                                                  
 2829    Registrant Contact Information:  iesg@ietf.org                          
 2830                                                                            
 2831 10.2.5.  Variant Relations                                                 
 2832                                                                            
 2833    The following values have been registered in the "RDAP JSON Values"     
 2834    registry:                                                               
 2835                                                                            
 2836    Value:  registered                                                      
 2837    Type:  domain variant relation                                          
 2838    Description:  The variant names are registered in the registry.         
 2839    Registrant Name:  IESG                                                  
 2840    Registrant Contact Information:  iesg@ietf.org                          
 2841                                                                            
 2842    Value:  unregistered                                                    
 2843    Type:  domain variant relation                                          
 2844    Description:  The variant names are not found in the registry.          
 2845    Registrant Name:  IESG                                                  
 2846    Registrant Contact Information:  iesg@ietf.org                          
 2847                                                                            
 2848    Value:  registration restricted                                         
 2849    Type:  domain variant relation                                          
 2850    Description:  Registration of the variant names is restricted to        
 2851       certain parties or within certain rules.                             
 2852    Registrant Name:  IESG                                                  
 2853    Registrant Contact Information:  iesg@ietf.org                          
 2854                                                                            
 2855    Value:  open registration                                               
 2856    Type:  domain variant relation                                          
 2857    Description:  Registration of the variant names is available to         
 2858       generally qualified registrants.                                     
 2859    Registrant Name:  IESG                                                  
 2860    Registrant Contact Information:  iesg@ietf.org                          
 2861                                                                            
 2862    Value:  conjoined                                                       
 2863    Type:  domain variant relation                                          
 2864    Description:  Registration of the variant names occurs automatically    
 2865       with the registration of the containing domain registration.         
 2866    Registrant Name:  IESG                                                  
 2867    Registrant Contact Information:  iesg@ietf.org                          
 2868                                                                            
 2869 11.  Security Considerations                                               
 2870                                                                            
 2871    This specification models information serialized in JSON format.  As    
 2872    JSON is a subset of JavaScript, implementations are advised to follow   
 2873    the security considerations outlined in Section 12 of [RFC8259] to      
 2874    prevent code injection.                                                 
 2875                                                                            
 2876    Though not specific to JSON, RDAP implementers should be aware of the   
 2877    security considerations specified in [RFC7480] and the security         
 2878    requirements and considerations in [RFC7481].                           
 2879                                                                            
 2880    RDAP responses allow for retrieval of DNSSEC (key) related              
 2881    information, but the RRSIG DS from the parent zone is not conveyed      
 2882    alongside it.  This means that the DNSSEC keys retrieved by RDAP are    
 2883    disconnected from their containing PKI, and as such are not generally   
 2884    expected to be trusted without additional information.  In              
 2885    particular, the HTTPS channel protecting the RDAP connection is not     
 2886    expected to be authorized to certify the validity of the DNSSEC keys.   
 2887                                                                            
 2888    Clients caching data, especially clients using RDAP-specific caches     
 2889    (instead of HTTP-layer caches), should have safeguards to prevent       
 2890    cache poisoning.  See Section 5 for advice on using the self links      
 2891    for caching.                                                            
 2892                                                                            
 2893    Finally, service operators should be aware of the privacy mechanisms    
 2894    noted in Section 13.                                                    
 2895                                                                            
 2896 12.  Internationalization Considerations                                   
 2897                                                                            
 2898 12.1.  Character Encoding                                                  
 2899                                                                            
 2900    The default text encoding for JSON responses in RDAP is UTF-8           
 2901    [RFC3629], and all servers and clients MUST support UTF-8.              
 2902                                                                            
 2903 12.2.  URIs and IRIs                                                       
 2904                                                                            
 2905    [RFC7480] defines the use of URIs and IRIs in RDAP.                     
 2906                                                                            
 2907 12.3.  Language Tags                                                       
 2908                                                                            
 2909    Section 4.4 defines the use of language tags in the JSON responses      
 2910    defined in this document.                                               
 2911                                                                            
 2912 12.4.  Internationalized Domain Names                                      
 2913                                                                            
 2914    IDNs are denoted in this specification by the separation of DNS names   
 2915    in LDH form and Unicode form (see Section 3).  Representation of IDNs   
 2916    in registries is described by the "variants" object in Section 5.3      
 2917    and the suggested values listed in Section 10.2.5.                      
 2918                                                                            
 2919 13.  Privacy Considerations                                                
 2920                                                                            
 2921    This specification suggests status values to denote contact and         
 2922    registrant information that has been marked as private and/or has       
 2923    been removed or obscured.  See Section 10.2.2 for the complete list     
 2924    of status values.  A few of the status values indicate that there are   
 2925    privacy concerns associated with the object instance.  The following    
 2926    status codes SHOULD be used to describe data elements of a response     
 2927    when appropriate:                                                       
 2928                                                                            
 2929    *  private -- The object is not be shared in query responses, unless    
 2930       the user is authorized to view this information.                     
 2931                                                                            
 2932    *  removed -- Data elements within the object have been collected but   
 2933       have been omitted from the response.  This option can be used to     
 2934       prevent unauthorized access to associated object instances without   
 2935       the need to mark them as private.                                    
 2936                                                                            
 2937    *  obscured -- Data elements within the object have been collected,     
 2938       but the response value has been altered so that values are not       
 2939       easily discernible.  A value changed from "1212" to "XXXX" is an     
 2940       example of obscured data.  This option may reveal privacy            
 2941       sensitive information and should only be used when data              
 2942       sensitivity does not require a more protective option like           
 2943       "private" or "removed".                                              
 2944                                                                            
 2945    See Appendix A.1 for an example of applying those values to contacts    
 2946    and registrants.                                                        
 2947                                                                            
 2948 14.  References                                                            
 2949                                                                            
 2950 14.1.  Normative References                                                
 2951                                                                            
 2952    [ISO.3166.2020]                                                         
 2953               International Organization for Standardization, "Codes for   
 2954               the representation of names of countries and their           
 2955               subdivisions", Fourth edition, ISO Standard 3166, August     
 2956               2020.                                                        
 2957                                                                            
 2958    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate          
 2959               Requirement Levels", BCP 14, RFC 2119,                       
 2960               DOI 10.17487/RFC2119, March 1997,                            
 2961               <https://www.rfc-editor.org/info/rfc2119>.                   
 2962                                                                            
 2963    [RFC3339]  Klyne, G. and C. Newman, "Date and Time on the Internet:     
 2964               Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,      
 2965               <https://www.rfc-editor.org/info/rfc3339>.                   
 2966                                                                            
 2967    [RFC3629]  Yergeau, F., "UTF-8, a transformation format of ISO          
 2968               10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November     
 2969               2003, <https://www.rfc-editor.org/info/rfc3629>.             
 2970                                                                            
 2971    [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform     
 2972               Resource Identifier (URI): Generic Syntax", STD 66,          
 2973               RFC 3986, DOI 10.17487/RFC3986, January 2005,                
 2974               <https://www.rfc-editor.org/info/rfc3986>.                   
 2975                                                                            
 2976    [RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.      
 2977               Rose, "Resource Records for the DNS Security Extensions",    
 2978               RFC 4034, DOI 10.17487/RFC4034, March 2005,                  
 2979               <https://www.rfc-editor.org/info/rfc4034>.                   
 2980                                                                            
 2981    [RFC5396]  Huston, G. and G. Michaelson, "Textual Representation of     
 2982               Autonomous System (AS) Numbers", RFC 5396,                   
 2983               DOI 10.17487/RFC5396, December 2008,                         
 2984               <https://www.rfc-editor.org/info/rfc5396>.                   
 2985                                                                            
 2986    [RFC5646]  Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying   
 2987               Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646,          
 2988               September 2009, <https://www.rfc-editor.org/info/rfc5646>.   
 2989                                                                            
 2990    [RFC5890]  Klensin, J., "Internationalized Domain Names for             
 2991               Applications (IDNA): Definitions and Document Framework",    
 2992               RFC 5890, DOI 10.17487/RFC5890, August 2010,                 
 2993               <https://www.rfc-editor.org/info/rfc5890>.                   
 2994                                                                            
 2995    [RFC5952]  Kawamura, S. and M. Kawashima, "A Recommendation for IPv6    
 2996               Address Text Representation", RFC 5952,                      
 2997               DOI 10.17487/RFC5952, August 2010,                           
 2998               <https://www.rfc-editor.org/info/rfc5952>.                   
 2999                                                                            
 3000    [RFC7095]  Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095,   
 3001               DOI 10.17487/RFC7095, January 2014,                          
 3002               <https://www.rfc-editor.org/info/rfc7095>.                   
 3003                                                                            
 3004    [RFC7480]  Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the    
 3005               Registration Data Access Protocol (RDAP)", STD 95,           
 3006               RFC 7480, DOI 10.17487/RFC7480, March 2015,                  
 3007               <https://www.rfc-editor.org/info/rfc7480>.                   
 3008                                                                            
 3009    [RFC7481]  Hollenbeck, S. and N. Kong, "Security Services for the       
 3010               Registration Data Access Protocol (RDAP)", STD 95,           
 3011               RFC 7481, DOI 10.17487/RFC7481, March 2015,                  
 3012               <https://www.rfc-editor.org/info/rfc7481>.                   
 3013                                                                            
 3014    [RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for        
 3015               Writing an IANA Considerations Section in RFCs", BCP 26,     
 3016               RFC 8126, DOI 10.17487/RFC8126, June 2017,                   
 3017               <https://www.rfc-editor.org/info/rfc8126>.                   
 3018                                                                            
 3019    [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC       
 3020               2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,     
 3021               May 2017, <https://www.rfc-editor.org/info/rfc8174>.         
 3022                                                                            
 3023    [RFC8259]  Bray, T., Ed., "The JavaScript Object Notation (JSON) Data   
 3024               Interchange Format", STD 90, RFC 8259,                       
 3025               DOI 10.17487/RFC8259, December 2017,                         
 3026               <https://www.rfc-editor.org/info/rfc8259>.                   
 3027                                                                            
 3028    [RFC8288]  Nottingham, M., "Web Linking", RFC 8288,                     
 3029               DOI 10.17487/RFC8288, October 2017,                          
 3030               <https://www.rfc-editor.org/info/rfc8288>.                   
 3031                                                                            
 3032    [RFC9082]  Hollenbeck, S. and A. Newton, "Registration Data Access      
 3033               Protocol (RDAP) Query Format", STD 95, RFC 9082,             
 3034               DOI 10.17487/RFC9082, June 2021,                             
 3035               <https://www.rfc-editor.org/info/rfc9082>.                   
 3036                                                                            
 3037 14.2.  Informative References                                              
 3038                                                                            
 3039    [IANA_IDNTABLES]                                                        
 3040               IANA, "Repository of IDN Practices",                         
 3041               <https://www.iana.org/domains/idn-tables>.                   
 3042                                                                            
 3043    [JSON_ascendancy]                                                       
 3044               MacVittie, L., "The Stealthy Ascendancy of JSON", April      
 3045               2011, <https://devcentral.f5.com/s/articles/the-stealthy-    
 3046               ascendancy-of-json>.                                         
 3047                                                                            
 3048    [JSON_performance_study]                                                
 3049               Nurseitov, N., Paulson, M., Reynolds, R., and C. Izurieta,   
 3050               "Comparison of JSON and XML Data Interchange Formats: A      
 3051               Case Study", 2009,                                           
 3052               <https://www.cs.montana.edu/izurieta/pubs/caine2009.pdf>.    
 3053                                                                            
 3054    [RFC3912]  Daigle, L., "WHOIS Protocol Specification", RFC 3912,        
 3055               DOI 10.17487/RFC3912, September 2004,                        
 3056               <https://www.rfc-editor.org/info/rfc3912>.                   
 3057                                                                            
 3058    [RFC5730]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",    
 3059               STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009,         
 3060               <https://www.rfc-editor.org/info/rfc5730>.                   
 3061                                                                            
 3062    [RFC5910]  Gould, J. and S. Hollenbeck, "Domain Name System (DNS)       
 3063               Security Extensions Mapping for the Extensible               
 3064               Provisioning Protocol (EPP)", RFC 5910,                      
 3065               DOI 10.17487/RFC5910, May 2010,                              
 3066               <https://www.rfc-editor.org/info/rfc5910>.                   
 3067                                                                            
 3068    [RFC6350]  Perreault, S., "vCard Format Specification", RFC 6350,       
 3069               DOI 10.17487/RFC6350, August 2011,                           
 3070               <https://www.rfc-editor.org/info/rfc6350>.                   
 3071                                                                            
 3072    [RFC6839]  Hansen, T. and A. Melnikov, "Additional Media Type           
 3073               Structured Syntax Suffixes", RFC 6839,                       
 3074               DOI 10.17487/RFC6839, January 2013,                          
 3075               <https://www.rfc-editor.org/info/rfc6839>.                   
 3076                                                                            
 3077 Appendix A.  Suggested Data Modeling with the Entity Object Class          
 3078                                                                            
 3079 A.1.  Registrants and Contacts                                             
 3080                                                                            
 3081    This document does not provide specific object classes for              
 3082    registrants and contacts.  Instead, the entity object class may be      
 3083    used to represent a registrant or contact.  When the entity object is   
 3084    embedded inside a containing object such as a domain name or IP         
 3085    network, the "roles" string array can be used to signify the            
 3086    relationship.  It is recommended that the values from Section 10.2.4    
 3087    be used.                                                                
 3088                                                                            
 3089    The following is an example of an elided containing object with an      
 3090    embedded entity that is both a registrant and administrative contact:   
 3091                                                                            
 3092    {                                                                       
 3093      ...                                                                   
 3094      "entities" :                                                          
 3095      [                                                                     
 3096        {                                                                   
 3097          "objectClassName" : "entity",                                     
 3098          "handle" : "XXXX",                                                
 3099          "vcardArray":[                                                    
 3100            "vcard",                                                        
 3101            [                                                               
 3102              ["version", {}, "text", "4.0"],                               
 3103              ["fn", {}, "text", "Joe User"],                               
 3104              ["kind", {}, "text", "individual"],                           
 3105              ["lang", {                                                    
 3106                "pref":"1"                                                  
 3107              }, "language-tag", "fr"],                                     
 3108              ["lang", {                                                    
 3109                "pref":"2"                                                  
 3110              }, "language-tag", "en"],                                     
 3111              ["org", {                                                     
 3112                "type":"work"                                               
 3113              }, "text", "Example"],                                        
 3114              ["title", {}, "text", "Research Scientist"],                  
 3115              ["role", {}, "text", "Project Lead"],                         
 3116              ["adr",                                                       
 3117                { "type":"work" },                                          
 3118                "text",                                                     
 3119                [                                                           
 3120                  "",                                                       
 3121                  "Suite 1234",                                             
 3122                  "4321 Rue Somewhere",                                     
 3123                  "Quebec",                                                 
 3124                  "QC",                                                     
 3125                  "G1V 2M2",                                                
 3126                  "Canada"                                                  
 3127                ]                                                           
 3128              ],                                                            
 3129              ["tel",                                                       
 3130                { "type":["work", "voice"], "pref":"1" },                   
 3131                "uri", "tel:+1-555-555-1234;ext=102"                        
 3132              ],                                                            
 3133              ["email",                                                     
 3134                { "type":"work" },                                          
 3135                "text", "joe.user@example.com"                              
 3136              ]                                                             
 3137            ]                                                               
 3138          ],                                                                
 3139          "roles" : [ "registrant", "administrative" ],                     
 3140          "remarks" :                                                       
 3141          [                                                                 
 3142            {                                                               
 3143              "description" :                                               
 3144              [                                                             
 3145                "She sells sea shells down by the sea shore.",              
 3146                "Originally written by Terry Sullivan."                     
 3147              ]                                                             
 3148            }                                                               
 3149          ],                                                                
 3150          "events" :                                                        
 3151          [                                                                 
 3152            {                                                               
 3153              "eventAction" : "registration",                               
 3154              "eventDate" : "1990-12-31T23:59:59Z"                          
 3155            },                                                              
 3156            {                                                               
 3157              "eventAction" : "last changed",                               
 3158              "eventDate" : "1991-12-31T23:59:59Z"                          
 3159            }                                                               
 3160          ]                                                                 
 3161        }                                                                   
 3162      ]                                                                     
 3163    }                                                                       
 3164                                                                            
 3165                                  Figure 34                                 
 3166                                                                            
 3167    In many use cases, it is necessary to hide or obscure the information   
 3168    of a registrant or contact due to policy or other operational           
 3169    matters.  Registries can denote these situations with "status" values   
 3170    (see Section 10.2.2).                                                   
 3171                                                                            
 3172    The following is an elided example of a registrant with information     
 3173    changed to reflect that of a third party.                               
 3174                                                                            
 3175    {                                                                       
 3176      ...                                                                   
 3177      "entities" :                                                          
 3178      [                                                                     
 3179        {                                                                   
 3180          "objectClassName" : "entity",                                     
 3181          "handle" : "XXXX",                                                
 3182          ...                                                               
 3183          "roles" : [ "registrant", "administrative" ],                     
 3184          "status" : [ "proxy", "private", "obscured" ]                     
 3185        }                                                                   
 3186      ]                                                                     
 3187    }                                                                       
 3188                                                                            
 3189                                  Figure 35                                 
 3190                                                                            
 3191 A.2.  Registrars                                                           
 3192                                                                            
 3193    This document does not provide a specific object class for              
 3194    registrars, but like registrants and contacts (see Appendix A.1), the   
 3195    "roles" string array maybe used.  Additionally, many registrars have    
 3196    publicly assigned identifiers.  The publicIds structure (Section 4.8)   
 3197    represents that information.                                            
 3198                                                                            
 3199    The following is an example of an elided containing object with an      
 3200    embedded entity that is a registrar:                                    
 3201                                                                            
 3202    {                                                                       
 3203      ...                                                                   
 3204      "entities":[                                                          
 3205        {                                                                   
 3206          "objectClassName" : "entity",                                     
 3207          "handle":"XXXX",                                                  
 3208          "vcardArray":[                                                    
 3209            "vcard",                                                        
 3210            [                                                               
 3211              ["version", {}, "text", "4.0"],                               
 3212              ["fn", {}, "text", "Joe's Fish, Chips, and Domains"],         
 3213              ["kind", {}, "text", "org"],                                  
 3214              ["lang", {                                                    
 3215                "pref":"1"                                                  
 3216              }, "language-tag", "fr"],                                     
 3217              ["lang", {                                                    
 3218                "pref":"2"                                                  
 3219              }, "language-tag", "en"],                                     
 3220              ["org", {                                                     
 3221                "type":"work"                                               
 3222              }, "text", "Example"],                                        
 3223              ["adr",                                                       
 3224                { "type":"work" },                                          
 3225                "text",                                                     
 3226                [                                                           
 3227                  "",                                                       
 3228                  "Suite 1234",                                             
 3229                  "4321 Rue Somewhere",                                     
 3230                  "Quebec",                                                 
 3231                  "QC",                                                     
 3232                  "G1V 2M2",                                                
 3233                  "Canada"                                                  
 3234                ]                                                           
 3235              ],                                                            
 3236              ["tel",                                                       
 3237                {                                                           
 3238                  "type":["work", "voice"],                                 
 3239                  "pref":"1"                                                
 3240                },                                                          
 3241                "uri", "tel:+1-555-555-1234;ext=102"                        
 3242              ],                                                            
 3243              ["email",                                                     
 3244                { "type":"work" },                                          
 3245                "text", "joes_fish_chips_and_domains@example.com"           
 3246              ]                                                             
 3247            ]                                                               
 3248          ],                                                                
 3249          "roles":[ "registrar" ],                                          
 3250          "publicIds":[                                                     
 3251            {                                                               
 3252              "type":"IANA Registrar ID",                                   
 3253              "identifier":"1"                                              
 3254            }                                                               
 3255          ],                                                                
 3256          "remarks":[                                                       
 3257            {                                                               
 3258              "description":[                                               
 3259                "She sells sea shells down by the sea shore.",              
 3260                "Originally written by Terry Sullivan."                     
 3261              ]                                                             
 3262            }                                                               
 3263          ],                                                                
 3264          "links":[                                                         
 3265            {                                                               
 3266              "value":"https://example.net/entity/XXXX",                    
 3267              "rel":"alternate",                                            
 3268              "type":"text/html",                                           
 3269              "href":"https://www.example.com"                              
 3270            }                                                               
 3271          ]                                                                 
 3272        }                                                                   
 3273      ]                                                                     
 3274    }                                                                       
 3275                                                                            
 3276                                  Figure 36                                 
 3277                                                                            
 3278 Appendix B.  Modeling Events                                               
 3279                                                                            
 3280    Events represent actions that have taken place against a registered     
 3281    object at a certain date and time.  Events have three properties: the   
 3282    action, the actor, and the date and time of the event (which is         
 3283    sometimes in the future).  In some cases, the identity of the actor     
 3284    is not captured.                                                        
 3285                                                                            
 3286    Events can be modeled in three ways:                                    
 3287                                                                            
 3288    1.  events with no designated actor                                     
 3289                                                                            
 3290    2.  events where the actor is only designated by an identifier          
 3291                                                                            
 3292    3.  events where the actor can be modeled as an entity                  
 3293                                                                            
 3294    For the first use case, the events data structure (Section 4.5) is      
 3295    used without the "eventActor" object member.                            
 3296                                                                            
 3297    This is an example of an "events" array without the "eventActor".       
 3298                                                                            
 3299    "events" :                                                              
 3300    [                                                                       
 3301      {                                                                     
 3302        "eventAction" : "registration",                                     
 3303        "eventDate" : "1990-12-31T23:59:59Z"                                
 3304      }                                                                     
 3305    ]                                                                       
 3306                                                                            
 3307                                  Figure 37                                 
 3308                                                                            
 3309    For the second use case, the events data structure (Section 4.5) is     
 3310    used with the "eventActor" object member.                               
 3311                                                                            
 3312    This is an example of an "events" array with the "eventActor".          
 3313                                                                            
 3314    "events" :                                                              
 3315    [                                                                       
 3316      {                                                                     
 3317        "eventAction" : "registration",                                     
 3318        "eventActor" : "XYZ-NIC",                                           
 3319        "eventDate" : "1990-12-31T23:59:59Z"                                
 3320      }                                                                     
 3321    ]                                                                       
 3322                                                                            
 3323                                  Figure 38                                 
 3324                                                                            
 3325    For the third use case, the "asEventActor" array is used when an        
 3326    entity (Section 5.1) is embedded into another object class.  The        
 3327    "asEventActor" array follows the same structure as the "events" array   
 3328    but does not have "eventActor" attributes.                              
 3329                                                                            
 3330    The following is an elided example of a domain object with an entity    
 3331    as an event actor.                                                      
 3332                                                                            
 3333    {                                                                       
 3334      "objectClassName" : "domain",                                         
 3335      "handle" : "XXXX",                                                    
 3336      "ldhName" : "foo.example",                                            
 3337      "status" : [ "locked", "transfer prohibited" ],                       
 3338      ...                                                                   
 3339      "entities" :                                                          
 3340      [                                                                     
 3341        {                                                                   
 3342          "handle" : "XXXX",                                                
 3343          ...                                                               
 3344          "asEventActor" :                                                  
 3345          [                                                                 
 3346            {                                                               
 3347              "eventAction" : "last changed",                               
 3348              "eventDate" : "1990-12-31T23:59:59Z"                          
 3349            }                                                               
 3350          ]                                                                 
 3351        }                                                                   
 3352      ]                                                                     
 3353    }                                                                       
 3354                                                                            
 3355                                  Figure 39                                 
 3356                                                                            
 3357 Appendix C.  Structured vs. Unstructured Addresses                         
 3358                                                                            
 3359    The entity (Section 5.1) object class uses jCard [RFC7095] to           
 3360    represent contact information, including postal addresses. jCard has    
 3361    the ability to represent multiple language preferences, multiple        
 3362    email address and phone numbers, and multiple postal addresses in       
 3363    both a structured and unstructured format.  This section describes      
 3364    the use of jCard for representing structured and unstructured           
 3365    addresses.                                                              
 3366                                                                            
 3367    The following is an example of a jCard.                                 
 3368                                                                            
 3369    {                                                                       
 3370      "vcardArray":[                                                        
 3371        "vcard",                                                            
 3372        [                                                                   
 3373          ["version", {}, "text", "4.0"],                                   
 3374          ["fn", {}, "text", "Joe User"],                                   
 3375          ["n", {}, "text",                                                 
 3376            ["User", "Joe", "", "", ["ing. jr", "M.Sc."]]                   
 3377          ],                                                                
 3378          ["kind", {}, "text", "individual"],                               
 3379          ["lang", {                                                        
 3380            "pref":"1"                                                      
 3381          }, "language-tag", "fr"],                                         
 3382          ["lang", {                                                        
 3383            "pref":"2"                                                      
 3384          }, "language-tag", "en"],                                         
 3385          ["org", {                                                         
 3386            "type":"work"                                                   
 3387          }, "text", "Example"],                                            
 3388          ["title", {}, "text", "Research Scientist"],                      
 3389          ["role", {}, "text", "Project Lead"],                             
 3390          ["adr",                                                           
 3391            { "type":"work" },                                              
 3392            "text",                                                         
 3393            [                                                               
 3394              "",                                                           
 3395              "Suite 1234",                                                 
 3396              "4321 Rue Somewhere",                                         
 3397              "Quebec",                                                     
 3398              "QC",                                                         
 3399              "G1V 2M2",                                                    
 3400              "Canada"                                                      
 3401            ]                                                               
 3402          ],                                                                
 3403          ["adr",                                                           
 3404            {                                                               
 3405                                                                            
 3406              "type":"home",                                                
 3407              "label":"123 Maple Ave\nSuite 90001\nVancouver\nBC\n1239\n"   
 3408            },                                                              
 3409            "text",                                                         
 3410            [                                                               
 3411              "", "", "", "", "", "", ""                                    
 3412            ]                                                               
 3413          ],                                                                
 3414          ["tel",                                                           
 3415            { "type":["work", "voice"], "pref":"1" },                       
 3416            "uri", "tel:+1-555-555-1234;ext=102"                            
 3417          ],                                                                
 3418          ["tel",                                                           
 3419            {                                                               
 3420              "type":["work", "cell", "voice", "video", "text"]             
 3421            },                                                              
 3422            "uri",                                                          
 3423            "tel:+1-555-555-1234"                                           
 3424          ],                                                                
 3425          ["email",                                                         
 3426            { "type":"work" },                                              
 3427            "text", "joe.user@example.com"                                  
 3428          ],                                                                
 3429          ["geo", {                                                         
 3430            "type":"work"                                                   
 3431          }, "uri", "geo:46.772673,-71.282945"],                            
 3432          ["key",                                                           
 3433            { "type":"work" },                                              
 3434            "uri", "https://www.example.com/joe.user/joe.asc"               
 3435          ],                                                                
 3436          ["tz", {},                                                        
 3437            "utc-offset", "-05:00"],                                        
 3438          ["url", { "type":"home" },                                        
 3439            "uri", "https://example.org"]                                   
 3440        ]                                                                   
 3441      ]                                                                     
 3442    }                                                                       
 3443                                                                            
 3444                                  Figure 40                                 
 3445                                                                            
 3446    The arrays in Figure 40 with the first member of "adr" represent        
 3447    postal addresses.  In the first example, the postal address is given    
 3448    as an array of strings and constitutes a structured address.  For       
 3449    components of the structured address that are not applicable, an        
 3450    empty string is given.  Each member of that array aligns with the       
 3451    positions of a vCard as given in [RFC6350].  In this example, the       
 3452    following data corresponds to the following positional meanings:        
 3453                                                                            
 3454    1.  post office box -- not applicable; empty string                     
 3455                                                                            
 3456    2.  extended address (e.g., apartment or suite number) -- Suite 1234    
 3457                                                                            
 3458    3.  street address -- 4321 Rue Somewhere                                
 3459                                                                            
 3460    4.  locality (e.g., city) -- Quebec                                     
 3461                                                                            
 3462    5.  region (e.g., state or province) -- QC                              
 3463                                                                            
 3464    6.  postal code -- G1V 2M2                                              
 3465                                                                            
 3466    7.  country name (full name) -- Canada                                  
 3467                                                                            
 3468    The second example is an unstructured address.  It uses the "label"     
 3469    attribute, which is a string containing a newline (\n) character to     
 3470    separate address components in an unordered, unspecified manner.        
 3471    Note that in this example, the structured address array is still        
 3472    given but that each string is an empty string.                          
 3473                                                                            
 3474 Appendix D.  Secure DNS                                                    
 3475                                                                            
 3476    Section 5.3 defines the "secureDNS" member to represent secure DNS      
 3477    information about domain names.                                         
 3478                                                                            
 3479    DNSSEC provides data integrity for DNS through the digital signing of   
 3480    resource records.  To enable DNSSEC, the zone is signed by one or       
 3481    more private keys and the signatures are stored as RRSIG records.  To   
 3482    complete the chain of trust in the DNS zone hierarchy, a digest of      
 3483    each DNSKEY record (which contains the public key) must be loaded       
 3484    into the parent zone, stored as DS records, and signed by the           
 3485    parent's private key (RRSIG DS record), as indicated in "Resource       
 3486    Records for the DNS Security Extensions" [RFC4034].  Creating the DS    
 3487    records in the parent zone can be done by the registration authority    
 3488    "Domain Name System (DNS) Security Extensions Mapping for the           
 3489    Extensible Provisioning Protocol (EPP)" [RFC5910].                      
 3490                                                                            
 3491    Only DS-related information is provided by RDAP, since other            
 3492    information is not generally stored in the registration database.       
 3493    Other DNSSEC-related information can be retrieved with other DNS        
 3494    tools such as dig.                                                      
 3495                                                                            
 3496    The domain object class (Section 5.3) can represent this information    
 3497    using either the "dsData" or "keyData" object arrays.  Client           
 3498    implementers should be aware that some registries do not collect or     
 3499    do not publish all of the secure DNS meta-information.                  
 3500                                                                            
 3501 Appendix E.  Motivations for Using JSON                                    
 3502                                                                            
 3503    This section addresses a common question regarding the use of JSON      
 3504    over other data formats, most notably XML.                              
 3505                                                                            
 3506    It is often pointed out that many DNRs and one RIR support the EPP      
 3507    [RFC5730] standard, which is an XML serialized protocol.  The logic     
 3508    is that since EPP is a common protocol in the industry, it follows      
 3509    that XML would be a more natural choice.  While EPP does influence      
 3510    this specification quite a bit, EPP serves a different purpose, which   
 3511    is the provisioning of Internet resources between registries and        
 3512    accredited registrars and serving a much narrower audience than that    
 3513    envisioned for RDAP.                                                    
 3514                                                                            
 3515    By contrast, RDAP has a broader audience and is designed for public     
 3516    consumption of data.  Experience from RIRs with first generation        
 3517    RESTful web services for WHOIS indicate that a large percentage of      
 3518    clients operate within browsers and other platforms where full-blown    
 3519    XML stacks are not readily available and where JSON is a better fit.    
 3520                                                                            
 3521    Additionally, while EPP is used in much of the DNR community it is      
 3522    not a universal constant in that industry.  And finally, EPP's use of   
 3523    XML predates the specification of JSON.  If EPP had been defined        
 3524    today, it may very well have used JSON instead of XML.                  
 3525                                                                            
 3526    Beyond the specific DNR and RIR communities, the trend in the broader   
 3527    Internet industry is also switching to JSON over XML, especially in     
 3528    the area of RESTful web services (see [JSON_ascendancy]).  Studies      
 3529    have also found that JSON is generally less bulky and consequently      
 3530    faster to parse (see [JSON_performance_study]).                         
 3531                                                                            
 3532 Appendix F.  Changes from RFC 7483                                         
 3533                                                                            
 3534    *  Addressed known errata.                                              
 3535                                                                            
 3536    *  Updated references to 7482 to RFC 9082.  Adjusted case of "xxxx"     
 3537       used in examples where "XXXX" was previously used, and removed an    
 3538       "X" from "XXXXX".  Changed IPv6 address example using "C00" to       
 3539       "c00".  Added "a string representing" to the definitions of          
 3540       startAddress and endAddress.  Removed "entity" from "Autonomous      
 3541       System Number Entity Object Class".  Added "an unsigned 32-bit       
 3542       integer" to the definition of startAutnum and endAutnum.  Added "a   
 3543       string representing" to the definition of name in the IP network     
 3544       and ASN object classes.  Clarified rdapConformance identifier        
 3545       registration expectations in Section 4.1.  Changed                   
 3546       "lunarNic_level_0" to "lunarNIC_level_0".                            
 3547                                                                            
 3548    *  Clarified that the "value", "rel" and "href" JSON values MUST be     
 3549       specified in the "links" array.                                      
 3550                                                                            
 3551    *  Clarified that the "description" array is required in the Notices    
 3552       and Remarks data structures and other values are OPTIONAL.           
 3553                                                                            
 3554    *  Noted that all members of the "events" and "Public IDs" arrays are   
 3555       REQUIRED.                                                            
 3556                                                                            
 3557    *  Fix "self" link values in examples.  Changed "http" to "https"       
 3558       link values in examples.  Noted that Figure 18 is an example of a    
 3559       nameserver object with all "appropriate" values given.  In           
 3560       Appendix C, quoted the word "label" in "label attribute".  Added     
 3561       reference to "status" definition in the descriptions for IP          
 3562       networks and autnums.  Fixed a 404 for the informative reference     
 3563       to "The Stealthy Ascendancy of JSON".  Added "boolean" to the        
 3564       definition of zoneSigned.                                            
 3565                                                                            
 3566    *  Clarified REQUIRED and OPTIONAL members of the "events" array.       
 3567                                                                            
 3568    *  Changed "SHOULD not" to "SHOULD NOT" in Section 5.                   
 3569                                                                            
 3570    *  Updated normative references (RFC 5226 to RFC 8126, RFC 5988 to      
 3571       RFC 8288, RFC 7159 to RFC 8259).  Changed examples using "ns1.xn--   
 3572       fo-5ja.example" to split URLs to avoid long lines.                   
 3573                                                                            
 3574    *  Added acknowledgments.                                               
 3575                                                                            
 3576    *  Changed "The "lang" attribute may appear anywhere in an object       
 3577       class or data structure except for in jCard objects" to "The         
 3578       "lang" attribute as defined in this section MAY appear anywhere in   
 3579       an object class or data structure, except for in jCard objects.      
 3580       jCard supports similar functionality by way of the LANGUAGE          
 3581       property parameter (see Section 5.1 of RFC 6350 [RFC6350]".          
 3582                                                                            
 3583    *  Changed "simple data types conveyed in JSON strings" to "simple      
 3584       data types conveyed in JSON primitive types (strings, numbers,       
 3585       booleans, and null)".  Changed "In other words, servers are free     
 3586       to not include JSON members containing registration data based on    
 3587       their own policies" to "In other words, servers are free to omit     
 3588       unrequired/optional JSON members containing registration data        
 3589       based on their own policies".                                        
 3590                                                                            
 3591    *  Changed "This data structure appears only in the topmost JSON        
 3592       object of a response" to "This data structure MUST appear in the     
 3593       topmost JSON object of a response".                                  
 3594                                                                            
 3595    *  Changed "Some non-answer responses may return entity bodies with     
 3596       information that could be more descriptive" to "Some non-answer      
 3597       responses MAY return entity bodies with information that could be    
 3598       more descriptive".                                                   
 3599                                                                            
 3600    *  Changed "The basic structure of that response is an object class     
 3601       containing an error code number (corresponding to the HTTP           
 3602       response code) followed by a string named "title" and an array of    
 3603       strings named "description"" to "The basic structure of that         
 3604       response is an object class containing a REQUIRED error code         
 3605       number (corresponding to the HTTP response code) followed by an      
 3606       OPTIONAL string named "title" and an OPTIONAL array of strings       
 3607       named "description"".                                                
 3608                                                                            
 3609    *  Changed the "Autonomous System Number Object Class" section title    
 3610       to "The Autonomous System Number Object Class" for consistency       
 3611       with other section titles.  Removed trailing periods in the          
 3612       "Terminology and Definitions" section for consistency.  Changed      
 3613       instances of "lunarNic" to "lunarNIC" for consistency.  Removed an   
 3614       extraneous trailing period after the eventDate description.          
 3615       Changed a "." to ";" in the description of the "network" member of   
 3616       the domain object class.  Changed "The high-level structure of the   
 3617       autnum object class consists of information about the network        
 3618       registration" to "The high-level structure of the autnum object      
 3619       class consists of information about the Autonomous System number     
 3620       registration".  Changed "registry unique" to "registry-unique".      
 3621                                                                            
 3622    *  Changed "registrant" to "registrar" in the description of the        
 3623       "transfer" event action to address erratum 6158.  Added IANA         
 3624       instructions to correct the description of the value in the          
 3625       registry.                                                            
 3626                                                                            
 3627    *  Added text to Section 4.2 to note that "self" and "related" "href"   
 3628       URIs MUST NOT be the same.                                           
 3629                                                                            
 3630    *  Added text to Section 4.2 to describe return of IDNs in LDH name     
 3631       format.                                                              
 3632                                                                            
 3633    *  Added text to note that the "fn" member of a contact object MAY be   
 3634       empty in Section 3.                                                  
 3635                                                                            
 3636    *  Added text to clarify rdapConformance requirements in Section 4.1.   
 3637                                                                            
 3638    *  Added "obsoletes 7483" to the headers, Abstract, and Introduction.   
 3639       Updated BCP 14 boilerplate.  Updated IANA Considerations to note     
 3640       that this RFC (a product of the REGEXT Working Group) replaces RFC   
 3641       7483.  Changed "simple string" to "simple character string" in       
 3642       Sections 3 and 4.7.  Clarified requirement for the "fn" member in    
 3643       Section 3.  Modified the requirement for rdapConformance placement   
 3644       in Section 4.1.  Changed "jCard" to "vCard" LANGUAGE property        
 3645       reference in Section 4.4.  Changed "no use" to "little or no use"    
 3646       in Section 5.1.  Added example line wrap note in Section 5.2.        
 3647       Modified the definition of "idnTable" in Section 5.3.  Modified      
 3648       the dsData and keyData examples in Section 5.3.  Changed             
 3649       "2001:c00::/23" to "2001:db8::/32" in Section 5.4.  Expanded the     
 3650       definition of "type" in Sections 5.4 and 5.5.  Modified example      
 3651       autnums in Section 5.5.  Added text to the Security Considerations   
 3652       section to note that DNSSEC information returned in a response       
 3653       cannot be trusted directly.                                          
 3654                                                                            
 3655 Acknowledgments                                                            
 3656                                                                            
 3657    This document is derived from original work on RIR responses in JSON    
 3658    by Byron J. Ellacott, Arturo L. Servin, Kaveh Ranjbar, and Andrew L.    
 3659    Newton.  Additionally, this document incorporates work on DNR           
 3660    responses in JSON by Ning Kong, Linlin Zhou, Jiagui Xie, and Sean       
 3661    Shen.                                                                   
 3662                                                                            
 3663    The components of the DNR object classes are derived from a             
 3664    categorization of WHOIS response formats created by Ning Kong, Linlin   
 3665    Zhou, Guangqing Deng, Steve Sheng, Francisco Arias, Ray Bellis, and     
 3666    Frederico Neves.                                                        
 3667                                                                            
 3668    Tom Harrison, Murray Kucherawy, Ed Lewis, Audric Schiltknecht, Naoki    
 3669    Kambe, Maarten Bosteels, Mario Loffredo, and Jasdip Singh contributed   
 3670    significant review comments and provided clarifying text.  James        
 3671    Mitchell provided text regarding the processing of unknown JSON         
 3672    attributes and identified issues leading to the remodeling of events.   
 3673    Ernie Dainow and Francisco Obispo provided concrete suggestions that    
 3674    led to a better variant model for domain names.                         
 3675                                                                            
 3676    Ernie Dainow provided the background information on the secure DNS      
 3677    attributes and objects for domains, informative text on DNSSEC, and     
 3678    many other attributes that appear throughout the object classes of      
 3679    this document.                                                          
 3680                                                                            
 3681    The switch to and incorporation of jCard was performed by Simon         
 3682    Perreault.                                                              
 3683                                                                            
 3684    Olaf Kolkman and Murray Kucherawy chaired the IETF's WEIRDS Working     
 3685    Group from which this document was originally created.  James Galvin    
 3686    and Antoin Verschuren chaired the REGEXT Working Group that worked on   
 3687    this document.                                                          
 3688                                                                            
 3689 Authors' Addresses                                                         
 3690                                                                            
 3691    Scott Hollenbeck                                                        
 3692    Verisign Labs                                                           
 3693    12061 Bluemont Way                                                      
 3694    Reston, VA 20190                                                        
 3695    United States of America                                                
 3696                                                                            
 3697    Email: shollenbeck@verisign.com                                         
 3698    URI:   https://www.verisignlabs.com/                                    
 3699                                                                            
 3700                                                                            
 3701    Andy Newton                                                             
 3702    Amazon Web Services, Inc.                                               
 3703    13200 Woodland Park Road                                                
 3704    Herndon, VA 20171                                                       
 3705    United States of America                                                
 3706                                                                            
 3707    Email: andy@hxr.us                                                      
 3708                                                                            
section-4.1 Scott Hollenbeck(Technical Erratum #7093) [Reported]
based on outdated version
The data structure named "rdapConformance" is an array of strings,
each providing a hint as to the specifications used in the construction
of the response.
It should say:
The data structure named "rdapConformance" is an array of strings,
each identifying a registered specification used in the construction
of the response.


The original text uses the word "hint", which some people have
interpreted to mean "not normative" and/or "can be ignored". This
misinterpretation will likely cause significant misunderstanding of the
technical specification and might result in faulty implementations if
not corrected. The intention and meaning of this sentence is more
clearly specified with the corrected text, noting that the array of
string identifiers is directly associated with the set of specifications
used to construct an RDAP response.