# AssignmentPathSegmentType (Complex Type)

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

One segment in the assignment path.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
segmentOrder | property int | [0,1] | Order of this segment in the whole assignment path.
sourceRef | reference ObjectReferenceType | [0,1] |
sourceDisplayName | property PolyStringType | [0,1] |
assignment | container AssignmentType | [0,1] | Generic assignments of one object to another object.
assignmentId | property long | [0,1] |
targetRef | reference ObjectReferenceType | [0,1] |
targetDisplayName | property PolyStringType | [0,1] |
matchingOrder | property boolean | [0,1] |
isAssignment | property boolean | [0,1] |

- ### Items

  - #### segmentOrder

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Order of this segment in the whole assignment path. First segment is numbered 1.

  - #### sourceRef

    Flags: RAM

    Multiplicity: [0,1]

  - #### sourceDisplayName

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### assignment

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Generic assignments of one object to another object. This will usually be assignment of a role to a user, assignment of an organizational unit, team or whatever. It may also be used to assign role to another role, creating a role hierarchy. Assignment is an abstract concept. It can be anything that gives the "receptor" object additional access rights, privileges, capabilities or similar ability or right. But it may also constraint the object with policy, e.g. to implement separation of duties. Roles, organizations and privileges in IDM system are examples of assignments. The assignment may target either existing IDM object (such as a role) or abstract resource account that may or may not exist. In case of resource objects it is constrained to accounts, as accounts are the only resource objects that can be assigned to a user. Other resource objects (entitlements) can be assigned to accounts, but not to users. TODO: constraints

  - #### assignmentId

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### targetRef

    Flags: RAM

    Multiplicity: [0,1]

  - #### targetDisplayName

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### matchingOrder

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### isAssignment

    Flags: RAM,runtime

    Multiplicity: [0,1]