Class DomainRenewFlow

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

@ReportingSpec(DOMAIN_RENEW) public final class DomainRenewFlow extends Object implements MutatingFlow
An EPP flow that renews a domain.

Registrars can use this flow to manually extend the length of a registration, instead of relying on domain auto-renewal (where the registry performs an automatic one-year renewal at the instant a domain would expire).

ICANN prohibits any registration from being longer than ten years so if the request would result in a registration greater than ten years long it will fail. In practice this means it's impossible to request a ten-year renewal, since that will always cause the new registration to be longer than 10 years unless it comes in at the exact millisecond that the domain would have expired.

Expected Error
FlowUtils.NotLoggedInException, FlowUtils.UnknownCurrencyEppException, ResourceFlowUtils.ResourceDoesNotExistException, ResourceFlowUtils.ResourceNotOwnedException, ResourceStatusProhibitsOperationException, DomainFlowUtils.BadPeriodUnitException, DomainFlowUtils.CurrencyUnitMismatchException, DomainFlowUtils.CurrencyValueScaleException, DomainFlowUtils.ExceedsMaxRegistrationYearsException, DomainFlowUtils.FeesMismatchException, DomainFlowUtils.FeesRequiredForPremiumNameException, DomainFlowUtils.MissingBillingAccountMapException, DomainFlowUtils.NotAuthorizedForTldException, DomainFlowUtils.RegistrarMustBeActiveForThisOperationException, DomainFlowUtils.UnsupportedFeeAttributeException, DomainRenewFlow.IncorrectCurrentExpirationDateException, AllocationTokenFlowUtils.MissingRemoveBulkPricingTokenOnBulkPricingDomainException, AllocationTokenFlowUtils.RemoveBulkPricingTokenOnNonBulkPricingDomainException, AllocationTokenFlowUtils.AllocationTokenNotValidForDomainException, AllocationTokenFlowUtils.InvalidAllocationTokenException, AllocationTokenFlowUtils.AllocationTokenNotInPromotionException, AllocationTokenFlowUtils.AllocationTokenNotValidForRegistrarException, AllocationTokenFlowUtils.AllocationTokenNotValidForTldException, AllocationTokenFlowUtils.AlreadyRedeemedAllocationTokenException
  • 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