# PolicyStatementType (Complex Type)

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

Statement specifying explicit include (marking) of object or exclude from specified policy.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
markRef | reference ObjectReferenceType | [0,1] | Object mark representing policy, which is APPLIED or EXCLUDED
type | property PolicyStatementTypeType | [1,1] | Type of policy statement.
metadata | container MetadataType | [0,1] | Meta-data about data creation, modification, etc.

- ### Items

  - #### markRef

    Flags: RAM

    Multiplicity: [0,1]

    Object mark representing policy, which is APPLIED or EXCLUDED

  - #### type

    Flags: RAM,runtime,AVals:2

    Multiplicity: [1,1]

    Type of policy statement. apply: mark is applied to object explicitly. exclude: mark is not applied to object even if it matches policy specific for mark.

  - #### metadata

    Flags: RAM,runtime,oper

    Multiplicity: [0,1]

    Meta-data about data creation, modification, etc. It may apply to objects but also parts of the object (e.g. assignments).

    Meta-data only apply to successful operations. That is obvious for create, but it also applies to modify. For obvious reasons there are no metadata about delete. We keep no metadata about reading. That would be a huge performance hit.

    Meta-data only describe the last operation of its kind. E.g. there is a record of last modification, last approval, etc. There is no history. The last operation overwrites data about the previous operation.

    These data are informational only. They should not be used for security purposes (use auditing subsystem for that). But presence of metadata simplifies system administration and may provide some basic information "at the glance" which may be later confirmed by the audit logs.

    Meta-data are also supposed to be searchable. Therefore they may be used to quickly find "candidate" objects for a closer examination.