# ResourceObjectTypeDependencyType (Complex Type)

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

Describes a dependency of an object type on another object type. For example, a role may have two Active Directory projections: an OU and a group residing in that OU. We say that the group depends on the OU: the OU has to be provisioned first; and only after that, the group can be created. When de-provisioning, the group has to be deleted first, and the OU only after that. We call the group the "dependent object" or "depender". The OU is a "dependee". This data structure has to reside within the dependent object (depender).

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
resourceRef | reference ObjectReferenceType | [0,1] | A resource this object type depends on.
kind | property ShadowKindType | [0,1] | The "kind" part of the target object type identification.
intent | property string | [0,1] | The "intent" part of the target object type identification.
strictness | property ResourceObjectTypeDependencyStrictnessType | [0,1] |
order | property int | [0,1] | Specifies the order in which the dependency is applied.
forceLoad | property boolean | [0,1] | Specifies if the shadow on which we depend has to be loaded.
dataBinding | property ResourceObjectTypeDependencyDataBindingKindType | [0,1] | Are the attributes of the dependent object bound to the dependee attributes in any way? For example, in AD, if the distinguished name of an OU (dependee) changes, the DNs of all dependent objects (e.

- ### Items

  - #### resourceRef

    Flags: RAM

    Multiplicity: [0,1]

    Display order:

    A resource this object type depends on. If not specified, the current resource is assumed.

  - #### kind

    Flags: RAM,runtime,AVals:4

    Multiplicity: [0,1]

    Display order:

    The "kind" part of the target object type identification. If not specified, the kind of the current object type (i.e. the dependent one) is assumed.

  - #### intent

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    The "intent" part of the target object type identification. If not specified, the default type for given kind is assumed. (See "defaultForKind" flag.)

  - #### strictness

    Flags: RAM,runtime,AVals:3

    Multiplicity: [0,1]

    Display order:

  - #### order

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    Specifies the order in which the dependency is applied. Lower-order dependencies are applied before higher-order dependencies. Dependencies with the same order are applied at the same time. There must be no circular dependency formed from dependencies of the same order.

  - #### forceLoad

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    Specifies if the shadow on which we depend has to be loaded. By default, we do not force loading full dependent shadow.

  - #### dataBinding

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]

    Display order:

    Are the attributes of the dependent object bound to the dependee attributes in any way? For example, in AD, if the distinguished name of an OU (dependee) changes, the DNs of all dependent objects (e.g. groups within that OU) change as well. EXPERIMENTAL. Mainly to implement MID-8929. Maybe it will not be needed in the future.