# ObjectPolicyConfigurationType (Complex Type)

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

Supertype: ArchetypePolicyType
Definition of policy for a specific object type. It defines object template and similar settings that apply to the object alone. This policy settings apply to the object internal structure without regard to other objects.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
display | container DisplayType | [0,1] | Display properties of the archetyped objects.
objectTemplateRef | reference ObjectReferenceType | [0,1] | Reference to the template.
propertyConstraint | container PropertyConstraintType | [0,-1] | Definition of a property constraints.
conflictResolution | container ConflictResolutionType | [0,1] | How to resolve write-write conflicts on focal objects, i.
lifecycleStateModel | container LifecycleStateModelType | [0,1] | Specification of lifecycle states and state transitions.
applicablePolicies | container ApplicablePoliciesType | [0,1] | Specification of policies that are applicable to this object type.
expressionProfile | property string | [0,1] | Specifies a profile for expression execution.
adminGuiConfiguration | container ArchetypeAdminGuiConfigurationType | [0,1] | Definition of GUI-related configuration for the archetyped objects.
assignmentRelationApproach | property AssignmentRelationApproachType | [0,1] | Configures overall assignmentRelation approach for archetypes objects.
type | property QName | [0,1] | Specification of the type (class) of the object to apply this definition to.
subtype | property string | [0,1] | Specification of the subtype of the object to apply this template to.

- ### Items

  - #### display

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display properties of the archetyped objects.

  - #### objectTemplateRef

    Flags: RAM

    Multiplicity: [0,1]

    Reference to the template.

  - #### propertyConstraint

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Definition of a property constraints.

  - #### conflictResolution

    Flags: RAM,runtime

    Multiplicity: [0,1]

    How to resolve write-write conflicts on focal objects, i.e. if two threads modify given objects at once.

  - #### lifecycleStateModel

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Specification of lifecycle states and state transitions.

  - #### applicablePolicies

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Specification of policies that are applicable to this object type. This should refer to all applicable policies, not just those that are applied. The purpose is primarily for presentation purposes, so the user interface can present choice of all policies to the user.

  - #### expressionProfile

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Specifies a profile for expression execution. The profile mostly specifies restrictions for execution of expressions and scripts. This applies to expressions in archetyped objects. Please note that no expression execution restriction means that all evaluators and scripting languages are allowed and there are no restrictions for evaluation of expressions.

    Implementation note: implementation of those restriction in midPoint 4.0 is very limited. There is no guarantee that this will work for archetypes at all. The only supported option in 4.0 is application of the restrictions to reports (ReportType) and only if it is configured in global system configuration.

  - #### adminGuiConfiguration

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Definition of GUI-related configuration for the archetyped objects. This is using principle similar to adminGuiConfiguration in system configuraiton.

  - #### assignmentRelationApproach

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]

    Configures overall assignmentRelation approach for archetypes objects. This essentially means that is allows or disables the use of "generic" assignments for archetyped objects. If the generic assignments are allowed (open approach), the archetyped object can be a holder of any assignment that targets any assignable type with any relation (Note: this is still subject to authorizations). Which essentially means that if this property is set to "open" then GUI will show "assign" button that can be used at add any assignment type. If this property is set to "closed" then GUI will not render that button. In that case only those assignments that are explicitly allowed by assignmentRelation statements are possible.

  - #### type

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Specification of the type (class) of the object to apply this definition to.

  - #### subtype

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Specification of the subtype of the object to apply this template to. If no subtype is specified then this definition will be applied to all subtypes. The subtype is compared against the subtype property but it is also compared to the deprecated employeeType, roleType, orgType and serviceType properties.