# 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] |
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.
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.
specialItem | property SpecialItemSpecificationType | [0,-1] | Specification of (special) 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.
scope | property AssignmentModificationPolicyConstraintScopeType | [0,1] | Scope of assignment policy constraint application.

- ### Items

  - #### name

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    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]

    Display order:

  - #### documentation

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    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]

    Display order:

    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]

    Display order:

    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]

    Display order:

    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. The item paths should not contain container value IDs. The values are considered along with the values of "specialItem".

  - #### specialItem

    Flags: RAM,runtime,AVals:4

    Multiplicity: [0,-1]

    Display order:

    Specification of (special) 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. The values are considered along with the values of "item". Currently supported only for MODIFY deltas.

  - #### exactPathMatch

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    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]

    Display order:

    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]

    Display order:

    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.

  - #### scope

    Flags: RAM,runtime,AVals:3

    Multiplicity: [0,1]

    Display order:

    Scope of assignment policy constraint application. It specifies whether the constraint should be triggered when assigned directly, indirectly or in both cases.