code: public void purchaseReservedEip(PurchaseReservedEipRequest request) {
          checkStringNotEmpty(request.getEip(), "eip should not be empty");
          if (Strings.isNullOrEmpty(request.getClientToken())) {
              request.setClientToken(generateDefaultClientToken());
          }
          if (null == request.getBilling()) {
              request.setBilling(generateDefaultReservation());
          }
          InternalRequest internalRequest = this.createRequest(request, HttpMethodName.PUT, request.getEip());
          internalRequest.addParameter("purchaseReserved", null);
          internalRequest.addParameter(CLIENT_TOKEN_IDENTIFY, request.getClientToken());
          fillPayload(internalRequest, request);
          invokeHttpClient(internalRequest, AbstractBceResponse.class);
      }
docs: PurchaseReserved eip with fixed duration
  only Prepaid eip can do this
  
  This is an asynchronous interface
  @param request The request containing all options for renewing eip with fixed duration.