# StatePolicyConstraintType (Complex Type)

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

Supertype: AbstractPolicyConstraintType
A constraint that triggers when an object or assignment is in a given state. If both filter and expressions are specified, both must be true in order for constraint to be triggered.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
name | property string | [0,1] | Identifier of the constraint.
description | property string | [0,1] |
documentation | property string | [0,1] | Technical documentation for a particular object or construct.
presentation | container PolicyConstraintPresentationType | [0,1] | How should be triggering of this constraint presented, e.
filter | property SearchFilterType | [0,1] | Filter that is to be used to determine the state.
expression | property ExpressionType | [0,1] | Expression that is to be used to determine the state.
messageExpression | property ExpressionType | [0,1] | Expression that is to be used to determine the state: if state matches it should return LocalizableMessageType to be used (both as normal and short messages).
executeScript | property ExecuteScriptType | [0,1] | Scripting expression (bulk action) to be used to determine the state.

- ### Items

  - #### name

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Identifier of the constraint. It is used when midPoint needs to refer to a specific constraint, e.g. in order to record exception. This element is formally specified as optional, mostly due to the compatibility reasons. But it has to be provided in order for some functionality to work correctly.

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### documentation

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Technical documentation for a particular object or construct.

    The purpose of this element is to document system configuration and behavior. The documentation will not be presented to end users. In fact, it will probably not be presented at all in midPoint user interface. This documentation element is supposed to be a part of the technical documentation of midPoint deployment. The tools than generate deployment configuration will look for these elements and combine them to compiled documentation document.

    AsciiDoc formatting is assumed for this element. Any leading or trailing whitespace is skipped. Indentation equivalent to he indentation of the first non-blank line of text is also skipped.

  - #### presentation

    Flags: RAM,runtime

    Multiplicity: [0,1]

    How should be triggering of this constraint presented, e.g. in enforcement messages, in approvals, in certification, in notifications, etc.

  - #### filter

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Filter that is to be used to determine the state. Mutually exclusive with expression, messageExpression, and executeScript.

  - #### expression

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Expression that is to be used to determine the state. Mutually exclusive with messageExpression, filter, and executeScript.

  - #### messageExpression

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Expression that is to be used to determine the state: if state matches it should return LocalizableMessageType to be used (both as normal and short messages). Mutually exclusive with message, filter, and executeScript. Probably will change in the future.

  - #### executeScript

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Scripting expression (bulk action) to be used to determine the state. Mutually exclusive with filter, expression and messageExpression.