@startuml
'https://plantuml.com/sequence-diagram


title PMML-DRL Resource

autonumber 1
actor Input_provider
note over Input_provider: Any service requiring PMML evaluation (e.g. Kogito, KieServer)

Input_provider -> Runtime_Manager: execute (EfestoInputPMML)
Runtime_Manager --> KieRuntimeServicePMML: canManageInput (EfestoInputPMML)
KieRuntimeServicePMML --> Runtime_Manager: true
Runtime_Manager --> KieRuntimeServicePMML: evaluateInput (EfestoInputPMML)
KieRuntimeServicePMML --> KiePMMLDroolsModel: evaluate
KiePMMLDroolsModel --> Runtime_Manager: execute (AbstractEfestoInput<EfestoMapInputDTO>)
Runtime_Manager --> KieRuntimeServiceDrlMapInput: canManageInput (AbstractEfestoInput<EfestoMapInputDTO>)
KieRuntimeServiceDrlMapInput --> Runtime_Manager: true
Runtime_Manager --> KieRuntimeServiceDrlMapInput: evaluateInput (AbstractEfestoInput<EfestoMapInputDTO>)
KieRuntimeServiceDrlMapInput --> Runtime_Manager: Optional<EfestoOutputDrlMap>
Runtime_Manager --> KiePMMLDroolsModel: Optional<EfestoOutputDrlMap>
KiePMMLDroolsModel --> KieRuntimeServicePMML: PMML4Result
KieRuntimeServicePMML --> Runtime_Manager: Optional<EfestoOutputPMML>
Runtime_Manager -> Input_provider: Optional<EfestoOutputPMML>


@enduml