Namespace FlowOrchestrator.Core.Abstractions
Classes
- FlowManifest
Root container for a flow's declarative definition, holding its triggers and steps. Deserialized from JSON or constructed in code via IFlowDefinition implementations.
- FlowTriggerCollection
Named collection of TriggerMetadata entries for a flow manifest, keyed by the trigger's logical name (e.g.
"manual","schedule","webhook").
- LoopStepMetadata
Step metadata for a
foreachloop that iterates over a collection and executes nested Steps for each item.
- MetadataInputExtensions
Extension methods for extracting typed values from step or trigger input dictionaries. Handles both strongly-typed CLR values and JsonElement representations, which occur when inputs are deserialized from JSON manifests.
- RunAfterCollection
Maps predecessor step names to a RunAfterCondition describing when the dependent step is allowed to proceed. An empty collection means the step has no prerequisites (entry step).
- RunAfterCondition
A single entry inside a RunAfterCollection: combines the legacy status-based gate (Statuses) with an optional boolean expression (When) that is evaluated against the run's outputs at planning time.
- StepCollection
Dictionary of StepMetadata keyed by step name, with helpers for navigating nested step hierarchies using dot-notation paths.
- StepMetadata
Defines a single step in a flow manifest, specifying its handler type, dependency declarations, and static input values.
- TriggerMetadata
Defines how a flow can be started — its trigger type and associated configuration inputs.
Interfaces
- IFlowDefinition
Represents a flow definition registered with the orchestrator. Implement this interface to declare a flow in code; the orchestrator reads Manifest to build the execution graph at runtime.
- IScopedStep
Marks a StepMetadata as a scoped container (e.g. a loop) that owns a nested StepCollection executed per iteration.
Enums
- StepStatus
Execution state of a step within a flow run.
- TriggerType
Supported trigger types for flows. Only Webhook has an external URL for integration from outside systems.