# Interface IParameterBuilder OptimaJet.Workflow.Core.Model.Builder.IParameterBuilder Provides fluent configuration for an explicit process parameter in a [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/). Namespace: [OptimaJet.Workflow.Core.Model.Builder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/) ```csharp public interface IParameterBuilder : IProcessDefinitionBuilder ``` ## Type Hierarchy - IParameterBuilder Current type - Base interfaces - [IProcessDefinitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IProcessDefinitionBuilder/) ## Methods `IParameterBuilder Ref(out ParameterDefinition parameterDefinition)` Assigns the current [ParameterDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) to `parameterDefinition`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `parameterDefinition` | `ParameterDefinition` | Receives the [ParameterDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) being configured. | ### Returns | Type | Description | | --- | --- | | `IParameterBuilder` | The current [IParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IParameterBuilder/) instance for method chaining. | `IParameterBuilder Name(string name)` Sets the process parameter name of the current [ParameterDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/). ### Parameters | Name | Type | Description | | --- | --- | --- | | `name` | `String` | The process parameter name. | ### Returns | Type | Description | | --- | --- | | `IParameterBuilder` | The current [IParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IParameterBuilder/) instance for method chaining. | `IParameterBuilder Purpose(ParameterPurpose purpose)` Sets [ParameterDefinition.Purpose](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) for the current process parameter. ### Parameters | Name | Type | Description | | --- | --- | --- | | `purpose` | `ParameterPurpose` | The [ParameterPurpose](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterPurpose/) that controls how Workflow Engine manages and stores the parameter. | ### Returns | Type | Description | | --- | --- | | `IParameterBuilder` | The current [IParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IParameterBuilder/) instance for method chaining. | ### Exceptions | Type | Description | | --- | --- | | `InvalidOperationException` | `purpose` is [ParameterPurpose.System](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterPurpose/). | ### Remarks Setting `purpose` to [ParameterPurpose.Temporary](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterPurpose/) clears [ParameterDefinition.InitialValue](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/). `IParameterBuilder Type(Type type)` Sets [ParameterDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) for the current process parameter. ### Parameters | Name | Type | Description | | --- | --- | --- | | `type` | `Type` | The CLR [Type](https://learn.microsoft.com/dotnet/api/system.type) used for parameter values. | ### Returns | Type | Description | | --- | --- | | `IParameterBuilder` | The current [IParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IParameterBuilder/) instance for method chaining. | ### Exceptions | Type | Description | | --- | --- | | `InvalidOperationException` | The existing [ParameterDefinition.InitialValue](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) cannot be deserialized as `type`. | `IParameterBuilder InitialValue(string initialValue)` Sets [ParameterDefinition.InitialValue](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) from its stored string representation. ### Parameters | Name | Type | Description | | --- | --- | --- | | `initialValue` | `String` | The value to store. For a parameter whose [ParameterDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) is not [string](https://learn.microsoft.com/dotnet/api/system.string), the value must be valid JSON that can be deserialized as that type. | ### Returns | Type | Description | | --- | --- | | `IParameterBuilder` | The current [IParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IParameterBuilder/) instance for method chaining. | ### Exceptions | Type | Description | | --- | --- | | `InvalidOperationException` | The current [ParameterDefinition.Purpose](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) is not [ParameterPurpose.Persistence](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterPurpose/), or `initialValue` cannot be deserialized as the current [ParameterDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/). | `IParameterBuilder InitialValue(object initialValue)` Serializes `initialValue` and stores the result in [ParameterDefinition.InitialValue](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/). ### Parameters | Name | Type | Description | | --- | --- | --- | | `initialValue` | `Object` | The value to serialize. Its runtime type must be compatible with the current [ParameterDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/). | ### Returns | Type | Description | | --- | --- | | `IParameterBuilder` | The current [IParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IParameterBuilder/) instance for method chaining. | ### Exceptions | Type | Description | | --- | --- | | `InvalidOperationException` | The current [ParameterDefinition.Purpose](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) is not [ParameterPurpose.Persistence](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterPurpose/), or `initialValue` is not an instance of the current [ParameterDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/). | `IParameterBuilder ClearInitialValue()` Clears [ParameterDefinition.InitialValue](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) for the current process parameter. ### Returns | Type | Description | | --- | --- | | `IParameterBuilder` | The current [IParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IParameterBuilder/) instance for method chaining. | [Previous IInlineActivityBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IInlineActivityBuilder/) [Next IProcessDefinitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IProcessDefinitionBuilder/)