# Custom Types for Data Catalog Properties

{{< youtube WEY5q5KaPXo >}}<br />

RudderStack's [Tracking Plans]({{< ref "data-governance/tracking-plans/" >}}) feature makes it easy for data teams to apply type-safe governance to event schemas flowing through RudderStack. [Advanced rules]({{< ref "data-governance/data-catalog/properties.md#advanced-rules" >}}) enable you to create types and rules on individual properties, but for teams managing hundreds of properties, individual rules can be limiting. 

With the release of [Custom Types](https://www.rudderstack.com/docs/data-governance/data-catalog/properties/#custom-data-types), you can now build and manage a separate, centralized library of rules, and apply them to multiple properties across your Data Catalog. Custom Types give you the ability to: 

- More easily manage and apply the same rule across multiple properties.
- Implement more complex rules for properties.

You can also create and manage Custom Types via the [Data Catalog API](https://www.rudderstack.com/docs/api/data-catalog-api/#custom-types).

## Example use cases

- **Array of enums**: With Custom Types, you can combine rules and types for complex use cases. For example, you could define enum values as a Custom Type, then use that Custom Type in a property defined as an array, enabling you to govern an array of enums. 

- **Sub-property bundles**: If you need to add sub-properties to multiple properties, you can create an Object Custom Type, add the list of specific sub-properties, and apply them to properties in your Data Catalog.

- **Custom date formats**: If you need to enforce a specific date format across multiple different date properties, you can create a Custom Type with your specific logic, then use that type for those properties. 

- **Custom address formats**: If you need to enforce formats for different types of addresses (residential and commercial, for example), you can create Custom Types for each and apply them to different properties.


## Screenshots

{{< image src="images/releases/custom-types-release/custom-types-library.png" >}}

{{< image src="images/releases/custom-types-release/custom-types-property.png" >}} 
