# ObjectTemplateMappingType (Complex Type)

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

Supertype: MappingType

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
name | property string | [0,1] | Short name of the mapping.
description | property string | [0,1] |
extension | container ExtensionType | [0,1] | Place for non-standard object properties.
trace | property boolean | [0,1] | Explicitly trace the execution of this mapping.
authoritative | property boolean | [0,1] | Authoritative flag controls the way how mapping is used to remove values.
exclusive | property boolean | [0,1] | Exclusive mapping may be applied only as a single mapping for a particular target property.
tolerant | property boolean | [0,1] | When set to true, allows attribute/property values that are set outside of this mapping.
strength | property MappingStrengthType | [0,1] | Strength of the mapping defines how aggressively will the mapping be applied.
channel | property anyURI | [0,-1] | Limits application of this mapping only to specific channel.
exceptChannel | property anyURI | [0,-1] | Limits application of this mapping except for channel specified.
timeFrom | property MappingTimeDeclarationType | [0,1] |
timeTo | property MappingTimeDeclarationType | [0,1] |
source | property VariableBindingDefinitionType | [0,-1] |
expression | property ExpressionType | [0,1] |
target | property VariableBindingDefinitionType | [0,1] |
condition | property ExpressionType | [0,1] |
inputFilter | property ValueFilterType | [0,1] |
outputFilter | property ValueFilterType | [0,1] |
range | property ValueSetSpecificationType | [0,1] | Specifies the range of the mapping (in mathematical sense).
evaluationPhase | property ObjectTemplateMappingEvaluationPhaseType | [0,1] |

- ### Items

  - #### name

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Short name of the mapping. Used for debugging purposes.

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### extension

    Flags: dyn,RAM,runtime

    Multiplicity: [0,1]

    Place for non-standard object properties. The elements placed here will be handled exactly like the elements in the object body. It must NOT contain standard elements.

  - #### trace

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Explicitly trace the execution of this mapping. The execution will be logged on INFO level if this property is set to true to make sure that it will be visible in the logs.

  - #### authoritative

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Authoritative flag controls the way how mapping is used to remove values. It does not influence adding of values. If mapping is authoritative then it will add value and also remove the value. If mapping is not authoritative it will only add the value.

    Non-authoritative mappings are used if there are several possible sources for a particular value. E.g. the value may be added by the mapping and also added directly on the resource by system administrator. In this case midPoint cannot remove the value when the assignment (or role) containing the mapping is removed because the value might have been added manually. Other settings, such as tolerance may apply on attribute level.

    The default value for authoritative flag is true.

  - #### exclusive

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Exclusive mapping may be applied only as a single mapping for a particular target property. If an exclusive mapping is applied together with any other mapping it results in an error.

    The default value for exclusive flag is false.

  - #### tolerant

    Flags: RAM,runtime

    Multiplicity: [0,1]

    When set to true, allows attribute/property values that are set outside of this mapping. I. e. it allows other values than those set by this mapping.

    The default value for tolerant setting depends on when the mapping is used. It is assumed to be false for all mappings. However, for outbound mappings the real behavior of reconciliation is determined by the tolerance of the attribute and not tolerance of the mapping (see below). This default setting was chosen to maintain behaviour which is compatible with previous midPoint versions.

    Note: Mapping tolerance is an interim feature. In fact it is mostly redundant. The same behavior can be achieved by using mapping range. However, mapping range is not fully supported in all mappings and all situations. Therefore mapping tolerance can be used in the meantime to achieve the desired functionality. However, mapping tolerance will get deprecated in the midPoint version in which mapping range achieve full functionality. Therefore it is recommended to use mapping tolerance only as a last resort. It is recommended to use mapping range instead of tolerance if the range can be used.

    Note: Do not confuse with tolerant setting that applies to the resource attribute (schemaHandling). If in doubt, use that other setting instead. That resource attribute tolerance is usually the right answer.

    Support for this setting is currently EXPERIMENTAL.

  - #### strength

    Flags: RAM,runtime,AVals:3

    Multiplicity: [0,1]

    Strength of the mapping defines how aggressively will the mapping be applied. The strongest mappings are applied all the time (regardless of the consequences) and the weakest mappings are applied only if nothing else can be applied.

  - #### channel

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Limits application of this mapping only to specific channel. If the channel is listed then the mapping will be applied. If it is not then it will not be applied. If no channel is specified then no limitations apply and the mapping will be applied for all channels.

  - #### exceptChannel

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Limits application of this mapping except for channel specified. If the channel is listed then the mapping will be not applied in this channel. If it is not then it will be applied. If no channel is specified then no limitations apply and the mapping will be applied for all channels.

  - #### timeFrom

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### timeTo

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### source

    Flags: RAM,runtime

    Multiplicity: [0,-1]

  - #### expression

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### target

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### condition

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### inputFilter

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### outputFilter

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### range

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Specifies the range of the mapping (in mathematical sense). I.e. this specifies the values that the mapping can produce. Range specification makes sense only for authoritative mappings. If the range is specified then the mapping will scan existing values of the target property. It will look for values that are there and that are also in the range of the mapping. If such values are not in the expression results, then such values will be removed (placed in the minus set).

    DEPRECATED. Do not use. Use the set definition in mapping target instead.

  - #### evaluationPhase

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]