# ApprovalPolicyActionType (Complex Type)

### Namespace: http://midpoint.evolveum.com/xml/ns/public/common/common-3

Supertype: PolicyActionType
Approval action. The operation will be suspended and the approval workflow will be started. If the workflow ends with success the operation will proceed. If the workflow ends with an error the operation will also end with an error.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
name | property string | [0,1] | Name for the action.
description | property string | [0,1] | Free-form description (e.
condition | property ExpressionType | [0,1] | When should this action be applied?
processSpecification | container WfProcessSpecificationType | [0,1] | TODO EXPERIMENTAL
compositionStrategy | container ApprovalCompositionStrategyType | [0,1] | How should be this approval policy action composed with other ones that might be related to the same item (object or assignment)?
approvalDisplayName | property LocalizableMessageTemplateType | [0,1] | Display name for this approval definition.
approverRelation | property QName | [0,-1] | What relation(s) to use when determining approvers? E.
approverRef | reference ObjectReferenceType | [0,-1] | Direct enumeration of the approvers to be used.
approverExpression | property ExpressionType | [0,-1] | Expression(s) that yield approvers to be used.
approvalSchema | container ApprovalSchemaType | [0,1] | More complex (multi-stages) approval schema.
approvalProcess | property string | [0,1] | Name of custom approval process.
automaticallyApproved | property ExpressionType | [0,1] | Condition specifying when the approval is automatically granted (e.

- ### Items

  - #### name

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Name for the action. It is used for logging and other diagnostic purposes.

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Free-form description (e.g. comments about the action purpose)

  - #### condition

    Flags: RAM,runtime

    Multiplicity: [0,1]

    When should this action be applied?

  - #### processSpecification

    Flags: RAM,runtime

    Multiplicity: [0,1]

    TODO EXPERIMENTAL

  - #### compositionStrategy

    Flags: RAM,runtime

    Multiplicity: [0,1]

    How should be this approval policy action composed with other ones that might be related to the same item (object or assignment)?

  - #### approvalDisplayName

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display name for this approval definition. If not specified, the name is derived from triggered constraints (short messages).

  - #### approverRelation

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    What relation(s) to use when determining approvers? E.g. "approver", "owner", "securityApprover", and so on.

  - #### approverRef

    Flags: RAM

    Multiplicity: [0,-1]

    Direct enumeration of the approvers to be used. May be used with approverRelation and approverExpression element(s).

  - #### approverExpression

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Expression(s) that yield approvers to be used. If specified, the expression(s) are evaluated and the result is used as a set of approvers (UserType, OrgType, RoleType, or any combination of them). May be used with approverRelation and approverRef element(s).

  - #### approvalSchema

    Flags: RAM,runtime

    Multiplicity: [0,1]

    More complex (multi-stages) approval schema.

  - #### approvalProcess

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Name of custom approval process.

    THIS PROPERTY (approvalProcess) IS NOT SUPPORTED YET.

  - #### automaticallyApproved

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Condition specifying when the approval is automatically granted (e.g. "user is from Board of Directors"). This is an expression that should yield a boolean value. DEPRECATED. Use automaticallyCompleted in approval level definition.