Namespace Phoenix.ComponentAPI
Last update: 19.06.2026Classes
A basic runner session options class.
Instances of this class will be accepted by the default Phoenix.ComponentAPI.IHarnessRunnerClient implementations.
An immutable class that contains the information necessary to run a component.
An almost immutable class that contains the results of a run evaluation.
This class contains documentation about reserved keys used by the CAM framework to represent special data in
Phoenix.ComponentAPI.IExecutionInstance.DebugDataUpdated maps.
This exception type is used by the ILicenseProvider when there are errors.
Structs
An immutable structure that contains metadata about a particular run.
Interfaces
An instance of an execution context which allows the client to register for events, query for available processes, and start the run.
This interface provides a client the ability to host builder UIs to create and edit harnesses.
This interface is thread safe and asynchronous. It uses the task-based asynchronous pattern (https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap )
This interface represents a single instance of a builder UI that can be used to create or edit a harness.
Instances of this interface are typically not thread safe. It uses the task-based asynchronous pattern (https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap )
Represents a "local edit" session that allows the OEM process to modify a pacz for a live runner session.
The interface that a harness runner must implement. The implementing class should use the following attributes:
- System.Runtime.InteropServices.GuidAttribute
- Phoenix.Plugins.PlugInTypesAttribute(typeof(IHarnessRunner))
- Phoenix.Plugins.PlugInDisplayName
A harness does not need to be thread safe and will never be called from more than one thread.
If the harness runner implements IDisposable, it will be disposed at an appropriate time.
This interface provides a client the ability to host and utilize pre-existing harnesses within their program.
This interface is thread safe and asynchronous. It uses the task-based asynchronous pattern (https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap )
The host object passed to harnesses to give them context for their run.
An implementation of Phoenix.ComponentAPI.IHarnessRunner may additionally implement this interface if reloading is expensive
and they wish to avoid the cost when a Builder UI makes a change. By default, the infrastructure will Dispose the
IHarnessRunner and create a new one anytime the user saves a change to the pacz.
This interface represents an open session to a harness allowing execution of the component.
Session objects are informational to the infrastructure. It is not guaranteed that instances of the harness map one to one to session objects, though that will generally be true.
Additionally, clients should not assume that input values are maintained between calls to ExecuteAsync. Each call should send all input variable values.
This object is not thread safe. It uses the task-based asynchronous pattern.
Common save operations used from both
Phoenix.ComponentAPI.IHarnessBuilderUISession and
Phoenix.ComponentAPI.IHarnessLocalEditSession.
The interface for a checked out license feature.
The interface for checking out license features.
This interface is intended to be a "marker" interface for any runner session options type.
Session options are checked for validity at runtime; all Phoenix.ComponentAPI.IHarnessRunnerClient
implementations will accept any Phoenix.ComponentAPI.IRunnerSessionOptions object at compile time.
This comes from a desire to make it possible to write common code in OEM clients for various Phoenix.ComponentAPI.IHarnessRunnerClient
implementations, even if they require different options types, and then use factory / utility methods in that
code to ensure the correct options type is always passed.
When implementing a new Phoenix.ComponentAPI.IHarnessRunnerClient implementation, you should make it clear
to those attempting to use your client implementation what qualifies as an acceptable Phoenix.ComponentAPI.IRunnerSessionOptions
object. If options do not make sense for your client, you may choose to accept any object or even null.
It would also be a good idea to provide convenient ways of producing any argument object that is required.
Enums
The status of a run