Table of Contents

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 foreach loop 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.