# ConstructionType (Complex Type)

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

Supertype: AbstractConstructionType
Projection construction. This structure defines how a projection (e.g. account) should be constructed.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
description | property string | [0,1] |
strength | property ConstructionStrengthType | [0,1] | Strength of the construction defines how aggressively will the construction be applied.
extension | container ExtensionType | [0,1] | Place for non-standard object properties.
resourceRef | reference ObjectReferenceType | [0,1] | Resource that should host the implied resource object.
kind | property ShadowKindType | [0,1] | Kind of resource object that should be created on the resource.
intent | property string | [0,1] | Intent of resource object that should be created on the resource.
attribute | container ResourceAttributeDefinitionType | [0,-1] | Resource object attribute values implied by this role.
association | container ResourceObjectAssociationType | [0,-1] | Describes how entitlement is associated to the subject (e.
auxiliaryObjectClass | property QName | [0,-1] | The reference to additional type definitions for this object.

- ### Items

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### strength

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]

    Strength of the construction defines how aggressively will the construction be applied. Strong constructions are applied all the time (relative changes, reconciliation, ...). Weak constructions are applied only if there is another strong construction.

  - #### 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.

  - #### resourceRef

    Flags: RAM

    Multiplicity: [0,1]

    Resource that should host the implied resource object.

  - #### kind

    Flags: RAM,runtime,AVals:4

    Multiplicity: [0,1]

    Kind of resource object that should be created on the resource. This element is optional. If not specified defaults to account kind.

  - #### intent

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Intent of resource object that should be created on the resource. This must point to the a valid definition in the resource object (in schemaHandling section). This element is optional. If not specified then the definition marked as default in the resource definition should be used.

  - #### attribute

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Resource object attribute values implied by this role. When the role is assigned the attributes specified below should be assigned values specified below.

  - #### 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.

  - #### auxiliaryObjectClass

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    The reference to additional type definitions for this object. These auxiliary object classes will be added to the resource object when the construction is provisioned. The reference should point to object class definition (complex type definition in resource schema) and this definition should be marked as auxiliary.