Enum Class StatusValue

java.lang.Object
java.lang.Enum<StatusValue>
google.registry.model.eppcommon.StatusValue
All Implemented Interfaces:
EnumToAttributeAdapter.EppEnum, Serializable, Comparable<StatusValue>, Constable

public enum StatusValue extends Enum<StatusValue> implements EnumToAttributeAdapter.EppEnum
Represents an EPP status value for hosts, contacts, and domains, as defined in RFC 5731, 5732, and 5733. The values here are the union of all 3 sets of status values.

The RFCs define extra optional metadata (language and message) that we don't use and therefore don't model.

Note that StatusValue.LINKED should never be stored. Rather, it should be calculated on the fly whenever needed using an eventually consistent query (i.e. in info flows).

See Also:
  • Enum Constant Details

    • CLIENT_DELETE_PROHIBITED

      public static final StatusValue CLIENT_DELETE_PROHIBITED
    • CLIENT_HOLD

      public static final StatusValue CLIENT_HOLD
    • CLIENT_RENEW_PROHIBITED

      public static final StatusValue CLIENT_RENEW_PROHIBITED
    • CLIENT_TRANSFER_PROHIBITED

      public static final StatusValue CLIENT_TRANSFER_PROHIBITED
    • CLIENT_UPDATE_PROHIBITED

      public static final StatusValue CLIENT_UPDATE_PROHIBITED
    • INACTIVE

      public static final StatusValue INACTIVE
      A status for a domain with no nameservers.
    • LINKED

      public static final StatusValue LINKED
      A status for a resource has an incoming reference from an active domain.

      LINKED is a "virtual" status value that should never be persisted to the database on any resource. It must be computed on the fly when we need it, as the set of domains using a resource can change at any time.

    • OK

      public static final StatusValue OK
      A status for a resource that has no other statuses.

      For domains, OK is only present when absolutely no other statuses are present. For contacts and hosts, the spec also allows a resource to have LINKED along with OK, but we implement LINKED as a virtual status that gets appended to outputs (such as info commands) on the fly, so we can ignore LINKED when dealing with persisted resources.

    • PENDING_CREATE

      public static final StatusValue PENDING_CREATE
      A status for a resource undergoing asynchronous creation.

      This status is here for completeness, but it is not used by our system.

    • PENDING_DELETE

      public static final StatusValue PENDING_DELETE
      A status for a resource indicating that deletion has been requested but has not yet happened.

      Contacts and hosts are deleted asynchronously because we need to check their incoming references with strong consistency, requiring an asynchronous process, and during that asynchronous process they have the PENDING_DELETE status.

      Domains in the add grace period are deleted synchronously and do not ever have this status. Otherwise, domains go through an extended deletion process, consisting of a 30-day redemption grace period followed by a 5-day "pending delete" period before they are actually 100% deleted. These domains have the PENDING_DELETE status throughout that 35-day window.

    • PENDING_TRANSFER

      public static final StatusValue PENDING_TRANSFER
      A status for a resource with an unresolved transfer request.

      Hosts transfer indirectly via superordinate domain.

    • PENDING_UPDATE

      public static final StatusValue PENDING_UPDATE
      A status for a resource undergoing an asynchronous update.

      This status is here for completeness, but it is not used by our system.

    • SERVER_DELETE_PROHIBITED

      public static final StatusValue SERVER_DELETE_PROHIBITED
      A non-client-settable status that prevents deletes of EPP resources.
    • SERVER_HOLD

      public static final StatusValue SERVER_HOLD
    • SERVER_RENEW_PROHIBITED

      public static final StatusValue SERVER_RENEW_PROHIBITED
    • SERVER_TRANSFER_PROHIBITED

      public static final StatusValue SERVER_TRANSFER_PROHIBITED
      A non-client-settable status that prevents transfers of EPP resources.
    • SERVER_UPDATE_PROHIBITED

      public static final StatusValue SERVER_UPDATE_PROHIBITED
      A non-client-settable status that prevents updates of EPP resources, except by superusers.
  • Method Details

    • values

      public static StatusValue[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static StatusValue valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getXmlName

      public String getXmlName()
      Specified by:
      getXmlName in interface EnumToAttributeAdapter.EppEnum
    • isClientSettable

      public boolean isClientSettable()
    • isServerSettable

      public boolean isServerSettable()
    • isChargedStatus

      public boolean isChargedStatus()
    • isAllowedOn

      public boolean isAllowedOn(Class<? extends EppResource> resource)
    • fromXmlName

      public static StatusValue fromXmlName(String xmlName)