# Interface ICommandParameterBuilder OptimaJet.Workflow.Core.Model.Builder.ICommandParameterBuilder Provides fluent configuration for a [ParameterDefinitionReference](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinitionReference/) in [CommandDefinition.InputParameters](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommandDefinition/). Namespace: [OptimaJet.Workflow.Core.Model.Builder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/) ```csharp public interface ICommandParameterBuilder : ICommandBuilder, IProcessDefinitionBuilder ``` ## Type Hierarchy - ICommandParameterBuilder Current type - Base interfaces - [ICommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandBuilder/) - [IProcessDefinitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IProcessDefinitionBuilder/) ## Methods `ICommandParameterBuilder Name(string name)` Sets [ParameterDefinitionReference.Name](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinitionReference/) for the current command input. ### Parameters | Name | Type | Description | | --- | --- | --- | | `name` | `String` | The name used to access and localize the command input. | ### Returns | Type | Description | | --- | --- | | `ICommandParameterBuilder` | The current instance of [ICommandParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandParameterBuilder/). | `ICommandParameterBuilder Parameter(ParameterDefinition parameter)` Associates the current command input with the specified scheme-level [ParameterDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/). ### Parameters | Name | Type | Description | | --- | --- | --- | | `parameter` | `ParameterDefinition` | The [ParameterDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) of the process parameter that receives the submitted value. | ### Returns | Type | Description | | --- | --- | | `ICommandParameterBuilder` | The current instance of [ICommandParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandParameterBuilder/). | ### Exceptions | Type | Description | | --- | --- | | `InvalidOperationException` | The existing [ParameterDefinitionReference.DefaultValue](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinitionReference/) cannot be deserialized as the [ParameterDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) of `parameter`. | `ICommandParameterBuilder Required()` Sets [ParameterDefinitionReference.IsRequired](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinitionReference/) so the current command input requires a non-[null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) value when [WorkflowCommand.Validate(out string)](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime/WorkflowCommand/) validates the command. ### Returns | Type | Description | | --- | --- | | `ICommandParameterBuilder` | The current instance of [ICommandParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandParameterBuilder/). | `ICommandParameterBuilder NotRequired()` Sets [ParameterDefinitionReference.IsRequired](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinitionReference/) so the current command input is optional when [WorkflowCommand.Validate(out string)](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime/WorkflowCommand/) validates the command. ### Returns | Type | Description | | --- | --- | | `ICommandParameterBuilder` | The current instance of [ICommandParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandParameterBuilder/). | `ICommandParameterBuilder DefaultValue(string defaultValue)` Sets the default value for the current command input from its stored string representation. ### Parameters | Name | Type | Description | | --- | --- | --- | | `defaultValue` | `String` | The value to store in [ParameterDefinitionReference.DefaultValue](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinitionReference/). When the linked [ParameterDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) is not [string](https://learn.microsoft.com/dotnet/api/system.string), `defaultValue` must be deserializable as that type. | ### Returns | Type | Description | | --- | --- | | `ICommandParameterBuilder` | The current instance of [ICommandParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandParameterBuilder/). | ### Exceptions | Type | Description | | --- | --- | | `InvalidOperationException` | The current command input has no linked [ParameterDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/), or `defaultValue` cannot be deserialized as the linked [ParameterDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/). | `ICommandParameterBuilder DefaultValue(object defaultValue)` Serializes `defaultValue` and sets it as the default value for the current command input. ### Parameters | Name | Type | Description | | --- | --- | --- | | `defaultValue` | `Object` | The value to serialize. Its runtime type must be compatible with the linked [ParameterDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/). | ### Returns | Type | Description | | --- | --- | | `ICommandParameterBuilder` | The current instance of [ICommandParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandParameterBuilder/). | ### Exceptions | Type | Description | | --- | --- | | `InvalidOperationException` | The current command input has no linked [ParameterDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/), or `defaultValue` is not an instance of the linked [ParameterDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/). | `ICommandParameterBuilder ClearDefaultValue()` Clears [ParameterDefinitionReference.DefaultValue](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinitionReference/) for the current command input. ### Returns | Type | Description | | --- | --- | | `ICommandParameterBuilder` | The current instance of [ICommandParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandParameterBuilder/). | `ICommandParameterBuilder CreateCommentary(string comment)` Sets [ParameterDefinitionReference.Comment](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinitionReference/) for the current command input, replacing any existing comment. ### Parameters | Name | Type | Description | | --- | --- | --- | | `comment` | `String` | The comment text. | ### Returns | Type | Description | | --- | --- | | `ICommandParameterBuilder` | The current instance of [ICommandParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandParameterBuilder/). | `ICommandParameterBuilder AppendCommentary(string comment)` Appends `comment` to [ParameterDefinitionReference.Comment](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinitionReference/), inserting a line feed first when the current comment is not empty. ### Parameters | Name | Type | Description | | --- | --- | --- | | `comment` | `String` | The text to append. | ### Returns | Type | Description | | --- | --- | | `ICommandParameterBuilder` | The current instance of [ICommandParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandParameterBuilder/). | `ICommandParameterBuilder DeleteCommentary()` Clears [ParameterDefinitionReference.Comment](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinitionReference/) for the current command input. ### Returns | Type | Description | | --- | --- | | `ICommandParameterBuilder` | The current instance of [ICommandParameterBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandParameterBuilder/). | [Previous ICommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ICommandBuilder/) [Next IExecutionTimeoutBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IExecutionTimeoutBuilder/)