@graph8/sdk 0.302.0 → 0.308.1

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.
@@ -1,7 +1,7 @@
1
1
  /* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
2
2
 
3
3
  /**
4
- * Types for `g8.api.objects` (Objects): 18 operations.
4
+ * Types for `g8.api.objects` (Objects): 41 operations.
5
5
  *
6
6
  * For reading. In code, import from the package instead:
7
7
  * import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
@@ -16,20 +16,43 @@ export interface ObjectsMembers {
16
16
  archiveAttribute: "archive_attribute_objects__object_slug__attributes__attr_slug__delete";
17
17
  archiveObject: "archive_object_objects__object_slug__delete";
18
18
  archiveObjectRecord: "archive_object_record_objects__object_slug__records__record_id__delete";
19
+ bulkUpdateObjectRecords: "bulk_update_object_records_objects__object_slug__records_bulk_patch";
20
+ commitObjectCsvImport: "commit_object_csv_import_objects__object_slug__imports_csv_drafts__draft_id__commit_post";
19
21
  createAttribute: "create_attribute_objects__object_slug__attributes_post";
20
22
  createObject: "create_object_objects_post";
23
+ createObjectCsvImport: "create_object_csv_import_objects__object_slug__imports_csv_drafts_post";
21
24
  createObjectRecord: "create_object_record_objects__object_slug__records_post";
25
+ createObjectRelationship: "create_object_relationship_objects__object_slug__records__record_id__relationships_post";
26
+ createObjectView: "create_object_view_objects__object_slug__views_post";
27
+ deleteObjectCsvImport: "delete_object_csv_import_objects__object_slug__imports_csv_drafts__draft_id__delete";
28
+ deleteObjectRelationship: "delete_object_relationship_objects__object_slug__records__record_id__relationships__relationship_id__delete";
29
+ deleteObjectView: "delete_object_view_objects__object_slug__views__view_id__delete";
30
+ downloadObjectCsvImportErrors: "download_object_csv_import_errors_objects__object_slug__imports_csv_drafts__draft_id__errors_get";
31
+ exportObjectRecords: "export_object_records_objects__object_slug__exports_post";
22
32
  getObject: "get_object_objects__object_slug__get";
33
+ getObjectCsvImport: "get_object_csv_import_objects__object_slug__imports_csv_drafts__draft_id__get";
23
34
  getObjectRecord: "get_object_record_objects__object_slug__records__record_id__get";
24
35
  getObjectRecordChanges: "get_object_record_changes_objects__object_slug__records__record_id__changes_get";
25
36
  getObjectRecordHistory: "get_object_record_history_objects__object_slug__records__record_id__history_get";
37
+ getObjectRelationshipDefinitions: "get_object_relationship_definitions_objects__object_slug__relationships_get";
38
+ getObjectRelationships: "get_object_relationships_objects__object_slug__records__record_id__relationships_get";
39
+ inspectObjectCsvImport: "inspect_object_csv_import_objects__object_slug__imports_csv_inspect_post";
26
40
  listObjectAttributes: "list_object_attributes_objects__object_slug__attributes_get";
41
+ listObjectCsvImports: "list_object_csv_imports_objects__object_slug__imports_csv_drafts_get";
27
42
  listObjectRecords: "list_object_records_objects__object_slug__records_get";
43
+ listObjectViews: "list_object_views_objects__object_slug__views_get";
28
44
  listObjects: "list_objects_objects_get";
45
+ mergeObjectRecords: "merge_object_records_objects__object_slug__records_merge_post";
46
+ previewObjectCsvImport: "preview_object_csv_import_objects__object_slug__imports_csv_drafts__draft_id__preview_post";
47
+ queryObjectBoardGroups: "query_object_board_groups_objects__object_slug__views_board_groups_post";
48
+ queryObjectBoardRecords: "query_object_board_records_objects__object_slug__views_board_records_post";
29
49
  restoreObjectRecord: "restore_object_record_objects__object_slug__records__record_id__restore_post";
50
+ setDefaultObjectView: "set_default_object_view_objects__object_slug__views_default_put";
30
51
  updateAttribute: "update_attribute_objects__object_slug__attributes__attr_slug__patch";
31
52
  updateObject: "update_object_objects__object_slug__patch";
53
+ updateObjectCsvImport: "update_object_csv_import_objects__object_slug__imports_csv_drafts__draft_id__put";
32
54
  updateObjectRecord: "update_object_record_objects__object_slug__records__record_id__patch";
55
+ updateObjectView: "update_object_view_objects__object_slug__views__view_id__put";
33
56
  upsertObjectRecord: "upsert_object_record_objects__object_slug__records_upsert_post";
34
57
  }
35
58
 
@@ -85,6 +108,41 @@ export interface ObjectsOperations {
85
108
  };
86
109
  output: ApiResponse_ObjectRecordResponse_;
87
110
  };
111
+ /**
112
+ * PATCH /objects/{object_slug}/records/bulk
113
+ * Bulk Update Object Records
114
+ * tier: write · scope: objects:write
115
+ */
116
+ bulk_update_object_records_objects__object_slug__records_bulk_patch: {
117
+ input: {
118
+ path: {
119
+ object_slug: string;
120
+ };
121
+ headers?: {
122
+ "X-Target-Org-Id"?: string | null;
123
+ };
124
+ body: RecordBulkUpdate;
125
+ };
126
+ output: ApiResponse_RecordBulkUpdateResponse_;
127
+ };
128
+ /**
129
+ * POST /objects/{object_slug}/imports/csv/drafts/{draft_id}/commit
130
+ * Commit Object Csv Import
131
+ * tier: write · scope: objects:write
132
+ */
133
+ commit_object_csv_import_objects__object_slug__imports_csv_drafts__draft_id__commit_post: {
134
+ input: {
135
+ path: {
136
+ object_slug: string;
137
+ draft_id: string;
138
+ };
139
+ headers?: {
140
+ "X-Target-Org-Id"?: string | null;
141
+ };
142
+ body: ObjectImportCommit;
143
+ };
144
+ output: ApiResponse_ObjectCsvReceipt_;
145
+ };
88
146
  /**
89
147
  * POST /objects/{object_slug}/attributes
90
148
  * Create Attribute
@@ -116,6 +174,23 @@ export interface ObjectsOperations {
116
174
  };
117
175
  output: ApiResponse_ObjectDefinitionResponse_;
118
176
  };
177
+ /**
178
+ * POST /objects/{object_slug}/imports/csv/drafts
179
+ * Create Object Csv Import
180
+ * tier: write · scope: objects:write
181
+ */
182
+ create_object_csv_import_objects__object_slug__imports_csv_drafts_post: {
183
+ input: {
184
+ path: {
185
+ object_slug: string;
186
+ };
187
+ headers?: {
188
+ "X-Target-Org-Id"?: string | null;
189
+ };
190
+ body: ObjectImportCreate;
191
+ };
192
+ output: ApiResponse_ObjectImportDetail_;
193
+ };
119
194
  /**
120
195
  * POST /objects/{object_slug}/records
121
196
  * Create Object Record
@@ -133,6 +208,131 @@ export interface ObjectsOperations {
133
208
  };
134
209
  output: ApiResponse_ObjectRecordResponse_;
135
210
  };
211
+ /**
212
+ * POST /objects/{object_slug}/records/{record_id}/relationships
213
+ * Create Object Relationship
214
+ * tier: write · scope: objects:write
215
+ */
216
+ create_object_relationship_objects__object_slug__records__record_id__relationships_post: {
217
+ input: {
218
+ path: {
219
+ object_slug: string;
220
+ record_id: string;
221
+ };
222
+ headers?: {
223
+ "X-Target-Org-Id"?: string | null;
224
+ };
225
+ body: RelationshipCreate;
226
+ };
227
+ output: ApiResponse_RelationshipResponse_;
228
+ };
229
+ /**
230
+ * POST /objects/{object_slug}/views
231
+ * Create Object View
232
+ * tier: write · scope: objects:write
233
+ */
234
+ create_object_view_objects__object_slug__views_post: {
235
+ input: {
236
+ path: {
237
+ object_slug: string;
238
+ };
239
+ headers?: {
240
+ "X-Target-Org-Id"?: string | null;
241
+ };
242
+ body: ObjectViewCreate;
243
+ };
244
+ output: ApiResponse_SavedViewResponse_;
245
+ };
246
+ /**
247
+ * DELETE /objects/{object_slug}/imports/csv/drafts/{draft_id}
248
+ * Delete Object Csv Import
249
+ * tier: destructive · scope: objects:write
250
+ */
251
+ delete_object_csv_import_objects__object_slug__imports_csv_drafts__draft_id__delete: {
252
+ input: {
253
+ path: {
254
+ object_slug: string;
255
+ draft_id: string;
256
+ };
257
+ query: {
258
+ revision: number;
259
+ };
260
+ headers?: {
261
+ "X-Target-Org-Id"?: string | null;
262
+ };
263
+ };
264
+ output: ApiResponse_dict_;
265
+ };
266
+ /**
267
+ * DELETE /objects/{object_slug}/records/{record_id}/relationships/{relationship_id}
268
+ * Delete Object Relationship
269
+ * tier: destructive · scope: objects:write
270
+ */
271
+ delete_object_relationship_objects__object_slug__records__record_id__relationships__relationship_id__delete: {
272
+ input: {
273
+ path: {
274
+ object_slug: string;
275
+ record_id: string;
276
+ relationship_id: string;
277
+ };
278
+ headers?: {
279
+ "X-Target-Org-Id"?: string | null;
280
+ };
281
+ body: RelationshipCreate;
282
+ };
283
+ output: ApiResponse_RelationshipResponse_;
284
+ };
285
+ /**
286
+ * DELETE /objects/{object_slug}/views/{view_id}
287
+ * Delete Object View
288
+ * tier: destructive · scope: objects:delete
289
+ */
290
+ delete_object_view_objects__object_slug__views__view_id__delete: {
291
+ input: {
292
+ path: {
293
+ object_slug: string;
294
+ view_id: string;
295
+ };
296
+ headers?: {
297
+ "X-Target-Org-Id"?: string | null;
298
+ };
299
+ };
300
+ output: ApiResponse_NoneType_;
301
+ };
302
+ /**
303
+ * GET /objects/{object_slug}/imports/csv/drafts/{draft_id}/errors
304
+ * Download Object Csv Import Errors
305
+ * tier: read · scope: objects:write
306
+ */
307
+ download_object_csv_import_errors_objects__object_slug__imports_csv_drafts__draft_id__errors_get: {
308
+ input: {
309
+ path: {
310
+ object_slug: string;
311
+ draft_id: string;
312
+ };
313
+ headers?: {
314
+ "X-Target-Org-Id"?: string | null;
315
+ };
316
+ };
317
+ output: unknown;
318
+ };
319
+ /**
320
+ * POST /objects/{object_slug}/exports
321
+ * Export Object Records
322
+ * tier: write · scope: objects:export
323
+ */
324
+ export_object_records_objects__object_slug__exports_post: {
325
+ input: {
326
+ path: {
327
+ object_slug: string;
328
+ };
329
+ headers?: {
330
+ "X-Target-Org-Id"?: string | null;
331
+ };
332
+ body: ObjectExportRequest;
333
+ };
334
+ output: string;
335
+ };
136
336
  /**
137
337
  * GET /objects/{object_slug}
138
338
  * Get Object
@@ -149,6 +349,23 @@ export interface ObjectsOperations {
149
349
  };
150
350
  output: ApiResponse_ObjectDefinitionResponse_;
151
351
  };
352
+ /**
353
+ * GET /objects/{object_slug}/imports/csv/drafts/{draft_id}
354
+ * Get Object Csv Import
355
+ * tier: read · scope: objects:write
356
+ */
357
+ get_object_csv_import_objects__object_slug__imports_csv_drafts__draft_id__get: {
358
+ input: {
359
+ path: {
360
+ object_slug: string;
361
+ draft_id: string;
362
+ };
363
+ headers?: {
364
+ "X-Target-Org-Id"?: string | null;
365
+ };
366
+ };
367
+ output: ApiResponse_ObjectImportDetail_;
368
+ };
152
369
  /**
153
370
  * GET /objects/{object_slug}/records/{record_id}
154
371
  * Get Object Record
@@ -208,6 +425,64 @@ export interface ObjectsOperations {
208
425
  };
209
426
  output: ApiResponse_RecordHistoryResponse_;
210
427
  };
428
+ /**
429
+ * GET /objects/{object_slug}/relationships
430
+ * Get Object Relationship Definitions
431
+ * tier: read · scope: objects:read
432
+ */
433
+ get_object_relationship_definitions_objects__object_slug__relationships_get: {
434
+ input: {
435
+ path: {
436
+ object_slug: string;
437
+ };
438
+ query?: {
439
+ limit?: number;
440
+ offset?: number;
441
+ };
442
+ headers?: {
443
+ "X-Target-Org-Id"?: string | null;
444
+ };
445
+ };
446
+ output: ApiResponse_RelationshipDefinitionListResponse_;
447
+ };
448
+ /**
449
+ * GET /objects/{object_slug}/records/{record_id}/relationships
450
+ * Get Object Relationships
451
+ * tier: read · scope: objects:read
452
+ */
453
+ get_object_relationships_objects__object_slug__records__record_id__relationships_get: {
454
+ input: {
455
+ path: {
456
+ object_slug: string;
457
+ record_id: string;
458
+ };
459
+ query?: {
460
+ limit?: number;
461
+ offset?: number;
462
+ };
463
+ headers?: {
464
+ "X-Target-Org-Id"?: string | null;
465
+ };
466
+ };
467
+ output: ApiResponse_RecordRelationshipsResponse_;
468
+ };
469
+ /**
470
+ * POST /objects/{object_slug}/imports/csv/inspect
471
+ * Inspect Object Csv Import
472
+ * tier: write · scope: objects:write
473
+ */
474
+ inspect_object_csv_import_objects__object_slug__imports_csv_inspect_post: {
475
+ input: {
476
+ path: {
477
+ object_slug: string;
478
+ };
479
+ headers?: {
480
+ "X-Target-Org-Id"?: string | null;
481
+ };
482
+ body: ObjectCsvInspect;
483
+ };
484
+ output: ApiResponse_ObjectCsvInspection_;
485
+ };
211
486
  /**
212
487
  * GET /objects/{object_slug}/attributes
213
488
  * List Object Attributes
@@ -227,6 +502,26 @@ export interface ObjectsOperations {
227
502
  };
228
503
  output: ApiResponse_list_AttributeDefinitionResponse__;
229
504
  };
505
+ /**
506
+ * GET /objects/{object_slug}/imports/csv/drafts
507
+ * List Object Csv Imports
508
+ * tier: read · scope: objects:write
509
+ */
510
+ list_object_csv_imports_objects__object_slug__imports_csv_drafts_get: {
511
+ input: {
512
+ path: {
513
+ object_slug: string;
514
+ };
515
+ query?: {
516
+ limit?: number;
517
+ offset?: number;
518
+ };
519
+ headers?: {
520
+ "X-Target-Org-Id"?: string | null;
521
+ };
522
+ };
523
+ output: ApiResponse_list_ObjectImportSummary__;
524
+ };
230
525
  /**
231
526
  * GET /objects/{object_slug}/records
232
527
  * List Object Records
@@ -251,6 +546,22 @@ export interface ObjectsOperations {
251
546
  };
252
547
  output: ApiResponse_list_ObjectRecordResponse__;
253
548
  };
549
+ /**
550
+ * GET /objects/{object_slug}/views
551
+ * List Object Views
552
+ * tier: read · scope: objects:read
553
+ */
554
+ list_object_views_objects__object_slug__views_get: {
555
+ input: {
556
+ path: {
557
+ object_slug: string;
558
+ };
559
+ headers?: {
560
+ "X-Target-Org-Id"?: string | null;
561
+ };
562
+ };
563
+ output: ApiResponse_list_SavedViewResponse__;
564
+ };
254
565
  /**
255
566
  * GET /objects
256
567
  * List Objects
@@ -267,6 +578,75 @@ export interface ObjectsOperations {
267
578
  };
268
579
  output: ApiResponse_list_ObjectDefinitionResponse__;
269
580
  };
581
+ /**
582
+ * POST /objects/{object_slug}/records/merge
583
+ * Merge Object Records
584
+ * tier: write · scope: objects:write
585
+ */
586
+ merge_object_records_objects__object_slug__records_merge_post: {
587
+ input: {
588
+ path: {
589
+ object_slug: string;
590
+ };
591
+ headers?: {
592
+ "X-Target-Org-Id"?: string | null;
593
+ };
594
+ body: RecordMergeRequest;
595
+ };
596
+ output: ApiResponse_RecordMergeResponse_;
597
+ };
598
+ /**
599
+ * POST /objects/{object_slug}/imports/csv/drafts/{draft_id}/preview
600
+ * Preview Object Csv Import
601
+ * tier: write · scope: objects:write
602
+ */
603
+ preview_object_csv_import_objects__object_slug__imports_csv_drafts__draft_id__preview_post: {
604
+ input: {
605
+ path: {
606
+ object_slug: string;
607
+ draft_id: string;
608
+ };
609
+ headers?: {
610
+ "X-Target-Org-Id"?: string | null;
611
+ };
612
+ body: ImportPage;
613
+ };
614
+ output: ApiResponse_ObjectCsvPreview_;
615
+ };
616
+ /**
617
+ * POST /objects/{object_slug}/views/board/groups
618
+ * Query Object Board Groups
619
+ * tier: write · scope: objects:read
620
+ */
621
+ query_object_board_groups_objects__object_slug__views_board_groups_post: {
622
+ input: {
623
+ path: {
624
+ object_slug: string;
625
+ };
626
+ headers?: {
627
+ "X-Target-Org-Id"?: string | null;
628
+ };
629
+ body: ObjectViewState;
630
+ };
631
+ output: ApiResponse_list_ObjectBoardGroup__;
632
+ };
633
+ /**
634
+ * POST /objects/{object_slug}/views/board/records
635
+ * Query Object Board Records
636
+ * tier: write · scope: objects:read
637
+ */
638
+ query_object_board_records_objects__object_slug__views_board_records_post: {
639
+ input: {
640
+ path: {
641
+ object_slug: string;
642
+ };
643
+ headers?: {
644
+ "X-Target-Org-Id"?: string | null;
645
+ };
646
+ body: ObjectBoardPage;
647
+ };
648
+ output: ApiResponse_RecordListResponse_;
649
+ };
270
650
  /**
271
651
  * POST /objects/{object_slug}/records/{record_id}/restore
272
652
  * Restore Object Record
@@ -284,6 +664,23 @@ export interface ObjectsOperations {
284
664
  };
285
665
  output: ApiResponse_ObjectRecordResponse_;
286
666
  };
667
+ /**
668
+ * PUT /objects/{object_slug}/views/default
669
+ * Set Default Object View
670
+ * tier: write · scope: objects:write
671
+ */
672
+ set_default_object_view_objects__object_slug__views_default_put: {
673
+ input: {
674
+ path: {
675
+ object_slug: string;
676
+ };
677
+ headers?: {
678
+ "X-Target-Org-Id"?: string | null;
679
+ };
680
+ body: ObjectViewDefault;
681
+ };
682
+ output: ApiResponse_Union_SavedViewResponse__NoneType__;
683
+ };
287
684
  /**
288
685
  * PATCH /objects/{object_slug}/attributes/{attr_slug}
289
686
  * Update Attribute
@@ -319,6 +716,27 @@ export interface ObjectsOperations {
319
716
  };
320
717
  output: ApiResponse_ObjectDefinitionResponse_;
321
718
  };
719
+ /**
720
+ * PUT /objects/{object_slug}/imports/csv/drafts/{draft_id}
721
+ * Update Object Csv Import
722
+ * tier: write · scope: objects:write
723
+ */
724
+ update_object_csv_import_objects__object_slug__imports_csv_drafts__draft_id__put: {
725
+ input: {
726
+ path: {
727
+ object_slug: string;
728
+ draft_id: string;
729
+ };
730
+ query: {
731
+ revision: number;
732
+ };
733
+ headers?: {
734
+ "X-Target-Org-Id"?: string | null;
735
+ };
736
+ body: ObjectImportUpdate;
737
+ };
738
+ output: ApiResponse_ObjectImportDetail_;
739
+ };
322
740
  /**
323
741
  * PATCH /objects/{object_slug}/records/{record_id}
324
742
  * Update Object Record
@@ -337,6 +755,24 @@ export interface ObjectsOperations {
337
755
  };
338
756
  output: ApiResponse_ObjectRecordResponse_;
339
757
  };
758
+ /**
759
+ * PUT /objects/{object_slug}/views/{view_id}
760
+ * Update Object View
761
+ * tier: write · scope: objects:write
762
+ */
763
+ update_object_view_objects__object_slug__views__view_id__put: {
764
+ input: {
765
+ path: {
766
+ object_slug: string;
767
+ view_id: string;
768
+ };
769
+ headers?: {
770
+ "X-Target-Org-Id"?: string | null;
771
+ };
772
+ body: ObjectViewUpdate;
773
+ };
774
+ output: ApiResponse_SavedViewResponse_;
775
+ };
340
776
  /**
341
777
  * POST /objects/{object_slug}/records/upsert
342
778
  * Upsert Object Record
@@ -356,48 +792,133 @@ export interface ObjectsOperations {
356
792
  };
357
793
  }
358
794
 
359
- // 26 schemas referenced above (the same as G8Contract.<Name>).
795
+ // 84 schemas referenced above (the same as G8Contract.<Name>).
360
796
 
361
797
  export interface ApiResponse_AttributeDefinitionResponse_ {
362
798
  data: AttributeDefinitionResponse;
363
799
  pagination?: PaginationMeta | null;
364
800
  }
365
801
 
802
+ export interface ApiResponse_NoneType_ {
803
+ data: null;
804
+ pagination?: PaginationMeta | null;
805
+ }
806
+
807
+ export interface ApiResponse_ObjectCsvInspection_ {
808
+ data: ObjectCsvInspection;
809
+ pagination?: PaginationMeta | null;
810
+ }
811
+
812
+ export interface ApiResponse_ObjectCsvPreview_ {
813
+ data: ObjectCsvPreview;
814
+ pagination?: PaginationMeta | null;
815
+ }
816
+
817
+ export interface ApiResponse_ObjectCsvReceipt_ {
818
+ data: ObjectCsvReceipt;
819
+ pagination?: PaginationMeta | null;
820
+ }
821
+
366
822
  export interface ApiResponse_ObjectDefinitionResponse_ {
367
823
  data: ObjectDefinitionResponse;
368
824
  pagination?: PaginationMeta | null;
369
825
  }
370
826
 
827
+ export interface ApiResponse_ObjectImportDetail_ {
828
+ data: ObjectImportDetail;
829
+ pagination?: PaginationMeta | null;
830
+ }
831
+
371
832
  export interface ApiResponse_ObjectRecordResponse_ {
372
833
  data: ObjectRecordResponse;
373
834
  pagination?: PaginationMeta | null;
374
835
  }
375
836
 
837
+ export interface ApiResponse_RecordBulkUpdateResponse_ {
838
+ data: RecordBulkUpdateResponse;
839
+ pagination?: PaginationMeta | null;
840
+ }
841
+
376
842
  export interface ApiResponse_RecordHistoryResponse_ {
377
843
  data: RecordHistoryResponse;
378
844
  pagination?: PaginationMeta | null;
379
845
  }
380
846
 
847
+ export interface ApiResponse_RecordListResponse_ {
848
+ data: RecordListResponse;
849
+ pagination?: PaginationMeta | null;
850
+ }
851
+
852
+ export interface ApiResponse_RecordMergeResponse_ {
853
+ data: RecordMergeResponse;
854
+ pagination?: PaginationMeta | null;
855
+ }
856
+
381
857
  export interface ApiResponse_RecordMutationsResponse_ {
382
858
  data: RecordMutationsResponse;
383
859
  pagination?: PaginationMeta | null;
384
860
  }
385
861
 
862
+ export interface ApiResponse_RecordRelationshipsResponse_ {
863
+ data: RecordRelationshipsResponse;
864
+ pagination?: PaginationMeta | null;
865
+ }
866
+
867
+ export interface ApiResponse_RelationshipDefinitionListResponse_ {
868
+ data: RelationshipDefinitionListResponse;
869
+ pagination?: PaginationMeta | null;
870
+ }
871
+
872
+ export interface ApiResponse_RelationshipResponse_ {
873
+ data: RelationshipResponse;
874
+ pagination?: PaginationMeta | null;
875
+ }
876
+
877
+ export interface ApiResponse_SavedViewResponse_ {
878
+ data: SavedViewResponse;
879
+ pagination?: PaginationMeta | null;
880
+ }
881
+
882
+ export interface ApiResponse_Union_SavedViewResponse__NoneType__ {
883
+ data: SavedViewResponse | null;
884
+ pagination?: PaginationMeta | null;
885
+ }
886
+
887
+ export interface ApiResponse_dict_ {
888
+ data: Record<string, unknown>;
889
+ pagination?: PaginationMeta | null;
890
+ }
891
+
386
892
  export interface ApiResponse_list_AttributeDefinitionResponse__ {
387
893
  data: Array<AttributeDefinitionResponse>;
388
894
  pagination?: PaginationMeta | null;
389
895
  }
390
896
 
897
+ export interface ApiResponse_list_ObjectBoardGroup__ {
898
+ data: Array<ObjectBoardGroup>;
899
+ pagination?: PaginationMeta | null;
900
+ }
901
+
391
902
  export interface ApiResponse_list_ObjectDefinitionResponse__ {
392
903
  data: Array<ObjectDefinitionResponse>;
393
904
  pagination?: PaginationMeta | null;
394
905
  }
395
906
 
907
+ export interface ApiResponse_list_ObjectImportSummary__ {
908
+ data: Array<ObjectImportSummary>;
909
+ pagination?: PaginationMeta | null;
910
+ }
911
+
396
912
  export interface ApiResponse_list_ObjectRecordResponse__ {
397
913
  data: Array<ObjectRecordResponse>;
398
914
  pagination?: PaginationMeta | null;
399
915
  }
400
916
 
917
+ export interface ApiResponse_list_SavedViewResponse__ {
918
+ data: Array<SavedViewResponse>;
919
+ pagination?: PaginationMeta | null;
920
+ }
921
+
401
922
  /** Configuration for specific attribute types. */
