Add the START_DATE_SUNRISE phase

The START_DATE_SUNRISE phase allows registration of domains only with a signed mark. In all other respects - it is identical to the GENERAL_AVAILABILITY phase.

Note that Anchor Tenants bypass all checks, and are hence able to register domains without a signed mark.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=185534793
This commit is contained in:
guyben 2018-02-13 08:38:54 -08:00 committed by jianglai
parent bba975a991
commit b0cbc0f60d
17 changed files with 484 additions and 13 deletions

View file

@ -32,6 +32,25 @@ import javax.xml.bind.annotation.XmlValue;
*
* <p>The launch phase refers to the various stages that a TLD goes through before entering general
* availability. The various phases are described below (in order that they usually occur).
*
* <p>Each phase is connected to the TldState in which it can be used (see DomainFlowUtils). Sending
* an EPP with the wrong launch phase for the current TldState will result in an error. However, we
* don't actually check the launch phase *exists*.
*
* <p>We usually check for the information *inside* a launch phase (e.g. the signed mark for the
* domain) and return an error if that is missing - which would also check that the phase exists.
* But if we bypass the need for that information (e.g., an Anchor Tenant doesn't need a signed
* mark), then we never actually test the phase exists.
*
* <p>This means an Anchor Tenant has some weird peculiarities: It doesn't need to specify the
* phase. It *can* specify the phase, but not give any of the phase's information (e.g. - signed
* marks), in which case we accept even a wrong phase. But if it *does* give a signed mark as well -
* we will return an error if it's the wrong phase (or if the marks are invalid) even though we
* didn't require them.
*
* <p>This is OK (?) because the Anchor Tenants field is set internally and manually.. The person
* who sets it is the one that needs to make sure the domain isn't a trademark and that the fields
* are correct.
*/
@Embed
public class LaunchPhase extends ImmutableObject {
@ -57,6 +76,12 @@ public class LaunchPhase extends ImmutableObject {
*/
public static final LaunchPhase CLAIMS = create("claims", null);
/**
* An alternative launch phase which allows only trademark owners to create domains. It is used
* instead of the previous phases.
*/
public static final LaunchPhase START_DATE_SUNRISE = create("sunrise", "start-date");
/** A post-launch phase that is also referred to as "steady state". */
public static final LaunchPhase OPEN = create("open", null);