**Source URL:** https://limited.veevavault.dev/clinical/mdl/component-types/object

# Object

**Class:** `metadata`

Objects define the data model for the Vault.

Learn about [Vault Objects in Vault Help](https://platform.veevavault.help/en/lr/15298).

| Attribute | Metadata | Description |
| --- | --- | --- |
| `label` | Type: String **Required** Max length: 40 | UI-friendly string in the Vault’s base language. |
| `label_plural` | Type: String **Required** Max length: 40 | Plural of the `label` in the Vault’s base language. |
| `active` | Type: Boolean **Required** | Indicates whether the object is active. |
| `description` | Type: String Max length: 255 | Description of the object in the Vault’s base language. |
| `help_content` | Type: String Max length: 255 | Hover text to display for the (?) icon in Business Admin for this object. |
| `in_menu` | Type: Boolean **Required** | Indicates whether the object appears in the Business Admin menu. |
| `allow_attachments` | Type: Boolean | Indicates whether the object allows file attachments. |
| `enable_esignatures` | Type: Boolean | Indicates whether eSignatures are enabled on the object. |
| `audit` | Type: Boolean **Required** | Indicates whether Vault tracks object record changes in the audit logs. |
| `order` | Type: Number | Deprecated as of 22R3.1. |
| `dynamic_security` | Type: Boolean | Enables Custom Sharing Rules for the object. |
| `system_managed` | Type: Boolean | Indicates that records are managed by the system. |
| `available_lifecycles` | Type: Component | Defines the lifecycle (by name) that manages the object, e.g., `Objectlifecycle.general_lifecycle__v`. |
| `data_store` | Type: Enum Allowed values: standard; raw | Indicates the data store for this object, either `standard` or `raw`. Once set, this attribute cannot change. |
| `allow_types` | Type: Boolean | Indicates whether the object supports `Objecttype`. |
| `object_class` | Type: Enum Allowed values: base; component; userrolesetup; legalhold; usertask; esignature; checklist; section; response; responserefdoc; responsedoc; availableanswer; responseordans; responseselans; dependency; subchecklist; qualityteammember; lifecyclestagesobject; publicaccesslink; qualityoneteammember; securitytree; usertreeassignment; securedrecordtreeassignment | Classification of the object. |
| `user_role_setup_object` | Type: Component | Indicates the user role setup object when sharing settings are enabled. Specified as `Object.object_name__c`. |
| `default_obj_type` | Type: Component | The default `Objecttype`. Deprecated - As of 24R1.3, this attribute is stored in the `default_type` attribute on related `Objecttype` records. It is accepted in MDL commands, but is not returned during exports. |
| `secure_audit_trail` | Type: Boolean | If set to `true`, enables the Secure Audit Trail action for the object. |
| `secure_sharing_settings` | Type: Boolean | Enables ability to control user access to sharing settings. |
| `secure_attachments` | Type: Boolean | If set to `true`, enables Secure Object Record Attachments for object records of this type. Cannot be set to `true` if `allow_attachments` is set to `false`. |
| `prevent_record_overwrite` | Type: Boolean | If set to`true`, enables record-level locking on object records of this type. This prevents users from editing the same record simultaneously and saving over each other’s updates. |
| `multi_select` | Type: Boolean | Indicates whether a complex join related section is multi-select or not. The default value if not specified is false. |
| `triggers_disallowed` | Type: Boolean | If `true`, custom triggers cannot be added to this object. This attribute is read-only. |
| `configuration_data` | Type: Boolean | If `true`, object records are copied when creating sandbox Vaults. This attribute is read-only. Learn more about [configuration copying in Vault Help](https://platform.veevavault.help/en/lr/48988#configurationcopying). |
| `enable_merges` | Type: Boolean | Indicates if this object allows record merges. |
| `summary_fields` | Type: String Max length: 1500 Multi-value | Lists the fields to display in the Summary Info panel. For example, `field_1__c,field_2__c`. Learn more about [configuring the Summary Info panel in Vault Help](https://platform.veevavault.help/en/lr/15057#adding-summary-fields). |
| `user_tree_assignment_object_name` | Type: String Max length: 38 | The name of this security tree’s *User Tree Assignment* object, without the `_c__sys` namespace. For example, the full name of this object in the example MDL above is `user_assignment_c__sys`. This object allows you to assign a user to a node in a security tree with an assigned *Application Role*. This attribute can only be set on create. Learn more about the [*User Tree Assignment Object* in Vault Help](https://platform.veevavault.help/en/lr/828859#user-tree-assignment). |
| `security_tree_object` | Type: Component | If this object is secured with a security tree, this attribute is the name of the *Security Tree* object which is securing this object. If blank, this object is not secured by a security tree. |
| `tree_assignment_object_name` | Type: String Max length: 38 | If this object is secured with a security tree, this attribute is the name of the *Tree Assignment* object which is securing this object. A *Tree Assignment* object is an object of class `securedrecordtreeassignment`. If blank, this object is not secured by a security tree. Learn more about [*Secured Record Tree Assignment* in Vault Help](https://platform.veevavault.help/en/lr/828859#secured-record-tree-assignment). |
| `single_user_tree_assignment` | Type: Boolean | A Boolean value indicating if this security tree is configured to *Restrict Users to a Single Node Assignment*. If omitted on create, defaults to `false` and users are not restricted to a single node assignment. Learn more about [single node assignment in Vault Help](https://platform.veevavault.help/en/lr/828859#single-user-tree-assignment). |
| `user_reference_assignment` | Type: String Max length: 1500 | The user reference field associated with this object. This field allows the object to automatically assign records to a security tree based on an existing static user assignment. For example, when you create a record on a secured object, setting this attribute automatically assigns the object record to the selected user's node. Learn more about [*User Reference Assignment* in Vault Help](https://platform.veevavault.help/en/lr/828859#user-reference-assignment). |
| `secure_copy_record` | Type: Boolean | Indicates if action security is enabled on the *Copy Record* action for this object. When enabled, Vault Admins can control whether the *Copy Record* action is available to secure with permission sets, atomic security, and on object types. This setting is analogous to the **Use Action security to control Copy Record** setting in the Vault UI. |
| `relate_records_select_all` | Type: Boolean | Indicates if Vault UI users can access the Select All button while relating multiple records at once in a related object section. Can only be set to `true` if the `multi_select` attribute is also set to `true`, otherwise, Vault throws an error. Equivalent to the *Enable Select All* setting in the Vault UI. Learn more about this [setting in Vault Help](https://platform.veevavault.help/en/lr/15057/#relating-records). |

### Field

| Attribute | Metadata | Description |
| --- | --- | --- |
| `related_local_currency_field` | Type: String Max length: 1500 | The name of the local currency code field. For example, `local_currency__sys`. |
| `related_corporate_currency_field` | Type: String Max length: 1500 | Contains the name of the related corporate currency field. |
| `controlling_picklist` | Type: String Max length: 50 | The name of the controlling picklist, if any. |
| `show_as_icon` | Type: Boolean | If `true`, `show_in_header` settings are applied. Can only be used on formula fields with a return type of text. |
| `show_in_header` | Type: Enum Allowed values: left; right | If set to `left` or `right`, the field is shown as an icon in the left or right of the header. Can only be used on formula fields with a return type of text. |
| `secure_relationship` | Type: Boolean | Enables relationship security on a referenced object. |
| `editable` | Type: Boolean | Indicates whether the field is editable. This field is read-only. |
| `picklist_dependencies` | Type: String Max length: 2147483647 | Contains comma-delimited list of all dependencies for the controlling picklist. For example, `{"english__c"&#58; ["united_kindom__c", "united_states__c"]}`. |
| `searchable` | Type: Boolean | Indicates whether the field is searchable. This field is read-only and only applies to lookup fields. |
| `encrypted` | Type: Boolean | Indicates whether the field is encrypted. Learn more about encryption in [Vault Help](https://platform.veevavault.help/en/lr/15057#protected-info). |
| `subtype` | Type: Enum Allowed values: Currency; Link; Time; Percent; Phone; Email | Determines the field subtype, if any. Fields with a subtype have the same data type as their `type`, but have additional standard configuration as well as special behaviors. For example, fields with subtypes may have a standard `format_mask`. |
| `label` | Type: String **Required** Max length: 40 | UI-friendly string in the Vault’s base language. |
| `type` | Type: Enum **Required** Allowed values: String; Number; Boolean; Date; DateTime; Object; Picklist; ID; users; Component; documents; LongText; RichText; Binary; Attachment; ObjectReference; ObjectParent | Defines the field's data type. |
| `active` | Type: Boolean **Required** | Indicates whether the field is active. |
| `required` | Type: Boolean **Required** | Indicates whether the user must always enter a value |
| `description` | Type: String Max length: 1000 | A general description of the field that appears in the Admin UI to assist in object configuration. Not visible to users. |
| `unique` | Type: Boolean | Indicates whether the field’s value must be unique. |
| `max_length` | Type: Number | Defines the maximum number of characters for the field value. Only applies to String, LongText, and RichText `type` fields as follows: LongText: 32000; RichText: 32000 (Conditional); String (`unique`\=`false`): 1500; String (`unique`\=`true`): 255(Conditional)Plain text characters only. Learn more about [Setting Field Defaults on Rich Text Fields in Vault Help](https://platform.veevavault.help/en/lr/42778/#setting-field-defaults-on-rich-text-fields). |
| `max_value` | Type: Number | (Number `type` fields only) Defines the maximum numeric value for the field value. |
| `min_value` | Type: Number | (Number `type` fields only) Defines the minimum numeric value for the field value. |
| `scale` | Type: Number | (Number `type` fields only) Defines the maximum number of decimal places for the field value. |
| `format_mask` | Type: String Max length: 3900 | Format masks are custom or standard expressions configured by your Vault Admin to instruct Vault how to display this field to Vault UI users. Learn more about [format masks in Vault Help](https://platform.veevavault.help/en/lr/15057/#Format_Masks). Only available for: String `type` fields; Number fields; Lookup fields with a String `type` field or Number field as the source; Formula fields that return a String or Number valueTo retrieve the display value of a field for users, use VQL’s `TODISPLAYFORMAT()` or the Vault Java SDK [RecordDisplayService](https://repo.veevavault.com/javadoc/vault-sdk-api/24.2.2/docs/api/com/veeva/vault/sdk/api/data/RecordDisplayService.html). |
| `help_content` | Type: String Max length: 255 | Hover text to display for the (?) icon in Business Admin for this object. |
| `list_column` | Type: Boolean **Required** | Indicates if the field should display in default object record lists, hovercards, etc. |
| `order` | Type: Number | Deprecated as of 22R3.1. |
| `multi_value` | Type: Boolean | (Picklist fields only) Indicates if the field is multi-select. |
| `object` | Type: String Max length: 50 | (Object fields only) Defines the related object (by name), e.g., `country__v`. |
| `relationship_type` | Type: Enum Allowed values: parent; reference; child; reference\_inbound; reference\_outbound | (Object fields only) Indicates the relationship type. |
| `relationship_outbound_name` | Type: String Max length: 50 | (Object fields only) Indicates the Outbound Relationship Name, e.g., `edl__vr` on EDL Item. |
| `relationship_inbound_name` | Type: String Max length: 50 | (Object fields only) Indicates the Inbound Relationship Name, e.g., `edl_item__vr` on EDL. |
| `relationship_inbound_label` | Type: String Max length: 40 | (Object fields only) Indicates the Outbound Relationship Label, e.g., `EDL` on EDL Item. |
| `controlling_field` | Type: String Max length: 50 | Controlling field name, if any. |
| `relationship_deletion` | Type: Enum Allowed values: block; cascade; setnull | (Object fields only) Defines the Deletion Rules that apply to when users try to delete the referenced or parent object record. Can only be set to `cascade` if `relationship_type` is `parent`. |
| `relationship_criteria` | Type: Expression Max length: 4000 | (Object and document fields only) VQL `WHERE` clause expression which specifies the criteria that a document or object record must meet for the relationship. |
| `system_managed_name` | Type: Boolean | Indicates if the \[name\] value is automatically generated by the system. When `true`, the field becomes read-only. |
| `start_number` | Type: Number | First sequence number for the system-managed `name` value. |
| `value_format` | Type: String Max length: 500 | Format for the system-managed `name` value, e.g., `VV-{###}`. |
| `component` | Type: String Max length: 40 | (Component fields only) The Component Type values can refer to. |
| `relationship_deep_copy` | Type: Boolean | (Object fields only) Indicates if the child records associated via this field are available for hierarchical copy. |
| `picklist` | Type: String Max length: 2147483647 | (Picklist fields only) Defines the picklist to use for the field. |
| `lookup_relationship_name` | Type: String Max length: 50 | (Lookup fields only) Defines the relationship (by \[name\]) that a Lookup field uses. |
| `lookup_source_field` | Type: String Max length: 50 | (Lookup fields only) Defines the field on the referenced object that should appear as a Lookup field on the current object. |
| `document_version_reference` | Type: String Max length: 40 | Indicates which document version the field references. This can be either `specific`, `latest`, or `latest_steady_state_version`. |
| `related_document_reference_field` | Type: String Max length: 128 | The name of the related document reference field. For example, `study_document__c`. Indicates that this field is an Unbound Document Field. |
| `no_copy` | Type: Boolean | When `true` a value will not be set in a copied record. Cannot be `true` when `required` is `true`. |
| `create_object_inline` | Type: Boolean | (Object fields only) If set to `true`, users can create a new reference record within an object reference field. |
| `sequential_naming` | Type: Boolean | Indicates the system controls the name be sequential. |
| `default_value` | Type: String Max length: 3900 | The default value of the field. |
| `checkbox` | Type: Boolean | Indicates whether "Yes/No" field will display as a checkbox. |
| `enhanced_blank_handling` | Type: Enum Allowed values: blanks\_as\_blanks; blanks\_as\_zeros\_and\_empty\_strings | (Formula fields only) Indicates the blank field handling setting for the field. Learn more about [Blank Field Handling in Vault Help](https://platform.veevavault.help/en/lr/42857#blank-field-handling). |
| `formula` | Type: String Max length: 3900 | The formula expression. |
| `multi_part_field` | Type: Enum Allowed values: suffix; prefix | Indicates whether the `prefix` and `suffix` of multi-part field is editable. |
| `multi_part_readonly` | Type: String Max length: 1500 | The read-only text of a multi-part field. |
| `currency_type` | Type: Enum Allowed values: local; corporate | (Currency `subtype` fields only) Indicates whether the currency formula field value should use local or corporate currency. Learn more about [currency fields in Vault Help](https://platform.veevavault.help/en/lr/50532). |
| `predefault_reference` | Type: Boolean | Only available on `Object` type fields where `required` = `false`. If set to `true`, Vault pre-defaults values (auto-populates values that users can clear or edit before saving) for this field when a user creates or copies a record. If not set, the default value is `false`. |
| `rollup` | Type: Boolean | Set to `true` to create a Roll-up field. The `no_copy` attribute must also be `true`. Learn more about [Roll-up fields in Vault Help](https://platform.veevavault.help/en/lr/15057/#roll-up-fields). |
| `rollup_relationship_name` | Type: String Max length: 50 | Name of the inbound relationship from the child object providing the source data for a Roll-up field. |
| `rollup_source_field` | Type: String Max length: 50 | Name of the child object field on which to perform the `rollup_function`. This is `null` for the `COUNT` function. The `type` and `subtype` values for the Roll-up field must match the `type` and `subtype` values for the source field (if specified). |
| `rollup_filter_criteria` | Type: String Max length: 4000 | Formula expression that determines which child records should be included in a Roll-up field calculation. |
| `rollup_function` | Type: Enum Allowed values: count; min; max; sum | Aggregate function to perform on the child object field of a Roll-up field. |
| `replicate_sharing_from_parent` | Type: Boolean | Indicates if Child Object security is enabled. Learn more about [child object security in Vault Help](https://platform.veevavault.help/en/lr/858058/). |
| `control_binding` | Type: XMLString | The defined configuration for binding an object field to an object control. This configuration changes how the field is displayed for users while viewing a record detail page. |

### Index

| Attribute | Metadata | Description |
| --- | --- | --- |
| `fields` | Type: String **Required** Max length: 1500 Multi-value | The list of fields for this index. Note that Vault cannot index `LongText` fields, or `Text` fields longer than 255 characters. |
| `description` | Type: String Max length: 1500 | A description of this index. |
| `label` | Type: String **Required** Max length: 1500 | UI-friendly string in the Vault’s base language. |

### Supported Operations

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

**Notes:**

*   **Alter:** MDL Operation may not be supported for some multi-value attributes.
*   **Describe:** Operation is supported through `/api/{{version}}/metadata/vobjects` endpoint only.

---

**Previous:** [Notificationtemplate](/clinical/mdl/component-types/notificationtemplate)  
**Next:** [Objectaction](/clinical/mdl/component-types/objectaction)