Class DomainRestoreRequestFlow

java.lang.Object
google.registry.flows.domain.DomainRestoreRequestFlow
All Implemented Interfaces:
Flow, MutatingFlow, TransactionalFlow

@ReportingSpec(DOMAIN_RGP_RESTORE_REQUEST) public final class DomainRestoreRequestFlow extends Object implements MutatingFlow
An EPP flow that requests that a domain in the redemption grace period be restored.

When a domain is deleted it is removed from DNS immediately and marked as pending delete, but is not actually soft deleted. There is a period (by default 30 days) during which it can be restored by the original owner. When that period expires there is a second period (by default 5 days) during which the domain cannot be restored. After that period anyone can re-register this name.

This flow is called a restore "request" because technically it is only supposed to signal that the registrar requests the restore, which the registry can choose to process or not based on a restore report that is submitted through an out-of-band process and details the request. However, in practice this flow does the restore immediately. This is allowable because all the fields on a restore report are optional or have default values, and so by policy when the request comes in we consider it to have been accompanied by a default-initialized report which we auto-approve.

Restores cost a fixed restore fee plus a one-year renewal fee for the domain. The domain is restored to a single year expiration starting at the restore time, regardless of what the original expiration time was.

Expected Error
EppException.UnimplementedExtensionException, FlowUtils.NotLoggedInException, FlowUtils.UnknownCurrencyEppException, ResourceFlowUtils.ResourceDoesNotExistException, ResourceFlowUtils.ResourceNotOwnedException, DomainFlowUtils.CurrencyUnitMismatchException, DomainFlowUtils.CurrencyValueScaleException, DomainFlowUtils.DomainReservedException, DomainFlowUtils.FeesMismatchException, DomainFlowUtils.FeesRequiredForPremiumNameException, DomainFlowUtils.MissingBillingAccountMapException, DomainFlowUtils.NotAuthorizedForTldException, DomainFlowUtils.PremiumNameBlockedException, DomainFlowUtils.RegistrarMustBeActiveForThisOperationException, DomainFlowUtils.UnsupportedFeeAttributeException, DomainRestoreRequestFlow.DomainNotEligibleForRestoreException, DomainRestoreRequestFlow.RestoreCommandIncludesChangesException
  • Method Details

    • run

      public EppResponse run() throws EppException
      Description copied from interface: Flow
      Executes an EPP "flow" and returns a response object (or in the specific case of the "hello" flow a greeting object) that can be converted to XML and returned to the caller.

      Flows should have Flow.run() called once per instance. If a flow needs to be retried, a new instance should be created.

      Flows should get all of their parameters via injection off of FlowComponent.

      Specified by:
      run in interface Flow
      Throws:
      EppException