public Workflow toWorkflow() {
        Workflow workflow = new Workflow();
        BeanUtils.copyProperties(this, workflow);
        workflow.setStatus(Workflow.WorkflowStatus.valueOf(this.status.name()));
        workflow.setTasks(tasks.stream().map(TaskModel::toTask).collect(Collectors.toList()));
        workflow.setUpdateTime(this.updatedTime);

        // ensure that input/output is properly represented
        if (externalInputPayloadStoragePath != null) {
            workflow.setInput(new HashMap<>());
        }
        if (externalOutputPayloadStoragePath != null) {
            workflow.setOutput(new HashMap<>());
        }
        return workflow;
    }
A string representation of all relevant fields that identify this workflow. Intended for use
in log and other system generated messages.
core/src/main/java/com/netflix/conductor/model/WorkflowModel.java