# MappingSpecificationType (Complex Type)

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

Specification of a mapping, typically used to identify the mapping that provided a particular focus value. Note that we often are interested not only in a given mapping as such (as a piece of configuration), but in the execution of the mapping in a specific context, yielding a particular value. Some examples: 1. Execution of a mapping defined in a resource template inherited by multiple resources, or in an object type inherited by multiple specific object types. The provenance metadata attached to values produced by this mapping should point not only to the mapping as such, but to specific context in which the mapping was executed: specific resource and/or specific object type. Otherwise (with a default provenance-based mapping ranges), the values originating in individual executions of the mapping, would get overwritten by their siblings. Said in other words, each mapping execution should have its own range. 2. Execution of a mapping against multiple shadows (in a multi-accounts resource). Again, by default, each of the shadows - differentiated by shadow tag values - should have its own mapping range.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
assignmentId | property string | [0,1] |
definitionObjectRef | reference ObjectReferenceType | [0,1] | Object containing the mapping (that provided the particular value).
objectType | container ResourceObjectTypeIdentificationType | [0,1] | Object type (like account/default) under which the mapping is executed.
associationType | property QName | [0,1] | Name of the association type (like "ri:membership") in which this mapping is defined and evaluated.
tag | property string | [0,1] | The value of the tag for the shadow against which this mapping was executed.
mappingName | property string | [0,1] | Name of the mapping (that provided the value).

- ### Items

  - #### assignmentId

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### definitionObjectRef

    Flags: RAM

    Multiplicity: [0,1]

    Object containing the mapping (that provided the particular value). When the mapping is related to a resource that uses a resource template, i.e., that has a super-resource, the actual (expanded, i.e., child) resource OID is provided here, even if the mapping physically resides in the super-resource. See the description of this data type.

  - #### objectType

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Object type (like account/default) under which the mapping is executed. This is necessary to avoid requiring mapping name uniqueness across the whole resource, but also to ensure working of mappings (1) inherited from the super-type to subtypes, (2) applied to multiple object types (like those in association types). Each execution of such a mapping should have its own target range. See the description of this data type. Currently provided for inbound mappings.

  - #### associationType

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Name of the association type (like "ri:membership") in which this mapping is defined and evaluated. The presence of this property limits the required scope of uniqueness of inbound mapping names: it is sufficient for them to be unique within given association type. Currently provided for inbound mappings.

  - #### tag

    Flags: RAM,runtime

    Multiplicity: [0,1]

    The value of the tag for the shadow against which this mapping was executed. Currently provided for inbound mappings.

  - #### mappingName

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Name of the mapping (that provided the value).