402
923
  export interface AttributeConfig {
403
924
  currency_code?: string | null;
@@ -449,6 +970,8 @@ export interface AttributeDefinitionResponse {
449
970
  sort_order?: number;
450
971
  /** Customer-facing field label, distinct from its stable API slug. */
451
972
  title: string;
973
+ /** Role ids that may see this field; null means every role. Owners and admins always see every field. A field hidden from the caller is absent from every response. Set it with PATCH on this attribute. */
974
+ visible_to_role_ids?: Array<string> | null;
452
975
  }
453
976
 
454
977
  /** Valid attribute types for the Custom Objects type system. */
@@ -465,6 +988,83 @@ export interface AttributeUpdateRequest {
465
988
  is_unique?: boolean | null;
466
989
  sort_order?: number | null;
467
990
  title?: string | null;
991
+ visible_to_role_ids?: Array<string> | null;
992
+ }
993
+
994
+ /**
995
+ * Which CRM grid the saved view applies to. Free-form string at the DB
996
+ * level (cb_saved_views.entity_type is VARCHAR(50)) to avoid a schema
997
+ * migration when we add deals/tasks/leads — but enforced as an enum at the
998
+ * API boundary so we don't accept typos.
999
+ *
1000
+ * NEITHER A SUBSET NOR A SUPERSET OF ``FilterEntityType`` — see the invariant
1001
+ * on that class, and the sibling docstring below, which states the same
1002
+ * relationship from the other side. The two enums overlap on the four GRID
1003
+ * values (``contacts``, ``companies``, ``deals``, ``leads``);
1004
+ * ``FilterEntityType`` is a superset of THOSE and adds ``report``, while the
1005
+ * nine list/view/search/workbench members here have no counterpart there.
1006
+ * Custom objects additionally use an object-bound view context.
1007
+ *
1008
+ * (This paragraph previously read "DELIBERATELY NARROWER THAN
1009
+ * ``FilterEntityType``", which inverted the relationship: this is the LARGER
1010
+ * enum. The narrowness that matters is real but specific — ``report`` is
1011
+ * excluded, and only ``report`` — so stating it as a general containment
1012
+ * invited exactly the wrong conclusion about the other nine.)
1013
+ *
1014
+ * Native grid members can be saved with ``context_key = NULL`` for reuse
1015
+ * across that entity type. CUSTOM_OBJECTS is the exception: it requires an
1016
+ * immutable object context and the object-authorized endpoints. It must never
1017
+ * enter the native grids' reusable saved-filter menus.
1018
+ */
1019
+ export type EntityType = "custom_objects" | "contacts" | "companies" | "deals" | "leads" | "lists" | "contacts_view" | "companies_view" | "list_contacts" | "list_companies" | "search_people" | "search_companies" | "abm_companies" | "enrichment_workbench" | "enrichment_workbenches";
1020
+
1021
+ export interface ImportPage {
1022
+ limit?: number;
1023
+ offset?: number;
1024
+ /** The draft revision this page was planned against */
1025
+ revision: number;
1026
+ }
1027
+
1028
+ export interface ImportPreviewRow {
1029
+ already_imported?: boolean;
1030
+ errors?: Array<Record<string, unknown>>;
1031
+ record_id?: string | null;
1032
+ revision?: number | null;
1033
+ row_number: number;
1034
+ values?: Record<string, unknown>;
1035
+ }
1036
+
1037
+ export interface ImportReceiptRow {
1038
+ action: "created" | "updated";
1039
+ record_id: string;
1040
+ replayed?: boolean;
1041
+ revision: number;
1042
+ row_number: number;
1043
+ }
1044
+
1045
+ export interface ImportRowExpectation {
1046
+ record_id?: string | null;
1047
+ revision?: number | null;
1048
+ row_number: number;
1049
+ }
1050
+
1051
+ /** A row this commit did not import; its errors are kept for the error file. */
1052
+ export interface ImportSkippedRow {
1053
+ errors: Array<Record<string, unknown>>;
1054
+ row_number: number;
1055
+ }
1056
+
1057
+ export interface ObjectBoardGroup {
1058
+ label: string;
1059
+ total: number;
1060
+ value: string | null;
1061
+ }
1062
+
1063
+ export interface ObjectBoardPage {
1064
+ group_value?: string | null;
1065
+ limit?: number;
1066
+ offset?: number;
1067
+ state: ObjectViewState;
468
1068
  }
469
1069
 
470
1070
  export interface ObjectCreateRequest {
@@ -475,6 +1075,44 @@ export interface ObjectCreateRequest {
475
1075
  slug: string;
476
1076
  }
477
1077
 
1078
+ export interface ObjectCsvInspect {
1079
+ csv: string;
1080
+ }
1081
+
1082
+ export interface ObjectCsvInspection {
1083
+ headers: Array<string>;
1084
+ sample: Array<Array<string>>;
1085
+ total: number;
1086
+ }
1087
+
1088
+ export interface ObjectCsvPreview {
1089
+ completed: number;
1090
+ next_offset: number | null;
1091
+ rows: Array<ImportPreviewRow>;
1092
+ schema_fingerprint: string;
1093
+ total: number;
1094
+ }
1095
+
1096
+ /**
1097
+ * Outcome of one committed page. ``created`` / ``updated`` / ``skipped`` count
1098
+ * this request only; rows an earlier attempt already imported are
1099
+ * ``already_imported``. ``completed`` and ``error_rows`` are the import's totals.
1100
+ */
1101
+ export interface ObjectCsvReceipt {
1102
+ already_imported: number;
1103
+ completed: number;
1104
+ created: number;
1105
+ error_file_available: boolean;
1106
+ error_rows: number;
1107
+ replayed?: boolean;
1108
+ rows: Array<ImportReceiptRow>;
1109
+ skipped: number;
1110
+ skipped_rows?: Array<ImportSkippedRow>;
1111
+ status: "draft" | "partial" | "completed" | "expired";
1112
+ total: number;
1113
+ updated: number;
1114
+ }
1115
+
478
1116
  /** One custom object type in the caller's workspace. */
479
1117
  export interface ObjectDefinitionResponse {
480
1118
  /** Customer-configured object description. */
@@ -495,6 +1133,82 @@ export interface ObjectDefinitionResponse {
495
1133
  slug: string;
496
1134
  }
497
1135
 
1136
+ export interface ObjectExportRequest {
1137
+ format?: "csv" | "json";
1138
+ state?: ObjectViewState;
1139
+ }
1140
+
1141
+ export interface ObjectImportCommit {
1142
+ expected: Array<ImportRowExpectation>;
1143
+ limit?: number;
1144
+ offset?: number;
1145
+ /** The draft revision this page was planned against */
1146
+ revision: number;
1147
+ schema_fingerprint: string;
1148
+ }
1149
+
1150
+ export interface ObjectImportCreate {
1151
+ csv: string;
1152
+ filename: string;
1153
+ mapping?: Record<string, string>;
1154
+ matching_attribute?: string | null;
1155
+ mode?: "create" | "upsert";
1156
+ }
1157
+
1158
+ export interface ObjectImportDetail {
1159
+ completed: number;
1160
+ created_at: string;
1161
+ error_rows: number;
1162
+ expires_at: string;
1163
+ filename: string;
1164
+ headers: Array<string>;
1165
+ id: string;
1166
+ owner_id: string;
1167
+ owner_type: "user" | "api";
1168
+ revision: number;
1169
+ /** First rows of the file while it is still stored */
1170
+ sample?: Array<Array<string>>;
1171
+ setup: ObjectImportSetup;
1172
+ source_available: boolean;
1173
+ status: "draft" | "partial" | "completed" | "expired";
1174
+ total: number;
1175
+ updated_at: string;
1176
+ }
1177
+
1178
+ /**
1179
+ * Column mapping (CSV header -> field slug) and match mode. May be
1180
+ * incomplete while saved; preview and commit need an executable setup.
1181
+ */
1182
+ export interface ObjectImportSetup {
1183
+ mapping?: Record<string, string>;
1184
+ matching_attribute?: string | null;
1185
+ mode?: "create" | "upsert";
1186
+ }
1187
+
1188
+ /** History metadata: never cell values. */
1189
+ export interface ObjectImportSummary {
1190
+ completed: number;
1191
+ created_at: string;
1192
+ error_rows: number;
1193
+ expires_at: string;
1194
+ filename: string;
1195
+ id: string;
1196
+ owner_id: string;
1197
+ owner_type: "user" | "api";
1198
+ revision: number;
1199
+ source_available: boolean;
1200
+ status: "draft" | "partial" | "completed" | "expired";
1201
+ total: number;
1202
+ updated_at: string;
1203
+ }
1204
+
1205
+ export interface ObjectImportUpdate {
1206
+ filename: string;
1207
+ mapping?: Record<string, string>;
1208
+ matching_attribute?: string | null;
1209
+ mode?: "create" | "upsert";
1210
+ }
1211
+
498
1212
  /** One record, with its currently active attribute values. */
499
1213
  export interface ObjectRecordResponse {
500
1214
  created_at?: string | null;
@@ -520,6 +1234,33 @@ export interface ObjectUpdateRequest {
520
1234
  singular_noun?: string | null;
521
1235
  }
522
1236
 
1237
+ export interface ObjectViewCreate {
1238
+ state?: ObjectViewState;
1239
+ title: string;
1240
+ visibility?: Visibility;
1241
+ }
1242
+
1243
+ export interface ObjectViewDefault {
1244
+ view_id?: string | null;
1245
+ }
1246
+
1247
+ export interface ObjectViewState {
1248
+ columns?: Array<string> | null;
1249
+ filters?: Array<RecordFilter>;
1250
+ groupBy?: string | null;
1251
+ includeArchived?: boolean;
1252
+ layout?: "table" | "board";
1253
+ search?: string;
1254
+ sortBy?: string | null;
1255
+ sortOrder?: "asc" | "desc";
1256
+ version?: 1;
1257
+ }
1258
+
1259
+ export interface ObjectViewUpdate {
1260
+ state?: ObjectViewState | null;
1261
+ title?: string | null;
1262
+ }
1263
+
523
1264
  export interface PaginationMeta {
524
1265
  /** Whether there are more pages */
525
1266
  has_next: boolean;
@@ -539,6 +1280,51 @@ export interface PaginationMeta {
539
1280
  total_is_lower_bound?: boolean | null;
540
1281
  }
541
1282
 
1283
+ /**
1284
+ * Bulk-update body: exactly one scope (explicit ids or a filtered set),
1285
+ * plus the values to apply to every record in that scope.
1286
+ *
1287
+ * ``record_ids`` is capped at 500 to bound the transaction. ``filters`` reuses
1288
+ * this router's own ``RecordFilter`` shape; a filtered scope is resolved
1289
+ * entirely server-side (ordered by record id, at most 500 per call) and the
1290
+ * ids it resolves are never trusted from the client. ``after_record_id``
1291
+ * continues a filtered scope that the previous call reported as truncated.
1292
+ */
1293
+ export interface RecordBulkUpdate {
1294
+ after_record_id?: string | null;
1295
+ filters?: Array<RecordFilter> | null;
1296
+ record_ids?: Array<string> | null;
1297
+ values?: Record<string, unknown>;
1298
+ }
1299
+
1300
+ /**
1301
+ * One record a bulk update did not change. ``error`` is the human message
1302
+ * (kept for existing clients); ``code`` is stable for UIs to branch on:
1303
+ * locked, archived, not_found, scope_changed, unique_conflict, invalid_value,
1304
+ * constraint_violation or rejected; ``attribute_slug`` names the field when
1305
+ * one field caused it.
1306
+ */
1307
+ export interface RecordBulkUpdateFailure {
1308
+ attribute_slug?: string | null;
1309
+ code?: string;
1310
+ error: string;
1311
+ id: string;
1312
+ }
1313
+
1314
+ export interface RecordBulkUpdateResponse {
1315
+ failed: Array<RecordBulkUpdateFailure>;
1316
+ next_after_record_id?: string | null;
1317
+ succeeded: Array<string>;
1318
+ truncated?: boolean;
1319
+ }
1320
+
1321
+ /** Filter parameters for listing records. */
1322
+ export interface RecordFilter {
1323
+ attribute_slug: string;
1324
+ operator: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "contains" | "starts_with" | "is_null" | "is_not_null";
1325
+ value?: unknown | null;
1326
+ }
1327
+
542
1328
  /**
543
1329
  * One generation of one attribute's value.
544
1330
  *
@@ -566,6 +1352,43 @@ export interface RecordHistoryResponse {
566
1352
  record_id: string;
567
1353
  }
568
1354
 
1355
+ /** Response for listing records. */
1356
+ export interface RecordListResponse {
1357
+ records: Array<RecordResponse>;
1358
+ total: number;
1359
+ }
1360
+
1361
+ export interface RecordMergeCascade {
1362
+ associations_deleted: number;
1363
+ associations_repointed: number;
1364
+ relationships_deleted: number;
1365
+ relationships_repointed: number;
1366
+ }
1367
+
1368
+ export interface RecordMergeFieldOverride {
1369
+ attribute_slug: string;
1370
+ winner: "primary" | "secondary";
1371
+ }
1372
+
1373
+ /**
1374
+ * Merge ``secondary_record_id`` into ``primary_record_id``. The primary's
1375
+ * graph8 identity (id, legacy_id/legacy_type) is preserved; the secondary is
1376
+ * archived, never hard-deleted.
1377
+ */
1378
+ export interface RecordMergeRequest {
1379
+ expected_primary_revision?: number | null;
1380
+ expected_secondary_revision?: number | null;
1381
+ field_overrides?: Array<RecordMergeFieldOverride>;
1382
+ primary_record_id: string;
1383
+ secondary_record_id: string;
1384
+ }
1385
+
1386
+ export interface RecordMergeResponse {
1387
+ cascade: RecordMergeCascade;
1388
+ merge_history_id: string;
1389
+ record: RecordResponse;
1390
+ }
1391
+
569
1392
  export interface RecordMutationEntry {
570
1393
  action: "created" | "updated" | "archived" | "restored";
571
1394
  actor_id: string | null;
@@ -594,6 +1417,24 @@ export interface RecordMutationsResponse {
594
1417
  record_id: string;
595
1418
  }
596
1419
 
1420
+ export interface RecordRelationshipsResponse {
1421
+ /** Next visible page offset; null at the end */
1422
+ next_offset: number | null;
1423
+ relationships: Array<RelatedRecordEdge>;
1424
+ }
1425
+
1426
+ /** Response for a record with its current attribute values. */
1427
+ export interface RecordResponse {
1428
+ created_at: string;
1429
+ id: string;
1430
+ is_archived: boolean;
1431
+ object_definition_id: string;
1432
+ organization_id: string;
1433
+ revision?: number;
1434
+ updated_at: string;
1435
+ values: Record<string, unknown>;
1436
+ }
1437
+
597
1438
  export interface RecordUpdateRequest {
598
1439
  /** Append canonical non-duplicate values to multivalue fields. Fields must not overlap values or remove_values. */
599
1440
  append_values?: Record<string, Array<unknown>>;
@@ -625,3 +1466,81 @@ export interface RecordWriteRequest {
625
1466
  /** Attribute values keyed by slug. Call `GET /objects/{object_slug}/attributes` for active fields. Canonical contacts and companies retain CONTACT_*, COMPANY_* and udo_* field names. Unknown keys are rejected with 422. PATCH preserves omitted fields; required fields cannot be cleared with null or an empty multivalue list. Record references must resolve to active records of their configured target object in the same organization and app. */
626
1467
  values?: Record<string, unknown>;
627
1468
  }
1469
+
1470
+ export interface RelatedRecordEdge {
1471
+ can_unlink: boolean;
1472
+ definition_id: string;
1473
+ definition_revision: number;
1474
+ id: string;
1475
+ relationship_label: string;
1476
+ source_kind: "custom" | "contacts" | "companies" | "deals";
1477
+ source_label: string | null;
1478
+ source_object_slug: string;
1479
+ source_record_id: string;
1480
+ source_revision: number;
1481
+ target_kind: "custom" | "contacts" | "companies" | "deals";
1482
+ target_label: string | null;
1483
+ target_object_slug: string;
1484
+ target_record_id: string;
1485
+ target_revision: number;
1486
+ }
1487
+
1488
+ export interface RelationshipCreate {
1489
+ definition_id: string;
1490
+ expected_definition_revision: number;
1491
+ expected_source_revision: number;
1492
+ expected_target_revision: number;
1493
+ target_record_id: string;
1494
+ }
1495
+
1496
+ export interface RelationshipDefinitionListResponse {
1497
+ relationships: Array<RelationshipDefinitionResponse>;
1498
+ total: number;
1499
+ }
1500
+
1501
+ export interface RelationshipDefinitionResponse {
1502
+ api_slug: string;
1503
+ created_at: string;
1504
+ id: string;
1505
+ is_archived: boolean;
1506
+ revision: number;
1507
+ source_kind: string;
1508
+ source_label: string;
1509
+ source_many: boolean;
1510
+ source_object_definition_id: string | null;
1511
+ target_kind: string;
1512
+ target_label: string;
1513
+ target_many: boolean;
1514
+ target_object_definition_id: string | null;
1515
+ }
1516
+
1517
+ export interface RelationshipResponse {
1518
+ definition_id: string;
1519
+ id: string;
1520
+ source_kind: string;
1521
+ source_record_id: string;
1522
+ source_revision: number;
1523
+ target_kind: string;
1524
+ target_record_id: string;
1525
+ target_revision: number;
1526
+ }
1527
+
1528
+ /** Response shape — flat shape with state at top level for convenience. */
1529
+ export interface SavedViewResponse {
1530
+ context_key: string | null;
1531
+ created_at: string | null;
1532
+ created_by: string;
1533
+ description: string | null;
1534
+ entity_type: EntityType;
1535
+ id: string;
1536
+ is_default: boolean;
1537
+ is_owner: boolean;
1538
+ is_reusable: boolean;
1539
+ state: Record<string, unknown>;
1540
+ title: string;
1541
+ updated_at: string | null;
1542
+ visibility: Visibility;
1543
+ }
1544
+
1545
+ /** Who can apply a view. Only the creator can update or delete it. */
1546
+ export type Visibility = "private" | "org";