# Interface IWorkflowPlugin OptimaJet.Workflow.Plugins.IWorkflowPlugin Describes a plugin for the Workflow Engine. Namespace: [OptimaJet.Workflow.Plugins](https://api.workflowengine.io/core/OptimaJet.Workflow.Plugins/) ```csharp public interface IWorkflowPlugin ``` ## Type Hierarchy - IWorkflowPlugin Current type - Implementing types - [ActiveDirectoryPlugin](https://api.workflowengine.io/active-directory-plugin/OptimaJet.Workflow.Plugins.ActiveDirectoryPlugin/ActiveDirectoryPlugin/) - [BpmnPlugin](https://api.workflowengine.io/bpmn-plugin/OptimaJet.Workflow.BpmnPlugin/BpmnPlugin/) - [FilePlugin](https://api.workflowengine.io/files-plugin/OptimaJet.Workflow.Plugins/FilePlugin/) - [FormsPlugin](https://api.workflowengine.io/forms-plugin/OptimaJet.Workflow.Plugins.FormsPlugin/FormsPlugin/) - [RealTimeTrackingPlugin](https://api.workflowengine.io/realtime-tracking-plugin/OptimaJet.Workflow.RealTimeTrackingPlugin/RealTimeTrackingPlugin/) - [WorkflowPlugin](https://api.workflowengine.io/core/OptimaJet.Workflow.Plugins.CustomWorkflowProviders/WorkflowPlugin-TEnumActions-TEnumActionsAsync-TEnumConditions-TEnumConditionsAsync/) - [ApprovalPlugin](https://api.workflowengine.io/core/OptimaJet.Workflow.Plugins/ApprovalPlugin/) - [LoopPlugin](https://api.workflowengine.io/core/OptimaJet.Workflow.Plugins/LoopPlugin/) - [WorkflowPluginWithRuleProvider](https://api.workflowengine.io/core/OptimaJet.Workflow.Plugins.CustomWorkflowProviders/WorkflowPluginWithRuleProvider-EnumActions-EnumActionsAsync-EnumConditions-EnumConditionsAsync-EnumRules-EnumRulesAsync/) - [BasicPlugin](https://api.workflowengine.io/core/OptimaJet.Workflow.Plugins/BasicPlugin/) ## Properties `string Name { get; }` The plugin name. `bool Disabled { get; set; }` Flag to disable plugin, if true - plugin is disabled, false otherwise. `[Obsolete("This property is obsolete. Use plugin constructor instead.")] Dictionary PluginSettings { get; }` Obsolete The plugin settings. ## Methods `void OnPluginAdd(WorkflowRuntime runtime, List schemes = null)` Called when a plugin is added to a runtime. ### Parameters | Name | Type | Description | | --- | --- | --- | | `runtime` | `WorkflowRuntime` | The instance of the runtime. | | `schemes` | `List` | The list of schemes for which the plugin is being added. | `Task OnRuntimeStartAsync(WorkflowRuntime runtime)` Called when the runtime is started. ### Parameters | Name | Type | Description | | --- | --- | --- | | `runtime` | `WorkflowRuntime` | The instance of the runtime. | ### Returns | Type | Description | | --- | --- | | `Task` | A task that represents the asynchronous operation. | [Previous GetPredefinedIdentitiesAsyncDelegate](https://api.workflowengine.io/core/OptimaJet.Workflow.Plugins/GetPredefinedIdentitiesAsyncDelegate/) [Next LoopCounter](https://api.workflowengine.io/core/OptimaJet.Workflow.Plugins/LoopCounter/)