# ResourceObjectTypeDefinitionType (Complex Type)

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

Defines a type from the resource schema (object class) that can be used for creating accounts, entitlements and possible other concepts. This is abstract supertype for other types.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
kind | property ShadowKindType | [0,1] |
intent | property string | [0,1] |
displayName | property string | [0,1] |
description | property string | [0,1] |
default | property boolean | [0,1] |
objectClass | property QName | [1,1] |
auxiliaryObjectClass | property QName | [0,-1] |
auxiliaryObjectClassMappings | container ResourceBidirectionalMappingAndDefinitionType | [0,1] | Outbound/inbound mappings for auxiliary object classes.
multiplicity | container ResourceObjectMultiplicityType | [0,1] | TODO
baseContext | container ResourceObjectReferenceType | [0,1] | The definition of base context (resource object container).
searchHierarchyScope | property SearchHierarchyScopeType | [0,1] | Definition of search hierarchy scope.
attribute | container ResourceAttributeDefinitionType | [0,-1] | Specification of handling of an account attribute.
dependency | container ResourceObjectTypeDependencyType | [0,-1] |
association | container ResourceObjectAssociationType | [0,-1] | Describes how entitlement is associated to the subject (e.
volatility | property ResourceObjectVolatilityType | [0,1] |
iteration | property IterationSpecificationType | [0,1] |
protected | property ResourceObjectPatternType | [0,-1] |
activation | container ResourceActivationDefinitionType | [0,1] | Definition of activation handling for this account type.
credentials | property ResourceCredentialsDefinitionType | [0,1] |
securityPolicyRef | reference ObjectReferenceType | [0,1] | Reference to the object type security policy settings.
lifecycle | container ResourceObjectLifecycleDefinitionType | [0,1] | Definition of resource object lifecycle handling.
configuredCapabilities | container CapabilityCollectionType | [0,1] | The configured capabilities of the resource specific to this object type.
projection | container ProjectionPolicyType | [0,1] | Object type related account synchronization settings.

- ### Items

  - #### kind

    Flags: RAM,runtime,AVals:4

    Multiplicity: [0,1]

  - #### intent

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### displayName

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### default

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### objectClass

    Flags: RAM,runtime

    Multiplicity: [1,1]

  - #### auxiliaryObjectClass

    Flags: RAM,runtime

    Multiplicity: [0,-1]

  - #### auxiliaryObjectClassMappings

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Outbound/inbound mappings for auxiliary object classes. These can be used to manipulate auxiliary object classes beyond the simple capabilities provided by the auxiliaryObjectClass property.

    NOTE: outbound mapping for auxiliary object classes is not yet supported.

    If tolerant flag is set to true then midPoint will tolerate existing auxiliary object classes on resource objects. MidPoint will add/remove auxiliary object classes only if there is an explicit operation for that (e.g. assign/unassign of role with auxiliary object class definition). If tolerant flag set to false then midPoint will strictly synchronize auxiliary object classes of resource objects with the definition given in midPoint configuration. This is the default behavior.

    NOTE: the "tolerant" behavior is disabled by default for auxiliary object classes. This is different for most other midPoint definitions where tolerant behavior is enabled by default. This inconsistency has historic (compatibility) reasons. But having auxiliary object classes non-tolerant also makes a lot of sense in usual situations.

  - #### multiplicity

    Flags: RAM,runtime

    Multiplicity: [0,1]

    TODO

  - #### baseContext

    Flags: RAM,runtime

    Multiplicity: [0,1]

    The definition of base context (resource object container). This object will be used as a base for searches for objects of this type. Usually only the objects that are hierarchically below the baseContext are returned by such a search. E.g. this is used to specify LDAP organizationalUnit that contains users or groups of particular type.

  - #### searchHierarchyScope

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]

    Definition of search hierarchy scope. It specifies how "deep" the search should go into the object hierarchy. It is only applicable to resources that support hierarchical organization of objects (e.g. LDAP resources).

  - #### attribute

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Specification of handling of an account attribute. This overrides annotations in the resource schema.

  - #### dependency

    Flags: RAM,runtime

    Multiplicity: [0,-1]

  - #### association

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Describes how entitlement is associated to the subject (e.g. account or other entitlement). Description of the entitlement handling details, such as display name, read/write access and so on. This is supposed to be used in schemaHandling part and in assignments/inducements and therefore it describes the decisions of the system administrator about the way how entitlements are used in midPoint.

  - #### volatility

    Flags: RAM,runtime,AVals:3

    Multiplicity: [0,1]

  - #### iteration

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### protected

    Flags: RAM,runtime

    Multiplicity: [0,-1]

  - #### activation

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Definition of activation handling for this account type.

  - #### credentials

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### securityPolicyRef

    Flags: RAM

    Multiplicity: [0,1]

    Reference to the object type security policy settings.

  - #### lifecycle

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Definition of resource object lifecycle handling. It defines how the initial lifecycle state is determined, constraints for lifecycle transitions, etc.

  - #### configuredCapabilities

    Flags: dyn,RAM,runtime

    Multiplicity: [0,1]

    The configured capabilities of the resource specific to this object type. This part contains "tweaks" of the native capabilities. Some of the native capabilities may be turned off, other capabilities may be simulated. If this element is not present at all then the native+configured capabilities at the resource level are applied.

  - #### projection

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Object type related account synchronization settings.