@datocms/cma-client 5.1.27 → 5.1.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4234,7 +4234,26 @@ export type UploadCollectionReorderJobSchema = {
4234
4234
  data: UploadCollection[];
4235
4235
  };
4236
4236
  /**
4237
- * The way you define the kind of content you can edit inside your administrative area passes through the concept of Models, which are much like database tables. For backward-compatibility reasons, the API refers to models as "item types".
4237
+ * The way you define the kind of content you can edit inside a DatoCMS project passes through the concept of **models** and **block models**. For backward-compatibility reasons, the API refers to both as "item types".
4238
+ *
4239
+ * ## Models
4240
+ *
4241
+ * Models are much like database tables — they define the structure of your main content types (e.g., blog posts, products, landing pages). Each model is composed of fields with custom validations. Records created from models exist independently and can be referenced by other records through link fields.
4242
+ *
4243
+ * ## Block Models
4244
+ *
4245
+ * Block models define complex and repeatable structures that can be embedded inside records. They are the foundation behind features like [Modular Content](/docs/content-modelling/modular-content.md) and [Structured Text](/docs/content-modelling/structured-text.md).
4246
+ *
4247
+ * ### Key differences:
4248
+ *
4249
+ * - **Models** create standalone records that can be referenced and have independent value
4250
+ * - **Block models** create blocks that only exist within parent records and cannot be referenced via link fields
4251
+ * - Block models defined in the library can be reused across different models
4252
+ * - When a record gets deleted, all the blocks it contains are deleted with it
4253
+ * - Blocks do not count towards your plan's records limit
4254
+ *
4255
+ * You can distinguish between models and block models using the `modular_block` attribute: `true` indicates a block model, `false` indicates a regular model.
4256
+ *
4238
4257
  *
4239
4258
  * This interface was referenced by `DatoApi`'s JSON-Schema
4240
4259
  * via the `definition` "item_type".
@@ -4254,11 +4273,11 @@ export type ItemType = {
4254
4273
  */
4255
4274
  export type ItemTypeAttributes = {
4256
4275
  /**
4257
- * Name of the model
4276
+ * Name of the model/block model
4258
4277
  */
4259
4278
  name: string;
4260
4279
  /**
4261
- * API key of the model
4280
+ * API key of the model/block model
4262
4281
  */
4263
4282
  api_key: string;
4264
4283
  /**
@@ -4266,11 +4285,11 @@ export type ItemTypeAttributes = {
4266
4285
  */
4267
4286
  collection_appeareance?: 'compact' | 'table';
4268
4287
  /**
4269
- * The way the model collection should be presented to the editors
4288
+ * The way the model/block model collection should be presented to the editors
4270
4289
  */
4271
4290
  collection_appearance: 'compact' | 'table';
4272
4291
  /**
4273
- * Whether the model is single-instance or not
4292
+ * Whether the model is single-instance or not. This property only applies to models, not block models
4274
4293
  */
4275
4294
  singleton: boolean;
4276
4295
  /**
@@ -4278,31 +4297,31 @@ export type ItemTypeAttributes = {
4278
4297
  */
4279
4298
  all_locales_required: boolean;
4280
4299
  /**
4281
- * Whether editors can sort records via drag & drop or not
4300
+ * Whether editors can sort records via drag & drop or not. Must be false for block models
4282
4301
  */
4283
4302
  sortable: boolean;
4284
4303
  /**
4285
- * Whether this model is a modular content block or not
4304
+ * Whether this is a block model or not. Block models define structures that can be embedded inside records, while regular models create standalone records
4286
4305
  */
4287
4306
  modular_block: boolean;
4288
4307
  /**
4289
- * Whether draft/published mode is active or not
4308
+ * Whether draft/published mode is active or not. Must be false for block models
4290
4309
  */
4291
4310
  draft_mode_active: boolean;
4292
4311
  /**
4293
- * Whether draft records can be saved without satisfying the validations or not
4312
+ * Whether draft records can be saved without satisfying the validations or not. Must be false for block models
4294
4313
  */
4295
4314
  draft_saving_active: boolean;
4296
4315
  /**
4297
- * Whether editors can organize records in a tree or not
4316
+ * Whether editors can organize records in a tree or not. Must be false for block models
4298
4317
  */
4299
4318
  tree: boolean;
4300
4319
  /**
4301
- * If an ordering field is set, this fields specify the sorting direction
4320
+ * If an ordering field is set, this field specifies the sorting direction. This property does not apply to block models
4302
4321
  */
4303
4322
  ordering_direction: null | 'asc' | 'desc';
4304
4323
  /**
4305
- * Specifies the model's sorting method. Cannot be set in concurrency with ordering_field
4324
+ * Specifies the model's sorting method. Cannot be set in concurrency with ordering_field. This property does not apply to block models
4306
4325
  */
4307
4326
  ordering_meta:
4308
4327
  | null
@@ -4311,15 +4330,15 @@ export type ItemTypeAttributes = {
4311
4330
  | 'first_published_at'
4312
4331
  | 'published_at';
4313
4332
  /**
4314
- * If this model is single-instance, this tells the single-instance record has already been created or not
4333
+ * If this model is single-instance, this tells whether the single-instance record has already been created or not. This property only applies to models, not block models
4315
4334
  */
4316
4335
  has_singleton_item: boolean;
4317
4336
  /**
4318
- * A hint shown to editors to help them understand the purpose of this model/block
4337
+ * A hint shown to editors to help them understand the purpose of this model/block model
4319
4338
  */
4320
4339
  hint: string | null;
4321
4340
  /**
4322
- * Whether inverse relationships fields are expressed in GraphQL or not
4341
+ * Whether inverse relationships fields are expressed in GraphQL or not. Must be false for block models
4323
4342
  */
4324
4343
  inverse_relationships_enabled: boolean;
4325
4344
  };
@@ -4331,19 +4350,19 @@ export type ItemTypeAttributes = {
4331
4350
  */
4332
4351
  export type ItemTypeRelationships = {
4333
4352
  /**
4334
- * The item instance related to this item type
4353
+ * The record instance related to this model. This relationship only applies to single-instance models, not block models
4335
4354
  */
4336
4355
  singleton_item: {
4337
4356
  data: ItemData | null;
4338
4357
  };
4339
4358
  /**
4340
- * The list of item type fields
4359
+ * The list of fields for this model/block model
4341
4360
  */
4342
4361
  fields: {
4343
4362
  data: FieldData[];
4344
4363
  };
4345
4364
  /**
4346
- * The list of item type fieldsets
4365
+ * The list of fieldsets for this model/block model
4347
4366
  */
4348
4367
  fieldsets: {
4349
4368
  data: FieldsetData[];
@@ -4361,25 +4380,25 @@ export type ItemTypeRelationships = {
4361
4380
  data: FieldData | null;
4362
4381
  };
4363
4382
  /**
4364
- * The field to use as fallback title for SEO purposes
4383
+ * The field to use as fallback title for SEO purposes. This relationship does not apply to block models
4365
4384
  */
4366
4385
  title_field: {
4367
4386
  data: FieldData | null;
4368
4387
  };
4369
4388
  /**
4370
- * The field to use as fallback image for SEO purposes
4389
+ * The field to use as fallback image for SEO purposes. This relationship does not apply to block models
4371
4390
  */
4372
4391
  image_preview_field: {
4373
4392
  data: FieldData | null;
4374
4393
  };
4375
4394
  /**
4376
- * The field to use as fallback description for SEO purposes
4395
+ * The field to use as fallback description for SEO purposes. This relationship does not apply to block models
4377
4396
  */
4378
4397
  excerpt_field: {
4379
4398
  data: FieldData | null;
4380
4399
  };
4381
4400
  /**
4382
- * The field upon which the collection is sorted
4401
+ * The field upon which the collection is sorted. This relationship does not apply to block models
4383
4402
  */
4384
4403
  ordering_field: {
4385
4404
  data: FieldData | null;
@@ -4432,14 +4451,14 @@ export type WorkflowData = {
4432
4451
  id: WorkflowIdentity;
4433
4452
  };
4434
4453
  /**
4435
- * Meta information regarding the item type
4454
+ * Meta information regarding the model/block model
4436
4455
  *
4437
4456
  * This interface was referenced by `ItemType`'s JSON-Schema
4438
4457
  * via the `definition` "meta".
4439
4458
  */
4440
4459
  export type ItemTypeMeta = {
4441
4460
  /**
4442
- * If this model is single-instance, this tells the single-instance record has already been created or not
4461
+ * If this model is single-instance, this tells whether the single-instance record has already been created or not. This property only applies to models, not block models
4443
4462
  */
4444
4463
  has_singleton_item: boolean;
4445
4464
  };
@@ -4456,15 +4475,15 @@ export type ItemTypeCreateSchema = {
4456
4475
  */
4457
4476
  attributes: {
4458
4477
  /**
4459
- * Name of the model
4478
+ * Name of the model/block model
4460
4479
  */
4461
4480
  name: string;
4462
4481
  /**
4463
- * API key of the model
4482
+ * API key of the model/block model
4464
4483
  */
4465
4484
  api_key: string;
4466
4485
  /**
4467
- * Whether the model is single-instance or not
4486
+ * Whether the model is single-instance or not. This property only applies to models, not block models
4468
4487
  */
4469
4488
  singleton?: boolean;
4470
4489
  /**
@@ -4472,31 +4491,31 @@ export type ItemTypeCreateSchema = {
4472
4491
  */
4473
4492
  all_locales_required?: boolean;
4474
4493
  /**
4475
- * Whether editors can sort records via drag & drop or not
4494
+ * Whether editors can sort records via drag & drop or not. Must be false for block models
4476
4495
  */
4477
4496
  sortable?: boolean;
4478
4497
  /**
4479
- * Whether this model is a modular content block or not
4498
+ * Whether this is a block model or not. Block models define structures that can be embedded inside records, while regular models create standalone records
4480
4499
  */
4481
4500
  modular_block?: boolean;
4482
4501
  /**
4483
- * Whether draft/published mode is active or not
4502
+ * Whether draft/published mode is active or not. Must be false for block models
4484
4503
  */
4485
4504
  draft_mode_active?: boolean;
4486
4505
  /**
4487
- * Whether draft records can be saved without satisfying the validations or not
4506
+ * Whether draft records can be saved without satisfying the validations or not. Must be false for block models
4488
4507
  */
4489
4508
  draft_saving_active?: boolean;
4490
4509
  /**
4491
- * Whether editors can organize records in a tree or not
4510
+ * Whether editors can organize records in a tree or not. Must be false for block models
4492
4511
  */
4493
4512
  tree?: boolean;
4494
4513
  /**
4495
- * If an ordering field is set, this fields specify the sorting direction
4514
+ * If an ordering field is set, this field specifies the sorting direction. This property does not apply to block models
4496
4515
  */
4497
4516
  ordering_direction?: null | 'asc' | 'desc';
4498
4517
  /**
4499
- * Specifies the model's sorting method. Cannot be set in concurrency with ordering_field
4518
+ * Specifies the model's sorting method. Cannot be set in concurrency with ordering_field. This property does not apply to block models
4500
4519
  */
4501
4520
  ordering_meta?:
4502
4521
  | null
@@ -4509,21 +4528,21 @@ export type ItemTypeCreateSchema = {
4509
4528
  */
4510
4529
  collection_appeareance?: 'compact' | 'table';
4511
4530
  /**
4512
- * The way the model collection should be presented to the editors
4531
+ * The way the model/block model collection should be presented to the editors
4513
4532
  */
4514
4533
  collection_appearance?: 'compact' | 'table';
4515
4534
  /**
4516
- * A hint shown to editors to help them understand the purpose of this model/block
4535
+ * A hint shown to editors to help them understand the purpose of this model/block model
4517
4536
  */
4518
4537
  hint?: string | null;
4519
4538
  /**
4520
- * Whether inverse relationships fields are expressed in GraphQL or not
4539
+ * Whether inverse relationships fields are expressed in GraphQL or not. Must be false for block models
4521
4540
  */
4522
4541
  inverse_relationships_enabled?: boolean;
4523
4542
  };
4524
4543
  relationships?: {
4525
4544
  /**
4526
- * The field upon which the collection is sorted
4545
+ * The field upon which the collection is sorted. This relationship does not apply to block models
4527
4546
  */
4528
4547
  ordering_field?: {
4529
4548
  data: FieldData | null;
@@ -4541,19 +4560,19 @@ export type ItemTypeCreateSchema = {
4541
4560
  data: FieldData | null;
4542
4561
  };
4543
4562
  /**
4544
- * The field to use as fallback title for SEO purposes
4563
+ * The field to use as fallback title for SEO purposes. This relationship does not apply to block models
4545
4564
  */
4546
4565
  title_field?: {
4547
4566
  data: FieldData | null;
4548
4567
  };
4549
4568
  /**
4550
- * The field to use as fallback image for SEO purposes
4569
+ * The field to use as fallback image for SEO purposes. This relationship does not apply to block models
4551
4570
  */
4552
4571
  image_preview_field?: {
4553
4572
  data: FieldData | null;
4554
4573
  };
4555
4574
  /**
4556
- * The field to use as fallback description for SEO purposes
4575
+ * The field to use as fallback description for SEO purposes. This relationship does not apply to block models
4557
4576
  */
4558
4577
  excerpt_field?: {
4559
4578
  data: FieldData | null;
@@ -4588,11 +4607,11 @@ export type ItemTypeUpdateSchema = {
4588
4607
  */
4589
4608
  attributes?: {
4590
4609
  /**
4591
- * Name of the model
4610
+ * Name of the model/block model
4592
4611
  */
4593
4612
  name?: string;
4594
4613
  /**
4595
- * API key of the model
4614
+ * API key of the model/block model
4596
4615
  */
4597
4616
  api_key?: string;
4598
4617
  /**
@@ -4600,11 +4619,11 @@ export type ItemTypeUpdateSchema = {
4600
4619
  */
4601
4620
  collection_appeareance?: 'compact' | 'table';
4602
4621
  /**
4603
- * The way the model collection should be presented to the editors
4622
+ * The way the model/block model collection should be presented to the editors
4604
4623
  */
4605
4624
  collection_appearance?: 'compact' | 'table';
4606
4625
  /**
4607
- * Whether the model is single-instance or not
4626
+ * Whether the model is single-instance or not. This property only applies to models, not block models
4608
4627
  */
4609
4628
  singleton?: boolean;
4610
4629
  /**
@@ -4612,31 +4631,31 @@ export type ItemTypeUpdateSchema = {
4612
4631
  */
4613
4632
  all_locales_required?: boolean;
4614
4633
  /**
4615
- * Whether editors can sort records via drag & drop or not
4634
+ * Whether editors can sort records via drag & drop or not. Must be false for block models
4616
4635
  */
4617
4636
  sortable?: boolean;
4618
4637
  /**
4619
- * Whether this model is a modular content block or not
4638
+ * Whether this is a block model or not. Block models define structures that can be embedded inside records, while regular models create standalone records
4620
4639
  */
4621
4640
  modular_block?: boolean;
4622
4641
  /**
4623
- * Whether draft/published mode is active or not
4642
+ * Whether draft/published mode is active or not. Must be false for block models
4624
4643
  */
4625
4644
  draft_mode_active?: boolean;
4626
4645
  /**
4627
- * Whether draft records can be saved without satisfying the validations or not
4646
+ * Whether draft records can be saved without satisfying the validations or not. Must be false for block models
4628
4647
  */
4629
4648
  draft_saving_active?: boolean;
4630
4649
  /**
4631
- * Whether editors can organize records in a tree or not
4650
+ * Whether editors can organize records in a tree or not. Must be false for block models
4632
4651
  */
4633
4652
  tree?: boolean;
4634
4653
  /**
4635
- * If an ordering field is set, this fields specify the sorting direction
4654
+ * If an ordering field is set, this field specifies the sorting direction. This property does not apply to block models
4636
4655
  */
4637
4656
  ordering_direction?: null | 'asc' | 'desc';
4638
4657
  /**
4639
- * Specifies the model's sorting method. Cannot be set in concurrency with ordering_field
4658
+ * Specifies the model's sorting method. Cannot be set in concurrency with ordering_field. This property does not apply to block models
4640
4659
  */
4641
4660
  ordering_meta?:
4642
4661
  | null
@@ -4645,21 +4664,21 @@ export type ItemTypeUpdateSchema = {
4645
4664
  | 'first_published_at'
4646
4665
  | 'published_at';
4647
4666
  /**
4648
- * If this model is single-instance, this tells the single-instance record has already been created or not
4667
+ * If this model is single-instance, this tells whether the single-instance record has already been created or not. This property only applies to models, not block models
4649
4668
  */
4650
4669
  has_singleton_item?: boolean;
4651
4670
  /**
4652
- * A hint shown to editors to help them understand the purpose of this model/block
4671
+ * A hint shown to editors to help them understand the purpose of this model/block model
4653
4672
  */
4654
4673
  hint?: string | null;
4655
4674
  /**
4656
- * Whether inverse relationships fields are expressed in GraphQL or not
4675
+ * Whether inverse relationships fields are expressed in GraphQL or not. Must be false for block models
4657
4676
  */
4658
4677
  inverse_relationships_enabled?: boolean;
4659
4678
  };
4660
4679
  relationships?: {
4661
4680
  /**
4662
- * The field upon which the collection is sorted
4681
+ * The field upon which the collection is sorted. This relationship does not apply to block models
4663
4682
  */
4664
4683
  ordering_field?: {
4665
4684
  data: FieldData | null;
@@ -4677,19 +4696,19 @@ export type ItemTypeUpdateSchema = {
4677
4696
  data: FieldData | null;
4678
4697
  };
4679
4698
  /**
4680
- * The field to use as fallback title for SEO purposes
4699
+ * The field to use as fallback title for SEO purposes. This relationship does not apply to block models
4681
4700
  */
4682
4701
  title_field?: {
4683
4702
  data: FieldData | null;
4684
4703
  };
4685
4704
  /**
4686
- * The field to use as fallback image for SEO purposes
4705
+ * The field to use as fallback image for SEO purposes. This relationship does not apply to block models
4687
4706
  */
4688
4707
  image_preview_field?: {
4689
4708
  data: FieldData | null;
4690
4709
  };
4691
4710
  /**
4692
- * The field to use as fallback description for SEO purposes
4711
+ * The field to use as fallback description for SEO purposes. This relationship does not apply to block models
4693
4712
  */
4694
4713
  excerpt_field?: {
4695
4714
  data: FieldData | null;
@@ -4703,7 +4722,7 @@ export type ItemTypeUpdateSchema = {
4703
4722
  };
4704
4723
  meta?: {
4705
4724
  /**
4706
- * If this model is single-instance, this tells the single-instance record has already been created or not
4725
+ * If this model is single-instance, this tells whether the single-instance record has already been created or not. This property only applies to models, not block models
4707
4726
  */
4708
4727
  has_singleton_item?: boolean;
4709
4728
  };
@@ -7,7 +7,7 @@ export default class ItemType extends BaseResource {
7
7
  static readonly TYPE = 'item_type' as const;
8
8
 
9
9
  /**
10
- * Create a new model
10
+ * Create a new model/block model
11
11
  *
12
12
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/create
13
13
  *
@@ -55,7 +55,7 @@ export default class ItemType extends BaseResource {
55
55
  }
56
56
 
57
57
  /**
58
- * Create a new model
58
+ * Create a new model/block model
59
59
  *
60
60
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/create
61
61
  *
@@ -75,7 +75,7 @@ export default class ItemType extends BaseResource {
75
75
  }
76
76
 
77
77
  /**
78
- * Update a model
78
+ * Update a model/block model
79
79
  *
80
80
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/update
81
81
  *
@@ -125,7 +125,7 @@ export default class ItemType extends BaseResource {
125
125
  }
126
126
 
127
127
  /**
128
- * Update a model
128
+ * Update a model/block model
129
129
  *
130
130
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/update
131
131
  *
@@ -144,7 +144,7 @@ export default class ItemType extends BaseResource {
144
144
  }
145
145
 
146
146
  /**
147
- * List all models
147
+ * List all models/block models
148
148
  *
149
149
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/instances
150
150
  *
@@ -160,7 +160,7 @@ export default class ItemType extends BaseResource {
160
160
  }
161
161
 
162
162
  /**
163
- * List all models
163
+ * List all models/block models
164
164
  *
165
165
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/instances
166
166
  *
@@ -175,7 +175,7 @@ export default class ItemType extends BaseResource {
175
175
  }
176
176
 
177
177
  /**
178
- * Retrieve a model
178
+ * Retrieve a model/block model
179
179
  *
180
180
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/self
181
181
  *
@@ -189,7 +189,7 @@ export default class ItemType extends BaseResource {
189
189
  }
190
190
 
191
191
  /**
192
- * Retrieve a model
192
+ * Retrieve a model/block model
193
193
  *
194
194
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/self
195
195
  *
@@ -204,7 +204,7 @@ export default class ItemType extends BaseResource {
204
204
  }
205
205
 
206
206
  /**
207
- * Duplicate model
207
+ * Duplicate model/block model
208
208
  *
209
209
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/duplicate
210
210
  *
@@ -220,7 +220,7 @@ export default class ItemType extends BaseResource {
220
220
  }
221
221
 
222
222
  /**
223
- * Duplicate model
223
+ * Duplicate model/block model
224
224
  *
225
225
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/duplicate
226
226
  *
@@ -237,7 +237,7 @@ export default class ItemType extends BaseResource {
237
237
  }
238
238
 
239
239
  /**
240
- * Delete a model
240
+ * Delete a model/block model
241
241
  *
242
242
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/destroy
243
243
  *
@@ -254,7 +254,7 @@ export default class ItemType extends BaseResource {
254
254
  }
255
255
 
256
256
  /**
257
- * Delete a model
257
+ * Delete a model/block model
258
258
  *
259
259
  * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/destroy
260
260
  *