**Source URL:** https://limited.veevavault.dev/safety/mdl/component-types/userdefinedmodel

# Userdefinedmodel

**Class:** `code`

Allows users to create reusable data access objects, or models, and annotate their getters and setters as user-defined properties.

Learn more about [user-defined models](/vault-sdk/shared-code/udm).

| Attribute | Metadata | Description |
| --- | --- | --- |
| `label` | Type: String Max length: 60 | UI-friendly string in the Vault’s base language. |
| `active` | Type: Boolean | Indicates whether the component is active. |
| `checksum` | Type: String Max length: 1500 | Used to check data for errors. |
| `parent` | Type: String Max length: 1500 | The name of the user-defined model extended by this user-defined model, if applicable. |
| `serialization_include` | Type: Enum Allowed values: ALWAYS; IGNORE; NON\_NULL; UNSPECIFIED | The default serialization behavior for this user-defined model. |
| `source_code` | Type: SdkCode Max length: 1048576 | The source of this user-defined model and code used to create and edit metadata. *Custom* means this UDM was developed with the Vault Java SDK. |

### Supported Operations

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

---

**Previous:** [Userdefinedclass](/safety/mdl/component-types/userdefinedclass)  
**Next:** [Userdefinedservice](/safety/mdl/component-types/userdefinedservice)