# HasAssignmentPolicyConstraintType (Complex Type)

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

Supertype: AbstractPolicyConstraintType
Constraint that triggers when the focus has given assignment(s).

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.
targetRef | reference ObjectReferenceType | [1,1] | Assignment target to be matched.
direct | property boolean | [0,1] | If true the assignment to given target must be direct.
enabled | property boolean | [0,1] | If true the assignment to given target must be effectively enabled.
relation | property QName | [0,-1] | This policy 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]

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

  - #### targetRef

    Flags: RAM

    Multiplicity: [1,1]

    Assignment target to be matched. Might be dynamic (with a resolution time of "run"), just like the one in exclusion constraint. If a relation here is specified, it takes precedence over "relation" item in this constraint. If script expression is used in the filter, following variables are available: - `policyRule`: currently evaluated policy rule (type EvaluatedPolicyRule)

  - #### direct

    Flags: RAM,runtime

    Multiplicity: [0,1]

    If true the assignment to given target must be direct. If false, it must be indirect (induced). If not specified, it might be either direct or indirect. But in all cases it must be of the order one, i.e. metaroles are not considered.

  - #### enabled

    Flags: RAM,runtime

    Multiplicity: [0,1]

    If true the assignment to given target must be effectively enabled. If false, it must be present but effectively disabled (beware, the behavior of midPoint for disabled indirect assignments may be fragile). If not specified, the effective status is not considered.

  - #### relation

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    This policy only applies to relations of the specified type. (Provided that the relation is not set in the targetRef.) The value of this element is compared to the relation of the targetRef relation in the assignment/inducement. 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 or in the targetRef element.