# SynchronizationReactionType (Complex Type)

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

Reaction to synchronization situation or situations. There is a list of situations to which this entry pertains. The list is further optionally qualified by channel(s) and a condition. Only if a situation (any of), a channel (any of), and the condition all match, then the action(s) are applied. The list of reactions is evaluated in the (optional) order given. Entries without explicit order are evaluated last.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
name | property string | [0,1] |
description | property string | [0,1] | Free-form textual description of the object.
documentation | property string | [0,1] | Technical documentation for a particular object or construct.
lifecycleState | property string | [0,1] | Lifecycle state of the object.
order | property int | [0,1] | Order in which this reaction is to be evaluated.
situation | property SynchronizationSituationType | [1,-1] | Defines a particular synchronization situation or situations.
channel | property anyURI | [0,-1] | If present, limits the applicability of this reaction to given synchronization channel or channels.
condition | property ExpressionType | [0,1] | Expression that is evaluated to check whether this reaction is applicable in a particular context.
actions | container SynchronizationActionsType | [0,1] | Action or actions to be executed in the given situation.

- ### Items

  - #### name

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Free-form textual description of the object. It is supposed to describe the object or a construct that it is attached to.

    This information may be presented to midPoint users, even to ordinary end users. For example role description may be presented to users when they are selecting roles to request. Therefore the description should be written in a language that the users can understand.

    Description is assumed to be a plan, non-formatted text. Amount of white space is considered insignificant. E.g. leading and trailing white space may be skipped, multiple spaces can be collapsed to one and so on.

  - #### documentation

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Technical documentation for a particular object or construct.

    The purpose of this element is to document system configuration and behavior. The documentation will not be presented to end users. In fact, it will probably not be presented at all in midPoint user interface. This documentation element is supposed to be a part of the technical documentation of midPoint deployment. The tools than generate deployment configuration will look for these elements and combine them to compiled documentation document.

    AsciiDoc formatting is assumed for this element. Any leading or trailing whitespace is skipped. Indentation equivalent to he indentation of the first non-blank line of text is also skipped.

  - #### lifecycleState

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Lifecycle state of the object. This property defines whether the object represents a draft, proposed definition, whether it is active, deprecated, and so on.

    There are few pre-defined lifecycle states. But custom lifecycle states may also be defined. Pre-defined lifecycle states are:

    - draft: Definition of the new object in progress. The object is NOT active. The definition may change at any moment. It is not ready yet.
    - proposed: Definition of a new object is ready for use, but there is still a review process to be applied (e.g. approval). The object is NOT active. However the definition should not change in this state.
    - active: Active and working definition. Ready to be used without any unusual limitations.
    - deprecated: Active definition which is being phased out. The definition is still fully operational. But it should not be used for new assignments. E.g. it should not be requested, it should not be approved, etc.
    - archived: Inactive historical definition. It is no longer used. It is maintained only for historical, auditing and sentimental reasons.
    - failed: Unexpected error has occurred during object lifecycle. Result of that event is that the object is rendered inactive. The situation cannot be automatically remedied. Manual action is needed.
    TODO adapt this definition regarding the "simulations" feature.

  - #### order

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Order in which this reaction is to be evaluated. (Related to other reactions.) Smaller numbers go first. Entries with no order go last.

  - #### situation

    Flags: RAM,runtime,AVals:5

    Multiplicity: [1,-1]

    Defines a particular synchronization situation or situations.

  - #### channel

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    If present, limits the applicability of this reaction to given synchronization channel or channels.

  - #### condition

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Expression that is evaluated to check whether this reaction is applicable in a particular context. It is assumed to return a boolean value. If it returns 'true' then this reaction will be applied. If it returns 'false' it will be ignored.

  - #### actions

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Action or actions to be executed in the given situation.