mirror of
https://github.com/google/nomulus.git
synced 2025-06-06 20:45:40 +02:00
Move RDAP boilerplate from remarks to notices
This is in response to decisions made by the RDAP working group regarding the Operational Profile document: https://docs.google.com/document/d/1h1E99GLY-8I0PfYBuANzVc3iJD1R38E6xayDYGK0pCw/edit?usp=sharing ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=195251639
This commit is contained in:
parent
d3bb808c5f
commit
3eb82ad647
27 changed files with 152 additions and 202 deletions
|
@ -26,7 +26,7 @@ import com.google.common.collect.ImmutableMap;
|
||||||
public class RdapIcannStandardInformation {
|
public class RdapIcannStandardInformation {
|
||||||
|
|
||||||
/** Required by ICANN RDAP Profile section 1.4.10. */
|
/** Required by ICANN RDAP Profile section 1.4.10. */
|
||||||
private static final ImmutableMap<String, Object> CONFORMANCE_REMARK =
|
private static final ImmutableMap<String, Object> CONFORMANCE_NOTICE =
|
||||||
ImmutableMap.of(
|
ImmutableMap.of(
|
||||||
"description",
|
"description",
|
||||||
ImmutableList.of(
|
ImmutableList.of(
|
||||||
|
@ -34,7 +34,7 @@ public class RdapIcannStandardInformation {
|
||||||
+ " Registrars version 1.0"));
|
+ " Registrars version 1.0"));
|
||||||
|
|
||||||
/** Required by ICANN RDAP Profile section 1.5.18. */
|
/** Required by ICANN RDAP Profile section 1.5.18. */
|
||||||
private static final ImmutableMap<String, Object> DOMAIN_STATUS_CODES_REMARK =
|
private static final ImmutableMap<String, Object> DOMAIN_STATUS_CODES_NOTICE =
|
||||||
ImmutableMap.of(
|
ImmutableMap.of(
|
||||||
"title",
|
"title",
|
||||||
"EPP Status Codes",
|
"EPP Status Codes",
|
||||||
|
@ -50,7 +50,7 @@ public class RdapIcannStandardInformation {
|
||||||
"type", "text/html")));
|
"type", "text/html")));
|
||||||
|
|
||||||
/** Required by ICANN RDAP Profile section 1.5.20. */
|
/** Required by ICANN RDAP Profile section 1.5.20. */
|
||||||
private static final ImmutableMap<String, Object> INACCURACY_COMPLAINT_FORM_REMARK =
|
private static final ImmutableMap<String, Object> INACCURACY_COMPLAINT_FORM_NOTICE =
|
||||||
ImmutableMap.of(
|
ImmutableMap.of(
|
||||||
"description",
|
"description",
|
||||||
ImmutableList.of(
|
ImmutableList.of(
|
||||||
|
@ -63,14 +63,14 @@ public class RdapIcannStandardInformation {
|
||||||
"href", "https://www.icann.org/wicf",
|
"href", "https://www.icann.org/wicf",
|
||||||
"type", "text/html")));
|
"type", "text/html")));
|
||||||
|
|
||||||
/** Boilerplate remarks required by domain responses. */
|
/** Boilerplate notices required by domain responses. */
|
||||||
static final ImmutableList<ImmutableMap<String, Object>> domainBoilerplateRemarks =
|
static final ImmutableList<ImmutableMap<String, Object>> domainBoilerplateNotices =
|
||||||
ImmutableList.of(
|
ImmutableList.of(
|
||||||
CONFORMANCE_REMARK, DOMAIN_STATUS_CODES_REMARK, INACCURACY_COMPLAINT_FORM_REMARK);
|
CONFORMANCE_NOTICE, DOMAIN_STATUS_CODES_NOTICE, INACCURACY_COMPLAINT_FORM_NOTICE);
|
||||||
|
|
||||||
/** Boilerplate remarks required by nameserver and entity responses. */
|
/** Boilerplate remarks required by nameserver and entity responses. */
|
||||||
static final ImmutableList<ImmutableMap<String, Object>> nameserverAndEntityBoilerplateRemarks =
|
static final ImmutableList<ImmutableMap<String, Object>> nameserverAndEntityBoilerplateNotices =
|
||||||
ImmutableList.of(CONFORMANCE_REMARK);
|
ImmutableList.of(CONFORMANCE_NOTICE);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Required by ICANN RDAP Profile section 1.4.9, as corrected by Gustavo Lozano of ICANN.
|
* Required by ICANN RDAP Profile section 1.4.9, as corrected by Gustavo Lozano of ICANN.
|
||||||
|
|
|
@ -321,7 +321,7 @@ public class RdapJsonFormatter {
|
||||||
* mandates extra boilerplate for domain objects
|
* mandates extra boilerplate for domain objects
|
||||||
* @param notices a list of notices to be inserted before the boilerplate notices. If the TOS
|
* @param notices a list of notices to be inserted before the boilerplate notices. If the TOS
|
||||||
* notice is in this list, the method avoids adding a second copy.
|
* notice is in this list, the method avoids adding a second copy.
|
||||||
* @param remarks a list of remarks to be inserted before the boilerplate notices.
|
* @param remarks a list of remarks to be inserted.
|
||||||
* @param rdapLinkBase the base for link URLs
|
* @param rdapLinkBase the base for link URLs
|
||||||
*/
|
*/
|
||||||
void addTopLevelEntries(
|
void addTopLevelEntries(
|
||||||
|
@ -347,24 +347,20 @@ public class RdapJsonFormatter {
|
||||||
if (!tosNoticeFound) {
|
if (!tosNoticeFound) {
|
||||||
noticesBuilder.add(tosNotice);
|
noticesBuilder.add(tosNotice);
|
||||||
}
|
}
|
||||||
jsonBuilder.put(NOTICES, noticesBuilder.build());
|
|
||||||
ImmutableList.Builder<ImmutableMap<String, Object>> remarksBuilder =
|
|
||||||
new ImmutableList.Builder<>();
|
|
||||||
remarksBuilder.addAll(remarks);
|
|
||||||
switch (boilerplateType) {
|
switch (boilerplateType) {
|
||||||
case DOMAIN:
|
case DOMAIN:
|
||||||
remarksBuilder.addAll(RdapIcannStandardInformation.domainBoilerplateRemarks);
|
noticesBuilder.addAll(RdapIcannStandardInformation.domainBoilerplateNotices);
|
||||||
break;
|
break;
|
||||||
case NAMESERVER:
|
case NAMESERVER:
|
||||||
case ENTITY:
|
case ENTITY:
|
||||||
remarksBuilder.addAll(RdapIcannStandardInformation.nameserverAndEntityBoilerplateRemarks);
|
noticesBuilder.addAll(RdapIcannStandardInformation.nameserverAndEntityBoilerplateNotices);
|
||||||
break;
|
break;
|
||||||
default: // things other than domains, nameservers and entities cannot contain remarks
|
default: // things other than domains, nameservers and entities do not yet have boilerplate
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ImmutableList<ImmutableMap<String, Object>> remarksToAdd = remarksBuilder.build();
|
jsonBuilder.put(NOTICES, noticesBuilder.build());
|
||||||
if (!remarksToAdd.isEmpty()) {
|
if (!remarks.isEmpty()) {
|
||||||
jsonBuilder.put(REMARKS, remarksToAdd);
|
jsonBuilder.put(REMARKS, remarks);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -393,14 +393,15 @@ public class RdapDomainActionTest {
|
||||||
RdapTestHelper.getBuilderExcluding(
|
RdapTestHelper.getBuilderExcluding(
|
||||||
map, ImmutableSet.of("rdapConformance", "notices", "remarks"));
|
map, ImmutableSet.of("rdapConformance", "notices", "remarks"));
|
||||||
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
||||||
RdapTestHelper.addNotices(
|
RdapTestHelper.addDomainBoilerplateNotices(
|
||||||
builder,
|
builder,
|
||||||
|
false,
|
||||||
|
RdapTestHelper.createNotices(
|
||||||
"https://example.com/rdap/",
|
"https://example.com/rdap/",
|
||||||
(contactRoids == null)
|
(contactRoids == null)
|
||||||
? RdapTestHelper.ContactNoticeType.DOMAIN
|
? RdapTestHelper.ContactNoticeType.DOMAIN
|
||||||
: RdapTestHelper.ContactNoticeType.NONE,
|
: RdapTestHelper.ContactNoticeType.NONE,
|
||||||
map.get("notices"));
|
map.get("notices")));
|
||||||
RdapTestHelper.addDomainBoilerplateRemarks(builder, false, map.get("remarks"));
|
|
||||||
obj = new JSONObject(builder.build());
|
obj = new JSONObject(builder.build());
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
|
|
|
@ -560,8 +560,8 @@ public class RdapDomainSearchActionTest extends RdapSearchActionTestCase {
|
||||||
ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
|
ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
|
||||||
builder.put("domainSearchResults", ImmutableList.of(obj));
|
builder.put("domainSearchResults", ImmutableList.of(obj));
|
||||||
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
||||||
RdapTestHelper.addNotices(builder, "https://example.com/rdap/");
|
RdapTestHelper.addDomainBoilerplateNotices(
|
||||||
RdapTestHelper.addDomainBoilerplateRemarks(builder);
|
builder, RdapTestHelper.createNotices("https://example.com/rdap/"));
|
||||||
return new JSONObject(builder.build());
|
return new JSONObject(builder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -256,14 +256,14 @@ public class RdapEntityActionTest {
|
||||||
RdapTestHelper.getBuilderExcluding(
|
RdapTestHelper.getBuilderExcluding(
|
||||||
map, ImmutableSet.of("rdapConformance", "notices", "remarks"));
|
map, ImmutableSet.of("rdapConformance", "notices", "remarks"));
|
||||||
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
||||||
RdapTestHelper.addNotices(
|
RdapTestHelper.addNonDomainBoilerplateNotices(
|
||||||
builder,
|
builder,
|
||||||
|
RdapTestHelper.createNotices(
|
||||||
"https://example.com/rdap/",
|
"https://example.com/rdap/",
|
||||||
addNoPersonalDataRemark
|
addNoPersonalDataRemark
|
||||||
? RdapTestHelper.ContactNoticeType.CONTACT
|
? RdapTestHelper.ContactNoticeType.CONTACT
|
||||||
: RdapTestHelper.ContactNoticeType.NONE,
|
: RdapTestHelper.ContactNoticeType.NONE,
|
||||||
map.get("notices"));
|
map.get("notices")));
|
||||||
RdapTestHelper.addNonDomainBoilerplateRemarks(builder, map.get("remarks"));
|
|
||||||
obj = builder.build();
|
obj = builder.build();
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
|
|
|
@ -265,8 +265,8 @@ public class RdapEntitySearchActionTest extends RdapSearchActionTestCase {
|
||||||
ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
|
ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
|
||||||
builder.put("entitySearchResults", ImmutableList.of(obj));
|
builder.put("entitySearchResults", ImmutableList.of(obj));
|
||||||
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
||||||
RdapTestHelper.addNotices(builder, "https://example.com/rdap/");
|
RdapTestHelper.addNonDomainBoilerplateNotices(
|
||||||
RdapTestHelper.addNonDomainBoilerplateRemarks(builder);
|
builder, RdapTestHelper.createNotices("https://example.com/rdap/"));
|
||||||
return new JSONObject(builder.build());
|
return new JSONObject(builder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -178,12 +178,12 @@ public class RdapNameserverActionTest {
|
||||||
RdapTestHelper.getBuilderExcluding(
|
RdapTestHelper.getBuilderExcluding(
|
||||||
map, ImmutableSet.of("rdapConformance", "notices", "remarks"));
|
map, ImmutableSet.of("rdapConformance", "notices", "remarks"));
|
||||||
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
||||||
RdapTestHelper.addNotices(
|
RdapTestHelper.addNonDomainBoilerplateNotices(
|
||||||
builder,
|
builder,
|
||||||
|
RdapTestHelper.createNotices(
|
||||||
"https://example.tld/rdap/",
|
"https://example.tld/rdap/",
|
||||||
RdapTestHelper.ContactNoticeType.NONE,
|
RdapTestHelper.ContactNoticeType.NONE,
|
||||||
map.get("notices"));
|
map.get("notices")));
|
||||||
RdapTestHelper.addNonDomainBoilerplateRemarks(builder, map.get("remarks"));
|
|
||||||
obj = builder.build();
|
obj = builder.build();
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
|
|
|
@ -263,8 +263,8 @@ public class RdapNameserverSearchActionTest extends RdapSearchActionTestCase {
|
||||||
ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
|
ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
|
||||||
builder.put("nameserverSearchResults", ImmutableList.of(obj));
|
builder.put("nameserverSearchResults", ImmutableList.of(obj));
|
||||||
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
||||||
RdapTestHelper.addNotices(builder, "https://example.tld/rdap/");
|
RdapTestHelper.addNonDomainBoilerplateNotices(
|
||||||
RdapTestHelper.addNonDomainBoilerplateRemarks(builder);
|
builder, RdapTestHelper.createNotices("https://example.tld/rdap/"));
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,13 +45,11 @@ public class RdapTestHelper {
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void addNotices(
|
static ImmutableList<ImmutableMap<String, Object>> createNotices(String linkBase) {
|
||||||
ImmutableMap.Builder<String, Object> builder, String linkBase) {
|
return createNotices(linkBase, ContactNoticeType.NONE, null);
|
||||||
addNotices(builder, linkBase, ContactNoticeType.NONE, null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void addNotices(
|
static ImmutableList<ImmutableMap<String, Object>> createNotices(
|
||||||
ImmutableMap.Builder<String, Object> builder,
|
|
||||||
String linkBase,
|
String linkBase,
|
||||||
ContactNoticeType contactNoticeType,
|
ContactNoticeType contactNoticeType,
|
||||||
@Nullable Object otherNotices) {
|
@Nullable Object otherNotices) {
|
||||||
|
@ -123,51 +121,56 @@ public class RdapTestHelper {
|
||||||
"rel", "alternate",
|
"rel", "alternate",
|
||||||
"href", "https://www.registry.tld/about/rdap/tos.html",
|
"href", "https://www.registry.tld/about/rdap/tos.html",
|
||||||
"type", "text/html"))));
|
"type", "text/html"))));
|
||||||
builder.put("notices", noticesBuilder.build());
|
return noticesBuilder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void addNonDomainBoilerplateRemarks(ImmutableMap.Builder<String, Object> builder) {
|
static void addNonDomainBoilerplateNotices(ImmutableMap.Builder<String, Object> builder) {
|
||||||
addNonDomainBoilerplateRemarks(builder, null);
|
addNonDomainBoilerplateNotices(builder, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void addNonDomainBoilerplateRemarks(
|
static void addNonDomainBoilerplateNotices(
|
||||||
ImmutableMap.Builder<String, Object> builder, @Nullable Object otherRemarks) {
|
ImmutableMap.Builder<String, Object> builder, @Nullable Object otherNotices) {
|
||||||
ImmutableList.Builder<ImmutableMap<String, Object>> remarksBuilder =
|
ImmutableList.Builder<ImmutableMap<String, Object>> noticesBuilder =
|
||||||
getBuilderWithOthersAdded(otherRemarks);
|
getBuilderWithOthersAdded(otherNotices);
|
||||||
remarksBuilder.add(
|
noticesBuilder.add(
|
||||||
ImmutableMap.of(
|
ImmutableMap.of(
|
||||||
"description",
|
"description",
|
||||||
ImmutableList.of(
|
ImmutableList.of(
|
||||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and"
|
"This response conforms to the RDAP Operational Profile for gTLD Registries and"
|
||||||
+ " Registrars version 1.0")));
|
+ " Registrars version 1.0")));
|
||||||
builder.put("remarks", remarksBuilder.build());
|
builder.put("notices", noticesBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
static void addDomainBoilerplateRemarks(ImmutableMap.Builder<String, Object> builder) {
|
static void addDomainBoilerplateNotices(ImmutableMap.Builder<String, Object> builder) {
|
||||||
addDomainBoilerplateRemarks(builder, false, null);
|
addDomainBoilerplateNotices(builder, false, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void addDomainBoilerplateRemarks(
|
static void addDomainBoilerplateNotices(
|
||||||
|
ImmutableMap.Builder<String, Object> builder, @Nullable Object otherNotices) {
|
||||||
|
addDomainBoilerplateNotices(builder, false, otherNotices);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void addDomainBoilerplateNotices(
|
||||||
ImmutableMap.Builder<String, Object> builder,
|
ImmutableMap.Builder<String, Object> builder,
|
||||||
boolean addNoContactRemark,
|
boolean addNoContactRemark,
|
||||||
@Nullable Object otherRemarks) {
|
@Nullable Object otherNotices) {
|
||||||
ImmutableList.Builder<ImmutableMap<String, Object>> remarksBuilder =
|
ImmutableList.Builder<ImmutableMap<String, Object>> noticesBuilder =
|
||||||
getBuilderWithOthersAdded(otherRemarks);
|
getBuilderWithOthersAdded(otherNotices);
|
||||||
if (addNoContactRemark) {
|
if (addNoContactRemark) {
|
||||||
remarksBuilder.add(
|
noticesBuilder.add(
|
||||||
ImmutableMap.of(
|
ImmutableMap.of(
|
||||||
"title", "Contacts Hidden",
|
"title", "Contacts Hidden",
|
||||||
"description",
|
"description",
|
||||||
ImmutableList.of("Domain contacts are visible only to the owning registrar."),
|
ImmutableList.of("Domain contacts are visible only to the owning registrar."),
|
||||||
"type", "object truncated due to unexplainable reasons"));
|
"type", "object truncated due to unexplainable reasons"));
|
||||||
}
|
}
|
||||||
remarksBuilder.add(
|
noticesBuilder.add(
|
||||||
ImmutableMap.of(
|
ImmutableMap.of(
|
||||||
"description",
|
"description",
|
||||||
ImmutableList.of(
|
ImmutableList.of(
|
||||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and"
|
"This response conforms to the RDAP Operational Profile for gTLD Registries and"
|
||||||
+ " Registrars version 1.0")));
|
+ " Registrars version 1.0")));
|
||||||
remarksBuilder.add(
|
noticesBuilder.add(
|
||||||
ImmutableMap.of(
|
ImmutableMap.of(
|
||||||
"title",
|
"title",
|
||||||
"EPP Status Codes",
|
"EPP Status Codes",
|
||||||
|
@ -182,7 +185,7 @@ public class RdapTestHelper {
|
||||||
"rel", "alternate",
|
"rel", "alternate",
|
||||||
"href", "https://icann.org/epp",
|
"href", "https://icann.org/epp",
|
||||||
"type", "text/html"))));
|
"type", "text/html"))));
|
||||||
remarksBuilder.add(
|
noticesBuilder.add(
|
||||||
ImmutableMap.of(
|
ImmutableMap.of(
|
||||||
"description",
|
"description",
|
||||||
ImmutableList.of(
|
ImmutableList.of(
|
||||||
|
@ -194,7 +197,7 @@ public class RdapTestHelper {
|
||||||
"rel", "alternate",
|
"rel", "alternate",
|
||||||
"href", "https://www.icann.org/wicf",
|
"href", "https://www.icann.org/wicf",
|
||||||
"type", "text/html"))));
|
"type", "text/html"))));
|
||||||
builder.put("remarks", remarksBuilder.build());
|
builder.put("notices", noticesBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ImmutableList.Builder<ImmutableMap<String, Object>> getBuilderWithOthersAdded(
|
private static ImmutableList.Builder<ImmutableMap<String, Object>> getBuilderWithOthersAdded(
|
||||||
|
@ -269,6 +272,9 @@ public class RdapTestHelper {
|
||||||
for (Object notice : (JSONArray) notices) {
|
for (Object notice : (JSONArray) notices) {
|
||||||
assertThat(notice).isInstanceOf(JSONObject.class);
|
assertThat(notice).isInstanceOf(JSONObject.class);
|
||||||
Object title = ((JSONObject) notice).get("title");
|
Object title = ((JSONObject) notice).get("title");
|
||||||
|
if (title == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
assertThat(title).isInstanceOf(String.class);
|
assertThat(title).isInstanceOf(String.class);
|
||||||
if (!title.equals("Navigation Links")) {
|
if (!title.equals("Navigation Links")) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -162,10 +162,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -143,10 +143,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -163,10 +163,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -86,10 +86,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -98,8 +98,41 @@
|
||||||
"objectClassName":"domain"
|
"objectClassName":"domain"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"remarks":
|
"notices":
|
||||||
[
|
[
|
||||||
|
{
|
||||||
|
"description":
|
||||||
|
[
|
||||||
|
"Search results may contain incomplete information due to first-stage query limits."
|
||||||
|
],
|
||||||
|
"title":"Search Policy",
|
||||||
|
"type":"result set truncated due to unexplainable reasons"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description":
|
||||||
|
[
|
||||||
|
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
||||||
|
"Any information provided is 'as is' without any guarantee of accuracy.",
|
||||||
|
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
||||||
|
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
||||||
|
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of any ICANN-accredited registrar.",
|
||||||
|
"You may only use the information contained in the Domain Database for lawful purposes.",
|
||||||
|
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
||||||
|
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
||||||
|
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
||||||
|
"We reserve the right to modify this agreement at any time."
|
||||||
|
],
|
||||||
|
"links":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"rel":"alternate",
|
||||||
|
"href":"https://www.registry.tld/about/rdap/tos.html",
|
||||||
|
"value":"https://example.com/rdap/help/tos",
|
||||||
|
"type":"text/html"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title":"RDAP Terms of Service"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"description":
|
"description":
|
||||||
[
|
[
|
||||||
|
@ -138,42 +171,6 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"notices":
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"description":
|
|
||||||
[
|
|
||||||
"Search results may contain incomplete information due to first-stage query limits."
|
|
||||||
],
|
|
||||||
"title":"Search Policy",
|
|
||||||
"type":"result set truncated due to unexplainable reasons"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description":
|
|
||||||
[
|
|
||||||
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
|
||||||
"Any information provided is 'as is' without any guarantee of accuracy.",
|
|
||||||
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
|
||||||
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
|
||||||
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of any ICANN-accredited registrar.",
|
|
||||||
"You may only use the information contained in the Domain Database for lawful purposes.",
|
|
||||||
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
|
||||||
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
|
||||||
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
|
||||||
"We reserve the right to modify this agreement at any time."
|
|
||||||
],
|
|
||||||
"links":
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"rel":"alternate",
|
|
||||||
"href":"https://www.registry.tld/about/rdap/tos.html",
|
|
||||||
"value":"https://example.com/rdap/help/tos",
|
|
||||||
"type":"text/html"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"title":"RDAP Terms of Service"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"rdapConformance":
|
"rdapConformance":
|
||||||
[
|
[
|
||||||
"rdap_level_0"
|
"rdap_level_0"
|
||||||
|
|
|
@ -57,7 +57,37 @@
|
||||||
"objectClassName":"domain"
|
"objectClassName":"domain"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"remarks":[
|
"notices":[
|
||||||
|
{
|
||||||
|
"title":"Search Policy",
|
||||||
|
"type":"result set truncated due to unexplainable reasons",
|
||||||
|
"description":[
|
||||||
|
"Search results may contain incomplete information due to first-stage query limits."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title":"RDAP Terms of Service",
|
||||||
|
"description":[
|
||||||
|
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
||||||
|
"Any information provided is 'as is' without any guarantee of accuracy.",
|
||||||
|
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
||||||
|
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
||||||
|
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of any ICANN-accredited registrar.",
|
||||||
|
"You may only use the information contained in the Domain Database for lawful purposes.",
|
||||||
|
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
||||||
|
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
||||||
|
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
||||||
|
"We reserve the right to modify this agreement at any time."
|
||||||
|
],
|
||||||
|
"links":[
|
||||||
|
{
|
||||||
|
"value":"https://example.com/rdap/help/tos",
|
||||||
|
"type":"text/html",
|
||||||
|
"rel":"alternate",
|
||||||
|
"href":"https://www.registry.tld/about/rdap/tos.html"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"description":[
|
"description":[
|
||||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and Registrars version 1.0"
|
"This response conforms to the RDAP Operational Profile for gTLD Registries and Registrars version 1.0"
|
||||||
|
@ -93,37 +123,5 @@
|
||||||
],
|
],
|
||||||
"rdapConformance":[
|
"rdapConformance":[
|
||||||
"rdap_level_0"
|
"rdap_level_0"
|
||||||
],
|
|
||||||
"notices":[
|
|
||||||
{
|
|
||||||
"title":"Search Policy",
|
|
||||||
"type":"result set truncated due to unexplainable reasons",
|
|
||||||
"description":[
|
|
||||||
"Search results may contain incomplete information due to first-stage query limits."
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title":"RDAP Terms of Service",
|
|
||||||
"description":[
|
|
||||||
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
|
||||||
"Any information provided is 'as is' without any guarantee of accuracy.",
|
|
||||||
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
|
||||||
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
|
||||||
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of any ICANN-accredited registrar.",
|
|
||||||
"You may only use the information contained in the Domain Database for lawful purposes.",
|
|
||||||
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
|
||||||
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
|
||||||
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
|
||||||
"We reserve the right to modify this agreement at any time."
|
|
||||||
],
|
|
||||||
"links":[
|
|
||||||
{
|
|
||||||
"value":"https://example.com/rdap/help/tos",
|
|
||||||
"type":"text/html",
|
|
||||||
"rel":"alternate",
|
|
||||||
"href":"https://www.registry.tld/about/rdap/tos.html"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,10 +128,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -121,10 +121,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -86,10 +86,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -213,10 +213,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -142,10 +142,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -141,10 +141,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -241,10 +241,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -233,10 +233,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -162,9 +162,6 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -240,10 +240,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -261,10 +261,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
|
@ -30,10 +30,7 @@
|
||||||
"type" : "text/html"
|
"type" : "text/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"remarks" :
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
"description" :
|
"description" :
|
||||||
[
|
[
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue