WHAT YOU'LL LEARN
  • What use cases are available in webiny/api/cms/model?
  • Which event handlers can you implement?
  • How to use the builder and factory APIs?
  • How to import and use each exported item?

Overview
anchor

This page documents everything exported from webiny/api/cms/model. Import any of the items below directly from this path in your Webiny extensions.

Use Cases
anchor

CreateModelFromUseCase
anchor

Use Case Abstraction — imported from webiny/api/cms/model

Interface CreateModelFromUseCase.Interface:

Types:

Usage:

extensions/MyImpl.ts

CreateModelUseCase
anchor

Use Case Abstraction — imported from webiny/api/cms/model

Interface CreateModelUseCase.Interface:

Types:

Usage:

extensions/MyImpl.ts

DeleteModelUseCase
anchor

Use Case Abstraction — imported from webiny/api/cms/model

Interface DeleteModelUseCase.Interface:

Types:

Usage:

extensions/MyImpl.ts

GetModelUseCase
anchor

Use Case Abstraction — imported from webiny/api/cms/model

Interface GetModelUseCase.Interface:

Types:

Usage:

extensions/MyImpl.ts

ListModelsUseCase
anchor

Use Case Abstraction — imported from webiny/api/cms/model

Interface ListModelsUseCase.Interface:

Types:

Usage:

extensions/MyImpl.ts

UpdateModelUseCase
anchor

Use Case Abstraction — imported from webiny/api/cms/model

Interface UpdateModelUseCase.Interface:

Types:

Usage:

extensions/MyImpl.ts

Event Handlers
anchor

ModelAfterCreateEventHandler
anchor

Event Handler Abstraction — imported from webiny/api/cms/model

Interface ModelAfterCreateEventHandler.Interface:

Event payload ModelAfterCreateEventPayload:

Types:

Usage:

extensions/MyHandler.ts

ModelAfterCreateFromEventHandler
anchor

Event Handler Abstraction — imported from webiny/api/cms/model

Interface ModelAfterCreateFromEventHandler.Interface:

Event payload ModelAfterCreateFromEventPayload:

Types:

Usage:

extensions/MyHandler.ts

ModelAfterDeleteEventHandler
anchor

Event Handler Abstraction — imported from webiny/api/cms/model

Interface ModelAfterDeleteEventHandler.Interface:

Event payload ModelAfterDeleteEventPayload:

Types:

Usage:

extensions/MyHandler.ts

ModelAfterUpdateEventHandler
anchor

Event Handler Abstraction — imported from webiny/api/cms/model

Interface ModelAfterUpdateEventHandler.Interface:

Event payload ModelAfterUpdateEventPayload:

Types:

Usage:

extensions/MyHandler.ts

ModelBeforeCreateEventHandler
anchor

Event Handler Abstraction — imported from webiny/api/cms/model

Interface ModelBeforeCreateEventHandler.Interface:

Event payload ModelBeforeCreateEventPayload:

Types:

Usage:

extensions/MyHandler.ts

ModelBeforeCreateFromEventHandler
anchor

Event Handler Abstraction — imported from webiny/api/cms/model

Interface ModelBeforeCreateFromEventHandler.Interface:

Event payload ModelBeforeCreateFromEventPayload:

Types:

Usage:

extensions/MyHandler.ts

ModelBeforeDeleteEventHandler
anchor

Event Handler Abstraction — imported from webiny/api/cms/model

Interface ModelBeforeDeleteEventHandler.Interface:

Event payload ModelBeforeDeleteEventPayload:

Types:

Usage:

extensions/MyHandler.ts

ModelBeforeUpdateEventHandler
anchor

Event Handler Abstraction — imported from webiny/api/cms/model

Interface ModelBeforeUpdateEventHandler.Interface:

Event payload ModelBeforeUpdateEventPayload:

Types:

Usage:

extensions/MyHandler.ts

Services
anchor

FieldType
anchor

Abstraction — imported from webiny/api/cms/model

Interface FieldType.Interface:

Usage:

extensions/MyImpl.ts

ModelFactory
anchor

Abstraction — imported from webiny/api/cms/model

Interface ModelFactory.Interface:

Types:

Usage:

extensions/MyImpl.ts

Types & Classes
anchor

CmsModel
anchor

Type — imported from webiny/api/cms/model

Base CMS Model. Should not be exported and used outside of this package.

@category Database model @category CmsModel

CmsModelField
anchor

Type — imported from webiny/api/cms/model

A definition for content model field. This type exists on the app side as well.

@category ModelField @category Database model

FieldBuilder
anchor

Class — imported from webiny/api/cms/model

DataFieldBuilder class for data fields that produce CmsModelField instances. Provides storageId, list, validation, renderer, and other data-field methods.

FieldRendererRegistry
anchor

Type — imported from webiny/api/cms/model

Augmentable renderer registry. Each entry maps a renderer name to its applicable field type(s) and settings.

Example: declare module “@webiny/api-headless-cms/features/modelBuilder/fields/FieldBuilder” { interface FieldRendererRegistry { “my-renderer”: { fieldType: “text” | “long-text”; settings: { color: string } }; } }

LayoutBuilder
anchor

Class — imported from webiny/api/cms/model

LayoutBuilder provides a fluent API for modifying field layouts. Supports adding fields to existing rows and inserting new rows at specific positions. Callbacks can be queued and executed lazily for efficient composition.

ModelBuilder
anchor

Class — imported from webiny/api/cms/model

Entry point builder that allows selecting model type. Call .private() or .public() to get the appropriate typed builder.