# 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] |
presentation | container PolicyConstraintPresentationType | [0,1] | How should be triggering of this constraint presented, e.
enforcement | property PolicyConstraintEnforcementType | [0,1] |
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]

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

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

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