# ModificationPolicyConstraintType (Complex Type)

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

Supertype: AbstractPolicyConstraintType
Constraint that triggers the rule on object modification, addition or deletion.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
name | property string | [0,1] | Identifier of the constraint.
description | property string | [0,1] |
presentation | container PolicyConstraintPresentationType | [0,1] | How should be triggering of this constraint presented, e.
operation | property ChangeTypeType | [0,-1] | Specifies the operation(s) for which this constraints should be triggered.
item | property ItemPathType | [0,-1] | Specification of items that must be modified (all of them) in order for this constraint be triggered.
exactPathMatch | property boolean | [0,1] | If true, item paths to be matched must match exactly.
expression | property ExpressionType | [0,1] | Expression that is used to determine the result.

- ### 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]

  - #### 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.

  - #### operation

    Flags: RAM,runtime,AVals:3

    Multiplicity: [0,-1]

    Specifies the operation(s) for which this constraints should be triggered. If not specified then it will be triggered for all operations. This defines the object operation (add/modify/delete of the entire object) or assignment operation (add/modify/delete of the given assignment).

  - #### item

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Specification of items that must be modified (all of them) in order for this constraint be triggered. If no items are specified then any modification will trigger this constraint.

  - #### exactPathMatch

    Flags: RAM,runtime

    Multiplicity: [0,1]

    If true, item paths to be matched must match exactly. E.g. if "inducement" is specified as an item to be matched, then only object modifications having "inducement" in the path (i.e. whole inducement being added/deleted/replaced) would match. This is applicable only for modification operations. For add and delete operations the value of this flag is ignored.

  - #### expression

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Expression that is used to determine the result. It is evaluated in addition to all the other conditions, and must have a value of true in order for constraint to be triggered.