**Source URL:** https://general.veevavault.dev/sitevault/mdl/component-types/userdefinedservice.md

# Userdefinedservice

**Class: ** `code`

Allow users to wrap reusable logic into a service that can be used by other Vault Java SDK code, such as triggers, actions, or user-defined classes.

Learn more about <a href="/vault-sdk/shared-code/uds">user-defined services</a>.

| Attribute | Metadata | Description |
| --- | --- | --- |
| label | Type: StringMax length: 60 | UI-friendly string in the Vault's base language. |
| active | Type: Boolean | Indicates whether the component is active. |
| checksum | Type: StringMax length: 1500 | Used to check data for errors. |
| interface | Type: StringMax length: 1500 | The name of the user-defined service extension interface that a user-defined service class implements, or blank if the user-defined service is an extension interface. |
| source_code | Type: SdkCodeMax length: 1048576 | The source of this user defined service and code used to create and edit metadata. Custom means this user defined service was developed with the Vault Java SDK. |

### Supported Operations {#supported-operations}

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


---

**Previous:** [Userdefinedmodel](/sitevault/mdl/component-types/userdefinedmodel)  
**Next:** [Vaulttoken](/sitevault/mdl/component-types/vaulttoken)