# AssignmentModificationPolicyConstraintType (Complex Type)

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

Supertype: ModificationPolicyConstraintType
Constraint that triggers the rule when the object is assigned.

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.
enforcement | property PolicyConstraintEnforcementType | [0,1] |
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.
relation | property QName | [0,-1] | This constraint only applies to relations of the specified type.

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

  - #### enforcement

    Flags: RAM,runtime,AVals:3

    Multiplicity: [0,1]

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

  - #### relation

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    This constraint only applies to relations of the specified type. The value of this element is compared to the relation of the targetRef relation in the assignment. If not specified then this policy only applies to the null (default) relation. If all relations need to be affected by this policy then the special value of "any" should be specified in this element.