# ObjectTemplateItemDefinitionType (Complex Type)

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

Supertype: ItemRefinedDefinitionType
TODO Description of the common item handling details, such as display name, read/write access and value and synchronization expressions. These are the parts that are common to both attributes and associations. This is supposed to be used in schemaHandling part and therefore describe the decisions of the system administrator about the way how that attribute or association is used in midPoint.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
ref | property ItemPathType | [1,1] | Path of the item or association that this definition describes.
displayName | property string | [0,1] |
help | property string | [0,1] | Help text for the displayed item.
description | property string | [0,1] |
displayOrder | property int | [0,1] |
limitations | property PropertyLimitationsType | [0,-1] | Limits the usage of the attribute, e.
matchingRule | property QName | [0,1] | Specification of a matching rule for an attribute.
valueEnumerationRef | reference ObjectReferenceType | [0,1] | Reference to an object that directly or indirectly represents possible values for this item.
tolerant | property boolean | [0,1] | When set to true, allows attribute/property values that are set outside midPoint (or outside object template mappings).
tolerantValuePattern | property string | [0,-1] | Pattern (regexp) for attribute/property value.
intolerantValuePattern | property string | [0,-1] | Pattern (regexp) for attribute/property value.
emphasized | property boolean | [0,1] | Set true for definitions that are more important than others and that should be emphasized during presentation.
deprecated | property boolean | [0,1] | This setting can be used to control the value of "deprecated" flag determined from the schema.
experimental | property boolean | [0,1] | This setting can be used to control the value of "experimental" flag determined from the schema.
validation | property FormItemValidationType | [0,1] | Validation rules for the item.
mapping | container ObjectTemplateMappingType | [0,-1] | Defines how any of the object property value should be constructed.

- ### Items

  - #### ref

    Flags: RAM,runtime

    Multiplicity: [1,1]

    Path of the item or association that this definition describes. It must point to property or the attribute in the resource schema that belongs to an object class that is being described here.

  - #### displayName

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### help

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Help text for the displayed item. Help text is usually displayed when the user clicks on help/information icon. This may be a longer text (several sentences).

    This is equivalent to "help" schema annotation and can be used to override it.

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### displayOrder

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### limitations

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Limits the usage of the attribute, e.g. whether it may is read-only, read write or entirely ignored. The limitations may apply to several system layers, therefore this element may be repeated several times. But it there may be only one instance for each layer.

  - #### matchingRule

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Specification of a matching rule for an attribute. Matching rule is used to compare values of the attribute. The default rule is a literal comparison which is good for most attribute types and for case-sensitive strings. An alternative matching rule may be specified e.g. for case insensitive strings.

  - #### valueEnumerationRef

    Flags: RAM

    Multiplicity: [0,1]

    Reference to an object that directly or indirectly represents possible values for this item. We do not define here what exactly the object has to be. It can be a lookup table, script that dynamically produces the values or anything similar. The object must produce the values of the correct type for this item otherwise an error occurs.

  - #### tolerant

    Flags: RAM,runtime

    Multiplicity: [0,1]

    When set to true, allows attribute/property values that are set outside midPoint (or outside object template mappings). The synchronization will only remove values that are assigned by midPoint (or template mappings), but will tolerate extra native values. When set to false, extra values are not tolerated. When midPoint detects such value (e.g. during reconciliation) it will remove it. Support of non-tolerant items in object templates is currently EXPERIMENTAL.

  - #### tolerantValuePattern

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Pattern (regexp) for attribute/property value. If the value matches the pattern such value is tolerated. It is left in the attribute/property even if it is not derived from any mapping. This element is currently supported only in resource object type definitions. Support in object templates is planned.

  - #### intolerantValuePattern

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Pattern (regexp) for attribute/property value. If the value matches the pattern such value is NOT tolerated. The value must be derived from a mapping or it will be removed. This element is currently supported only in resource object type definitions. Support in object templates is planned.

  - #### emphasized

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Set true for definitions that are more important than others and that should be emphasized during presentation. E.g. the emphasized definitions will always be displayed in the user interfaces (even if they are empty), they will always be included in the dumps, etc.

  - #### deprecated

    Flags: RAM,runtime

    Multiplicity: [0,1]

    This setting can be used to control the value of "deprecated" flag determined from the schema. I.e. it can be used to override the value taken from the schema. E.g. it can be used to "unmark" a deprecated item, so it will behave as normal, non-deprecated item. This may be used as a temporary measure during the period of migrating the configuration to non-deprecated setting.

  - #### experimental

    Flags: RAM,runtime

    Multiplicity: [0,1]

    This setting can be used to control the value of "experimental" flag determined from the schema. I.e. it can be used to override the value taken from the schema. E.g. it can be used to "unmark" an experimental item, so it will behave as normal, non-experimental item. USE WITH CARE. Experimental items are marked as experimental for a reason. When those items are "unmarked", they will not get any less experimental.

  - #### validation

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Validation rules for the item. Validation rule may be applied in the user interface. But server-side validation may also be applied during the computation process.

  - #### mapping

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Defines how any of the object property value should be constructed. It can contain fixed value or an expression. In case an expression is used following variables should be set: $user - The user object being created. $account - (optional) the account from which was the user created (if present)