**Source URL:** https://general.veevavault.dev/regulatory/mdl/component-types/objectlifecycle.md

**Class: ** `metadata`

Definition of the lifecycle of an `Object`.

Object lifecycles are sequences of states (<em>In Review</em>, <em>Approved</em>, etc.) that an object record can go through during its life. Learn about <a href="https://platform.veevavault.help/en/lr/30683" target="_blank">Object Lifecycles</a>.

| Attribute | Metadata | Description |
| --- | --- | --- |
| state_labels | Type: StringMax length: 255Multi-value | Lists lifecycle state labels (by name) defined for this lifecycle. The order defined here must correspond to the order in labeled_states. Deprecated - replaced by Lifecyclestatetypeassociation. |
| labeled_states | Type: ComponentMulti-value | Lists “special states” (by name). The order of the state in this list dictates which state from state_labels is assigned to the specific special state. Deprecated - replaced by Lifecyclestatetypeassociation. |
| label | Type: StringRequiredMax length: 40 | UI-friendly string in the Vault's base language. |
| active | Type: BooleanRequired | Indicates whether the component is active. |
| starting_state | Type: Component | The name of the starting state of an object lifecycle. |
| description | Type: StringMax length: 255 | Additional information to describe the lifecycle. |

### Objectlifecyclestate {#objectlifecyclestate}

| Attribute | Metadata | Description |
| --- | --- | --- |
| label | Type: StringRequiredMax length: 40 | UI-friendly string in the Vault's base language. |
| active | Type: BooleanRequired | Indicates whether the component is active. |
| record_inactive | Type: Boolean | Deprecated - replaced by record_status |
| record_status | Type: EnumAllowed values:active__vinactive__vin_migration__varchived__v | Indicates the status of a record while in this state. |
| description | Type: StringMax length: 255 | Additional information to describe the lifecycle. |
| cancel_state | Type: Component | Indicates the state records enter when their object workflow is cancelled. |
| skip_cancel_state | Type: Boolean | If set to true, records stay in their current state when their workflow is cancelled. If set to false or omitted, records enter the state defined by cancel_state when the workflow is cancelled. |
| skip_entry_actions_cancel_state | Type: Boolean | If set to true, Vault does not execute entry actions when the workflow is cancelled. If set to false or omitted, entry actions execute as usual. |

### Objectlifecyclestateentrycriterion {#objectlifecyclestateentrycriterion}

| Attribute | Metadata | Description |
| --- | --- | --- |
| rule | Type: XMLStringRequiredMax length: 32000 | The defined rules and conditions for entry criteria, entry actions, or user actions. |
| order | Type: Number | The relative order in which the action displays. For example, order 1 will display before order 2. |

### Objectlifecyclestateentryaction {#objectlifecyclestateentryaction}

| Attribute | Metadata | Description |
| --- | --- | --- |
| rule | Type: XMLStringRequiredMax length: 32000 | The defined rules and conditions for entry criteria, entry actions, or user actions. |
| order | Type: Number | The relative order in which the action displays. For example, order 1 will display before order 2. |

### Objectlifecyclestateuseraction {#objectlifecyclestateuseraction}

| Attribute | Metadata | Description |
| --- | --- | --- |
| label | Type: StringRequiredMax length: 60 | UI-friendly string in the Vault’s base language. |
| rule | Type: XMLStringRequiredMax length: 32000 | The defined rules and conditions for entry criteria, entry actions, or user actions. |
| order | Type: NumberRequired | The relative order in which the action displays. For example, order 1 will display before order 2. |
| keyboard_shortcut | Type: StringMax length: 1500Multi-value | A comma-separated list of keyboard event codes that users can press to execute the action. For example, Meta, Shift, KeyJ. |

### Objectlifecycleevent {#objectlifecycleevent}

| Attribute | Metadata | Description |
| --- | --- | --- |
| rule | Type: XMLStringRequiredMax length: 32000 | The defined rules and conditions for entry criteria, entry actions, or user actions. |
| event | Type: StringRequiredMax length: 1500 | The object lifecycle event. For example, create_record. |
| order | Type: NumberRequired | The relative order in which the action displays. For example, order 1 will display before order 2. |

### Objectlifecyclerole {#objectlifecyclerole}

| Attribute | Metadata | Description |
| --- | --- | --- |
| active | Type: BooleanRequired | Indicates whether the component is active. |
| application_role | Type: StringRequiredMax length: 60 | The name__v field value of the application_role__v record this role corresponds to. (Prefixed with Applicationrole.) |
| permissions | Type: EnumMulti-valueAllowed values:ReadEditDelete | List of permissions assigned to the object role. Note that:  Read is always present Edit is always present if Delete is present |

### Objectlifecyclepermission {#objectlifecyclepermission}

| Attribute | Metadata | Description |
| --- | --- | --- |
| states | Type: ComponentRequiredMulti-value | Lists the object lifecycle states in which the permission applies. |
| role | Type: ComponentRequired | The role to which this permission applies. |
| permission | Type: EnumRequiredAllowed values:ReadEditDelete | The permission to apply. |

### Supported Operations {#supported-operations}

| Operation | Support |
| --- | --- |
| Create | Yes* |
| Recreate | Yes* |
| Alter | Yes* |
| Drop | Yes |
| Rename | Yes |
| Describe | Yes |
| Generate Recreate | Yes |
| Queryable | No |
**Notes:**

<ul style="padding-left:1.5em;margin-top:0.5rem"><li>**Create, Recreate, Alter:** <span>MDL Operation is supported, but the Component Type contains field(s) that use proprietary XML. Direct modification of the XML is not supported or recommended. Instead, creating and/or updating the component is better suited through the Admin UI.</span></li><li>**Alter:** <span>MDL Operation may not be supported for some multi-value attributes.</span></li></ul>


---

**Previous:** [Objectaction](/regulatory/mdl/component-types/objectaction)  
**Next:** [Objectlifecyclestagegroup](/regulatory/mdl/component-types/objectlifecyclestagegroup)