**Source URL:** https://limited.veevavault.dev/medical/mdl/component-types/objectlifecycle

**Class:** `metadata`

Definition of the lifecycle of an `Object`.

Object lifecycles are sequences of states (*In Review*, *Approved*, etc.) that an object record can go through during its life. Learn about [Object Lifecycles](https://platform.veevavault.help/en/lr/30683).

| Attribute | Metadata | Description |
| --- | --- | --- |
| `state_labels` | Type: String Max length: 255 Multi-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: Component Multi-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: String **Required** Max length: 40 | UI-friendly string in the Vault's base language. |
| `active` | Type: Boolean **Required** | Indicates whether the component is active. |
| `starting_state` | Type: Component | The `name` of the starting state of an object lifecycle. |
| `description` | Type: String Max length: 255 | Additional information to describe the lifecycle. |

### Objectlifecyclestate

| Attribute | Metadata | Description |
| --- | --- | --- |
| `label` | Type: String **Required** Max length: 40 | UI-friendly string in the Vault's base language. |
| `active` | Type: Boolean **Required** | Indicates whether the component is active. |
| `record_inactive` | Type: Boolean | Deprecated - replaced by `record_status` |
| `record_status` | Type: Enum Allowed values: active\_\_v; inactive\_\_v; in\_migration\_\_v; archived\_\_v | Indicates the status of a record while in this state. |
| `description` | Type: String Max 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

| Attribute | Metadata | Description |
| --- | --- | --- |
| `rule` | Type: XMLString **Required** Max 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

| Attribute | Metadata | Description |
| --- | --- | --- |
| `rule` | Type: XMLString **Required** Max 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

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

### Objectlifecycleevent

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

### Objectlifecyclerole

| Attribute | Metadata | Description |
| --- | --- | --- |
| `active` | Type: Boolean **Required** | Indicates whether the component is active. |
| `application_role` | Type: String **Required** Max length: 60 | The `name__v` field value of the `application_role__v` record this role corresponds to. (Prefixed with `Applicationrole.`) |
| `permissions` | Type: Enum Multi-value Allowed values: Read; Edit; Delete | List of permissions assigned to the object role. Note that: Read is always present; Edit is always present if Delete is present |

### Objectlifecyclepermission

| Attribute | Metadata | Description |
| --- | --- | --- |
| `states` | Type: Component **Required** Multi-value | Lists the object lifecycle states in which the permission applies. |
| `role` | Type: Component **Required** | The role to which this permission applies. |
| `permission` | Type: Enum **Required** Allowed values: Read; Edit; Delete | The permission to apply. |

### Supported Operations

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

**Notes:**

*   **Create, Recreate, Alter:** 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.
*   **Alter:** MDL Operation may not be supported for some multi-value attributes.

---

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