package com.airlock.iam.flow.api.domain.model.step;

import com.airlock.iam.flow.impl.domain.model.step.DefaultStepResultFactory;
import java.util.Optional;

public interface FlowStep {
   StepResult initialize();

   default void finalizeStep() {
   }

   default Optional<StepSession> createSession() {
      return Optional.empty();
   }

   String getDescription();

   default StepResultFactory stepResultFactory() {
      return new DefaultStepResultFactory();
   }
}
