diff --git a/java/google/registry/tools/CreateOrUpdateTldCommand.java b/java/google/registry/tools/CreateOrUpdateTldCommand.java index 37cba4cc5..4b9d10d77 100644 --- a/java/google/registry/tools/CreateOrUpdateTldCommand.java +++ b/java/google/registry/tools/CreateOrUpdateTldCommand.java @@ -204,6 +204,14 @@ abstract class CreateOrUpdateTldCommand extends MutatingCommand { description = "Override restrictions on reserved list naming") boolean overrideReservedListRules; + @Nullable + @Parameter( + names = {"--domain_create_restricted"}, + description = "If only domains with nameserver restricted reservation can be created", + arity = 1 + ) + Boolean domainCreateRestricted; + @Nullable @Parameter( names = "--claims_period_end", @@ -365,6 +373,10 @@ abstract class CreateOrUpdateTldCommand extends MutatingCommand { builder.setClaimsPeriodEnd(claimsPeriodEnd); } + if (domainCreateRestricted != null) { + builder.setDomainCreateRestricted(domainCreateRestricted); + } + if (premiumListName != null) { if (premiumListName.isPresent()) { Optional premiumList = PremiumList.get(premiumListName.get()); diff --git a/javatests/google/registry/tools/CreateTldCommandTest.java b/javatests/google/registry/tools/CreateTldCommandTest.java index 8a5e72329..68690b877 100644 --- a/javatests/google/registry/tools/CreateTldCommandTest.java +++ b/javatests/google/registry/tools/CreateTldCommandTest.java @@ -67,6 +67,7 @@ public class CreateTldCommandTest extends CommandTestCase { .isEqualTo(Registry.DEFAULT_REDEMPTION_GRACE_PERIOD); assertThat(registry.getPendingDeleteLength()).isEqualTo(Registry.DEFAULT_PENDING_DELETE_LENGTH); assertThat(registry.getCreationTime()).isIn(Range.closed(before, after)); + assertThat(registry.getDomainCreateRestricted()).isFalse(); } @Test @@ -324,6 +325,12 @@ public class CreateTldCommandTest extends CommandTestCase { .containsExactly("ns1.example.com", "ns2.example.com"); } + @Test + public void testSuccess_setDomainCreateRestricted() throws Exception { + runCommandForced("--domain_create_restricted=true", "--roid_suffix=Q9JYB4C", "xn--q9jyb4c"); + assertThat(Registry.get("xn--q9jyb4c").getDomainCreateRestricted()).isTrue(); + } + @Test public void testSuccess_setCommonReservedListOnTld() throws Exception { runSuccessfulReservedListsTest("common_abuse"); diff --git a/javatests/google/registry/tools/UpdateTldCommandTest.java b/javatests/google/registry/tools/UpdateTldCommandTest.java index 04814716f..234e449d3 100644 --- a/javatests/google/registry/tools/UpdateTldCommandTest.java +++ b/javatests/google/registry/tools/UpdateTldCommandTest.java @@ -407,6 +407,30 @@ public class UpdateTldCommandTest extends CommandTestCase { .containsExactly("ns2.example.com"); } + @Test + public void testSuccess_setTldToDomainCreateRestricted() throws Exception { + persistResource( + Registry.get("xn--q9jyb4c").asBuilder().setDomainCreateRestricted(false).build()); + runCommandForced("--domain_create_restricted=true", "xn--q9jyb4c"); + assertThat(Registry.get("xn--q9jyb4c").getDomainCreateRestricted()).isTrue(); + } + + @Test + public void testSuccess_unsetTldToDomainCreateRestricted() throws Exception { + persistResource( + Registry.get("xn--q9jyb4c").asBuilder().setDomainCreateRestricted(true).build()); + runCommandForced("--domain_create_restricted=false", "xn--q9jyb4c"); + assertThat(Registry.get("xn--q9jyb4c").getDomainCreateRestricted()).isFalse(); + } + + @Test + public void testSuccess_leaveDomainCreateRestrictedStatusUnchanged() throws Exception { + persistResource( + Registry.get("xn--q9jyb4c").asBuilder().setDomainCreateRestricted(true).build()); + runCommandForced("xn--q9jyb4c"); + assertThat(Registry.get("xn--q9jyb4c").getDomainCreateRestricted()).isTrue(); + } + @Test public void testSuccess_removeLrpPeriod() throws Exception { persistResource(