@epilot/entity-client 7.1.1 → 7.2.0-rc1

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.
package/dist/openapi.d.ts CHANGED
@@ -20,7 +20,9 @@ declare namespace Components {
20
20
  * 01F130Q52Q6MWSNS8N2AVXV4JN
21
21
  */
22
22
  Schemas.ActivityId /* ulid ^01[0-9a-zA-Z]{24}$ */ | ("" | null);
23
+ export type ApplyChangesetsQueryParam = boolean;
23
24
  export type AsyncOperationQueryParam = boolean;
25
+ export type DirectQueryParam = boolean;
24
26
  export type DryRunQueryParam = boolean;
25
27
  export type EntityIdPathParam = Schemas.EntityId /* uuid */;
26
28
  export type EntityRelationsModeQueryParam = "direct" | "reverse" | "both";
@@ -89,6 +91,8 @@ declare namespace Components {
89
91
  DryRunQueryParam?: Parameters.DryRunQueryParam;
90
92
  FillActivityQueryParam?: Parameters.FillActivityQueryParam;
91
93
  ValidateEntityQueryParam?: Parameters.ValidateEntityQueryParam;
94
+ DirectQueryParam?: Parameters.DirectQueryParam;
95
+ ApplyChangesetsQueryParam?: Parameters.ApplyChangesetsQueryParam;
92
96
  }
93
97
  namespace Responses {
94
98
  /**
@@ -174,6 +178,10 @@ declare namespace Components {
174
178
  * - RelationsSoftDeleted
175
179
  * - RelationsRestored
176
180
  * - RelationsDeleted
181
+ * - ChangesetCreated
182
+ * - ChangesetAutoCleared
183
+ * - ChangesetApplied
184
+ * - ChangesetDismissed
177
185
  *
178
186
  */
179
187
  ActivityType;
@@ -287,6 +295,10 @@ declare namespace Components {
287
295
  * - RelationsSoftDeleted
288
296
  * - RelationsRestored
289
297
  * - RelationsDeleted
298
+ * - ChangesetCreated
299
+ * - ChangesetAutoCleared
300
+ * - ChangesetApplied
301
+ * - ChangesetDismissed
290
302
  *
291
303
  */
292
304
  ActivityType;
@@ -343,6 +355,10 @@ declare namespace Components {
343
355
  * - RelationsSoftDeleted
344
356
  * - RelationsRestored
345
357
  * - RelationsDeleted
358
+ * - ChangesetCreated
359
+ * - ChangesetAutoCleared
360
+ * - ChangesetApplied
361
+ * - ChangesetDismissed
346
362
  *
347
363
  */
348
364
  export type ActivityType = string;
@@ -499,6 +515,15 @@ declare namespace Components {
499
515
  */
500
516
  repeatable?: boolean;
501
517
  has_primary?: boolean;
518
+ /**
519
+ * Controls how updates to this attribute are handled.
520
+ * - `direct` (default): update is applied immediately. No changeset created.
521
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
522
+ * - `approval`: update creates a changeset, requires explicit human approval.
523
+ *
524
+ */
525
+ edit_mode?: "direct" | "external" | "approval";
526
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
502
527
  type: "address";
503
528
  default_address_fields?: /**
504
529
  * Default fields visible on addresses
@@ -680,6 +705,15 @@ declare namespace Components {
680
705
  */
681
706
  repeatable?: boolean;
682
707
  has_primary?: boolean;
708
+ /**
709
+ * Controls how updates to this attribute are handled.
710
+ * - `direct` (default): update is applied immediately. No changeset created.
711
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
712
+ * - `approval`: update creates a changeset, requires explicit human approval.
713
+ *
714
+ */
715
+ edit_mode?: "direct" | "external" | "approval";
716
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
683
717
  type: "relation_address";
684
718
  default_address_fields?: /**
685
719
  * Default fields visible on addresses
@@ -878,6 +912,15 @@ declare namespace Components {
878
912
  */
879
913
  repeatable?: boolean;
880
914
  has_primary?: boolean;
915
+ /**
916
+ * Controls how updates to this attribute are handled.
917
+ * - `direct` (default): update is applied immediately. No changeset created.
918
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
919
+ * - `approval`: update creates a changeset, requires explicit human approval.
920
+ *
921
+ */
922
+ edit_mode?: "direct" | "external" | "approval";
923
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
881
924
  type: "automation";
882
925
  }
883
926
  export interface BaseActivityItem {
@@ -902,6 +945,10 @@ declare namespace Components {
902
945
  * - RelationsSoftDeleted
903
946
  * - RelationsRestored
904
947
  * - RelationsDeleted
948
+ * - ChangesetCreated
949
+ * - ChangesetAutoCleared
950
+ * - ChangesetApplied
951
+ * - ChangesetDismissed
905
952
  *
906
953
  */
907
954
  ActivityType;
@@ -1087,6 +1134,18 @@ declare namespace Components {
1087
1134
  */
1088
1135
  repeatable?: boolean;
1089
1136
  has_primary?: boolean;
1137
+ /**
1138
+ * Controls how updates to this attribute are handled.
1139
+ * - `direct` (default): update is applied immediately. No changeset created.
1140
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
1141
+ * - `approval`: update creates a changeset, requires explicit human approval.
1142
+ *
1143
+ */
1144
+ edit_mode?: "direct" | "external" | "approval";
1145
+ /**
1146
+ * Configuration for non-direct edit modes. Required when edit_mode is external or approval with fuzzy match strategy.
1147
+ */
1148
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
1090
1149
  }
1091
1150
  /**
1092
1151
  * example:
@@ -1169,6 +1228,15 @@ declare namespace Components {
1169
1228
  * Manifest ID used to create/update the entity
1170
1229
  */
1171
1230
  _manifest?: string /* uuid */[] | null;
1231
+ /**
1232
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
1233
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
1234
+ * Use the changeset management endpoints to apply or dismiss changesets.
1235
+ *
1236
+ */
1237
+ _changesets?: {
1238
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
1239
+ } | null;
1172
1240
  }
1173
1241
  /**
1174
1242
  * Reference to blueprint
@@ -1327,9 +1395,71 @@ declare namespace Components {
1327
1395
  */
1328
1396
  repeatable?: boolean;
1329
1397
  has_primary?: boolean;
1398
+ /**
1399
+ * Controls how updates to this attribute are handled.
1400
+ * - `direct` (default): update is applied immediately. No changeset created.
1401
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
1402
+ * - `approval`: update creates a changeset, requires explicit human approval.
1403
+ *
1404
+ */
1405
+ edit_mode?: "direct" | "external" | "approval";
1406
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
1330
1407
  type: "boolean";
1331
1408
  display_type?: "switch" | "checkbox";
1332
1409
  }
1410
+ /**
1411
+ * A pending proposed change for a single entity attribute, awaiting external confirmation or human approval.
1412
+ */
1413
+ export interface Changeset {
1414
+ /**
1415
+ * The proposed new value for the attribute. Type matches the attribute type.
1416
+ */
1417
+ proposed_value: any;
1418
+ /**
1419
+ * The attribute value at the time the changeset was created. Stored for reference.
1420
+ */
1421
+ previous_value?: any;
1422
+ /**
1423
+ * Timestamp when the changeset was created
1424
+ */
1425
+ created_at: string; // date-time
1426
+ created_by?: /* Identifies the actor that created the changeset. */ ChangesetCreator;
1427
+ /**
1428
+ * The edit mode that triggered this changeset
1429
+ */
1430
+ edit_mode: "external" | "approval";
1431
+ match_strategy?: /**
1432
+ * Strategy for auto-clearing the changeset when an external update is received.
1433
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
1434
+ * - `fuzzy`: The inbound value is compared using the configured fuzzy algorithm.
1435
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
1436
+ *
1437
+ */
1438
+ MatchStrategy;
1439
+ /**
1440
+ * Optional label indicating where the change originated (e.g. end_customer_portal, installer_portal, journey, automation)
1441
+ */
1442
+ source?: string;
1443
+ }
1444
+ /**
1445
+ * Identifies the actor that created the changeset.
1446
+ */
1447
+ export interface ChangesetCreator {
1448
+ /**
1449
+ * Type of actor that created the changeset
1450
+ */
1451
+ type?: "user" | "portal_user" | "api_client" | "automation";
1452
+ /**
1453
+ * ID of the actor (user ID, portal user ID, API client ID, etc.)
1454
+ */
1455
+ id?: string;
1456
+ }
1457
+ /**
1458
+ * Map of attribute name to pending changeset. At most one changeset per attribute.
1459
+ */
1460
+ export interface ChangesetMap {
1461
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
1462
+ }
1333
1463
  /**
1334
1464
  * example:
1335
1465
  * taxonomy-slug:classification-slug
@@ -1525,6 +1655,15 @@ declare namespace Components {
1525
1655
  */
1526
1656
  repeatable?: boolean;
1527
1657
  has_primary?: boolean;
1658
+ /**
1659
+ * Controls how updates to this attribute are handled.
1660
+ * - `direct` (default): update is applied immediately. No changeset created.
1661
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
1662
+ * - `approval`: update creates a changeset, requires explicit human approval.
1663
+ *
1664
+ */
1665
+ edit_mode?: "direct" | "external" | "approval";
1666
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
1528
1667
  type: "computed";
1529
1668
  computed?: boolean;
1530
1669
  /**
@@ -1689,6 +1828,15 @@ declare namespace Components {
1689
1828
  */
1690
1829
  repeatable?: boolean;
1691
1830
  has_primary?: boolean;
1831
+ /**
1832
+ * Controls how updates to this attribute are handled.
1833
+ * - `direct` (default): update is applied immediately. No changeset created.
1834
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
1835
+ * - `approval`: update creates a changeset, requires explicit human approval.
1836
+ *
1837
+ */
1838
+ edit_mode?: "direct" | "external" | "approval";
1839
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
1692
1840
  type: "consent";
1693
1841
  topic: string;
1694
1842
  identifiers?: string[];
@@ -1846,6 +1994,15 @@ declare namespace Components {
1846
1994
  */
1847
1995
  repeatable?: boolean;
1848
1996
  has_primary?: boolean;
1997
+ /**
1998
+ * Controls how updates to this attribute are handled.
1999
+ * - `direct` (default): update is applied immediately. No changeset created.
2000
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
2001
+ * - `approval`: update creates a changeset, requires explicit human approval.
2002
+ *
2003
+ */
2004
+ edit_mode?: "direct" | "external" | "approval";
2005
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
1849
2006
  type: "country";
1850
2007
  }
1851
2008
  /**
@@ -2001,6 +2158,15 @@ declare namespace Components {
2001
2158
  */
2002
2159
  repeatable?: boolean;
2003
2160
  has_primary?: boolean;
2161
+ /**
2162
+ * Controls how updates to this attribute are handled.
2163
+ * - `direct` (default): update is applied immediately. No changeset created.
2164
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
2165
+ * - `approval`: update creates a changeset, requires explicit human approval.
2166
+ *
2167
+ */
2168
+ edit_mode?: "direct" | "external" | "approval";
2169
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
2004
2170
  type: "currency";
2005
2171
  currency_selector_only?: boolean;
2006
2172
  /**
@@ -2166,6 +2332,15 @@ declare namespace Components {
2166
2332
  */
2167
2333
  repeatable?: boolean;
2168
2334
  has_primary?: boolean;
2335
+ /**
2336
+ * Controls how updates to this attribute are handled.
2337
+ * - `direct` (default): update is applied immediately. No changeset created.
2338
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
2339
+ * - `approval`: update creates a changeset, requires explicit human approval.
2340
+ *
2341
+ */
2342
+ edit_mode?: "direct" | "external" | "approval";
2343
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
2169
2344
  type: "date" | "datetime";
2170
2345
  }
2171
2346
  /**
@@ -2204,6 +2379,20 @@ declare namespace Components {
2204
2379
  */
2205
2380
  cluster?: string;
2206
2381
  }
2382
+ /**
2383
+ * Configuration for non-direct edit modes on an entity attribute.
2384
+ */
2385
+ export interface EditModeConfig {
2386
+ match_strategy?: /**
2387
+ * Strategy for auto-clearing the changeset when an external update is received.
2388
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
2389
+ * - `fuzzy`: The inbound value is compared using the configured fuzzy algorithm.
2390
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
2391
+ *
2392
+ */
2393
+ MatchStrategy;
2394
+ fuzzy_config?: /* Configuration for fuzzy match strategies on changeset auto-clearing. */ FuzzyConfig;
2395
+ }
2207
2396
  /**
2208
2397
  * Email address
2209
2398
  */
@@ -2357,6 +2546,15 @@ declare namespace Components {
2357
2546
  */
2358
2547
  repeatable?: boolean;
2359
2548
  has_primary?: boolean;
2549
+ /**
2550
+ * Controls how updates to this attribute are handled.
2551
+ * - `direct` (default): update is applied immediately. No changeset created.
2552
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
2553
+ * - `approval`: update creates a changeset, requires explicit human approval.
2554
+ *
2555
+ */
2556
+ edit_mode?: "direct" | "external" | "approval";
2557
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
2360
2558
  type: "email";
2361
2559
  }
2362
2560
  /**
@@ -2440,6 +2638,15 @@ declare namespace Components {
2440
2638
  * Manifest ID used to create/update the entity
2441
2639
  */
2442
2640
  _manifest?: string /* uuid */[] | null;
2641
+ /**
2642
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
2643
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
2644
+ * Use the changeset management endpoints to apply or dismiss changesets.
2645
+ *
2646
+ */
2647
+ _changesets?: {
2648
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
2649
+ } | null;
2443
2650
  }
2444
2651
  /**
2445
2652
  * Access control list (ACL) for an entity. Defines sharing access to external orgs or users.
@@ -2935,6 +3142,15 @@ declare namespace Components {
2935
3142
  * Manifest ID used to create/update the entity
2936
3143
  */
2937
3144
  _manifest?: string /* uuid */[] | null;
3145
+ /**
3146
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
3147
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
3148
+ * Use the changeset management endpoints to apply or dismiss changesets.
3149
+ *
3150
+ */
3151
+ _changesets?: {
3152
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
3153
+ } | null;
2938
3154
  }
2939
3155
  export interface EntityListParams {
2940
3156
  /**
@@ -3111,6 +3327,10 @@ declare namespace Components {
3111
3327
  * - RelationsSoftDeleted
3112
3328
  * - RelationsRestored
3113
3329
  * - RelationsDeleted
3330
+ * - ChangesetCreated
3331
+ * - ChangesetAutoCleared
3332
+ * - ChangesetApplied
3333
+ * - ChangesetDismissed
3114
3334
  *
3115
3335
  */
3116
3336
  ActivityType;
@@ -3213,6 +3433,15 @@ declare namespace Components {
3213
3433
  * Manifest ID used to create/update the entity
3214
3434
  */
3215
3435
  _manifest?: string /* uuid */[] | null;
3436
+ /**
3437
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
3438
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
3439
+ * Use the changeset management endpoints to apply or dismiss changesets.
3440
+ *
3441
+ */
3442
+ _changesets?: {
3443
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
3444
+ } | null;
3216
3445
  };
3217
3446
  diff?: {
3218
3447
  /**
@@ -3297,6 +3526,15 @@ declare namespace Components {
3297
3526
  * Manifest ID used to create/update the entity
3298
3527
  */
3299
3528
  _manifest?: string /* uuid */[] | null;
3529
+ /**
3530
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
3531
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
3532
+ * Use the changeset management endpoints to apply or dismiss changesets.
3533
+ *
3534
+ */
3535
+ _changesets?: {
3536
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
3537
+ } | null;
3300
3538
  };
3301
3539
  /**
3302
3540
  * Attributes updated in the entity. Note: These values contain the previous values before the update!
@@ -3380,6 +3618,15 @@ declare namespace Components {
3380
3618
  * Manifest ID used to create/update the entity
3381
3619
  */
3382
3620
  _manifest?: string /* uuid */[] | null;
3621
+ /**
3622
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
3623
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
3624
+ * Use the changeset management endpoints to apply or dismiss changesets.
3625
+ *
3626
+ */
3627
+ _changesets?: {
3628
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
3629
+ } | null;
3383
3630
  };
3384
3631
  /**
3385
3632
  * Attributes removed from the entity as part of the operation
@@ -3463,6 +3710,15 @@ declare namespace Components {
3463
3710
  * Manifest ID used to create/update the entity
3464
3711
  */
3465
3712
  _manifest?: string /* uuid */[] | null;
3713
+ /**
3714
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
3715
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
3716
+ * Use the changeset management endpoints to apply or dismiss changesets.
3717
+ *
3718
+ */
3719
+ _changesets?: {
3720
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
3721
+ } | null;
3466
3722
  };
3467
3723
  };
3468
3724
  /**
@@ -3728,6 +3984,10 @@ declare namespace Components {
3728
3984
  */
3729
3985
  attributes: Attribute[];
3730
3986
  _purpose?: string[];
3987
+ /**
3988
+ * Manifest ID used to create the schema
3989
+ */
3990
+ _manifest?: string /* uuid */[] | null;
3731
3991
  explicit_search_mappings?: /**
3732
3992
  * Advanced: explicit Elasticsearch index mapping definitions for entity data
3733
3993
  *
@@ -4120,6 +4380,10 @@ declare namespace Components {
4120
4380
  */
4121
4381
  attributes: Attribute[];
4122
4382
  _purpose?: string[];
4383
+ /**
4384
+ * Manifest ID used to create the schema
4385
+ */
4386
+ _manifest?: string /* uuid */[] | null;
4123
4387
  explicit_search_mappings?: /**
4124
4388
  * Advanced: explicit Elasticsearch index mapping definitions for entity data
4125
4389
  *
@@ -4788,6 +5052,15 @@ declare namespace Components {
4788
5052
  */
4789
5053
  repeatable?: boolean;
4790
5054
  has_primary?: boolean;
5055
+ /**
5056
+ * Controls how updates to this attribute are handled.
5057
+ * - `direct` (default): update is applied immediately. No changeset created.
5058
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
5059
+ * - `approval`: update creates a changeset, requires explicit human approval.
5060
+ *
5061
+ */
5062
+ edit_mode?: "direct" | "external" | "approval";
5063
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
4791
5064
  type: "image" | "file";
4792
5065
  multiple?: boolean;
4793
5066
  /**
@@ -4806,6 +5079,39 @@ declare namespace Components {
4806
5079
  enable_description?: boolean;
4807
5080
  default_access_control?: "public-read" | "private";
4808
5081
  }
5082
+ /**
5083
+ * Configuration for fuzzy match strategies on changeset auto-clearing.
5084
+ */
5085
+ export interface FuzzyConfig {
5086
+ /**
5087
+ * Which fuzzy algorithm to apply.
5088
+ */
5089
+ type: "suffix" | "digits_only" | "normalize_phone" | "ignore_fields" | "contains_entry" | "regex";
5090
+ /**
5091
+ * For type=suffix: number of characters to compare from end of string.
5092
+ */
5093
+ suffix_length?: number;
5094
+ /**
5095
+ * For type=ignore_fields: field names to exclude when comparing array entries.
5096
+ */
5097
+ fields_to_ignore?: string[];
5098
+ /**
5099
+ * For type=regex: flags to apply to the regex (e.g. 'i' for case-insensitive).
5100
+ */
5101
+ regex_flags?: string;
5102
+ /**
5103
+ * For type=normalize_phone: country dialing code digits to strip (e.g. '49' for Germany). No '+' prefix.
5104
+ */
5105
+ country_code?: string;
5106
+ /**
5107
+ * For type=normalize_phone and type=contains_entry: attribute key(s) within array entries to compare on.
5108
+ */
5109
+ match_on?: string;
5110
+ /**
5111
+ * For type=regex: regular expression pattern to test the incoming value against.
5112
+ */
5113
+ pattern?: string;
5114
+ }
4809
5115
  export interface GenerateEntityTableAIFiltersRequest {
4810
5116
  /**
4811
5117
  * The prompt to generate the filters
@@ -4973,6 +5279,10 @@ declare namespace Components {
4973
5279
  * If true, return full entity objects in entityNodes instead of just entity IDs in nodes
4974
5280
  */
4975
5281
  hydrate?: boolean;
5282
+ /**
5283
+ * When true and hydrate is also true, entity objects in entityNodes have pending changeset proposed values applied in-place. The _changesets field is still included in the response.
5284
+ */
5285
+ apply_changesets?: boolean;
4976
5286
  }
4977
5287
  export interface GraphQueryResponse {
4978
5288
  /**
@@ -5389,6 +5699,15 @@ declare namespace Components {
5389
5699
  * Manifest ID used to create/update the entity
5390
5700
  */
5391
5701
  _manifest?: string /* uuid */[] | null;
5702
+ /**
5703
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
5704
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
5705
+ * Use the changeset management endpoints to apply or dismiss changesets.
5706
+ *
5707
+ */
5708
+ _changesets?: {
5709
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
5710
+ } | null;
5392
5711
  _relations: {
5393
5712
  entity_id: EntityId /* uuid */;
5394
5713
  }[];
@@ -5546,6 +5865,15 @@ declare namespace Components {
5546
5865
  */
5547
5866
  repeatable?: boolean;
5548
5867
  has_primary?: boolean;
5868
+ /**
5869
+ * Controls how updates to this attribute are handled.
5870
+ * - `direct` (default): update is applied immediately. No changeset created.
5871
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
5872
+ * - `approval`: update creates a changeset, requires explicit human approval.
5873
+ *
5874
+ */
5875
+ edit_mode?: "direct" | "external" | "approval";
5876
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
5549
5877
  type: "internal";
5550
5878
  }
5551
5879
  /**
@@ -5701,6 +6029,15 @@ declare namespace Components {
5701
6029
  */
5702
6030
  repeatable?: boolean;
5703
6031
  has_primary?: boolean;
6032
+ /**
6033
+ * Controls how updates to this attribute are handled.
6034
+ * - `direct` (default): update is applied immediately. No changeset created.
6035
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
6036
+ * - `approval`: update creates a changeset, requires explicit human approval.
6037
+ *
6038
+ */
6039
+ edit_mode?: "direct" | "external" | "approval";
6040
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
5704
6041
  type: "internal_user";
5705
6042
  }
5706
6043
  /**
@@ -5856,6 +6193,15 @@ declare namespace Components {
5856
6193
  */
5857
6194
  repeatable?: boolean;
5858
6195
  has_primary?: boolean;
6196
+ /**
6197
+ * Controls how updates to this attribute are handled.
6198
+ * - `direct` (default): update is applied immediately. No changeset created.
6199
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
6200
+ * - `approval`: update creates a changeset, requires explicit human approval.
6201
+ *
6202
+ */
6203
+ edit_mode?: "direct" | "external" | "approval";
6204
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
5859
6205
  type: "invitation_email";
5860
6206
  }
5861
6207
  /**
@@ -6019,6 +6365,15 @@ declare namespace Components {
6019
6365
  */
6020
6366
  repeatable?: boolean;
6021
6367
  has_primary?: boolean;
6368
+ /**
6369
+ * Controls how updates to this attribute are handled.
6370
+ * - `direct` (default): update is applied immediately. No changeset created.
6371
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
6372
+ * - `approval`: update creates a changeset, requires explicit human approval.
6373
+ *
6374
+ */
6375
+ edit_mode?: "direct" | "external" | "approval";
6376
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
6022
6377
  type: "link";
6023
6378
  }
6024
6379
  export interface ListSavedViewsResults {
@@ -6029,6 +6384,14 @@ declare namespace Components {
6029
6384
  hits?: number;
6030
6385
  results?: /* A saved entity view */ SavedViewItem[];
6031
6386
  }
6387
+ /**
6388
+ * Strategy for auto-clearing the changeset when an external update is received.
6389
+ * - `exact`: The inbound value must exactly match the proposed value (deep equality).
6390
+ * - `fuzzy`: The inbound value is compared using the configured fuzzy algorithm.
6391
+ * - `any`: Any update to the attribute clears the changeset, regardless of value.
6392
+ *
6393
+ */
6394
+ export type MatchStrategy = "exact" | "fuzzy" | "any";
6032
6395
  /**
6033
6396
  * Message emil address
6034
6397
  */
@@ -6182,6 +6545,15 @@ declare namespace Components {
6182
6545
  */
6183
6546
  repeatable?: boolean;
6184
6547
  has_primary?: boolean;
6548
+ /**
6549
+ * Controls how updates to this attribute are handled.
6550
+ * - `direct` (default): update is applied immediately. No changeset created.
6551
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
6552
+ * - `approval`: update creates a changeset, requires explicit human approval.
6553
+ *
6554
+ */
6555
+ edit_mode?: "direct" | "external" | "approval";
6556
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
6185
6557
  type: "message_email_address";
6186
6558
  address?: string;
6187
6559
  send_status?: string;
@@ -6340,6 +6712,15 @@ declare namespace Components {
6340
6712
  */
6341
6713
  repeatable?: boolean;
6342
6714
  has_primary?: boolean;
6715
+ /**
6716
+ * Controls how updates to this attribute are handled.
6717
+ * - `direct` (default): update is applied immediately. No changeset created.
6718
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
6719
+ * - `approval`: update creates a changeset, requires explicit human approval.
6720
+ *
6721
+ */
6722
+ edit_mode?: "direct" | "external" | "approval";
6723
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
6343
6724
  type: "multiselect" | "checkbox";
6344
6725
  /**
6345
6726
  * controls if the matching of values against the options is case sensitive or not
@@ -6439,6 +6820,15 @@ declare namespace Components {
6439
6820
  * Manifest ID used to create/update the entity
6440
6821
  */
6441
6822
  _manifest?: string /* uuid */[] | null;
6823
+ /**
6824
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
6825
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
6826
+ * Use the changeset management endpoints to apply or dismiss changesets.
6827
+ *
6828
+ */
6829
+ _changesets?: {
6830
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
6831
+ } | null;
6442
6832
  } | null;
6443
6833
  /**
6444
6834
  * Numeric input
@@ -6593,6 +6983,15 @@ declare namespace Components {
6593
6983
  */
6594
6984
  repeatable?: boolean;
6595
6985
  has_primary?: boolean;
6986
+ /**
6987
+ * Controls how updates to this attribute are handled.
6988
+ * - `direct` (default): update is applied immediately. No changeset created.
6989
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
6990
+ * - `approval`: update creates a changeset, requires explicit human approval.
6991
+ *
6992
+ */
6993
+ edit_mode?: "direct" | "external" | "approval";
6994
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
6596
6995
  type: "number";
6597
6996
  /**
6598
6997
  * Optional data type override. When set to 'number', the value is stored as a number instead of a string. Defaults to 'string'.
@@ -6757,6 +7156,15 @@ declare namespace Components {
6757
7156
  */
6758
7157
  repeatable?: boolean;
6759
7158
  has_primary?: boolean;
7159
+ /**
7160
+ * Controls how updates to this attribute are handled.
7161
+ * - `direct` (default): update is applied immediately. No changeset created.
7162
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7163
+ * - `approval`: update creates a changeset, requires explicit human approval.
7164
+ *
7165
+ */
7166
+ edit_mode?: "direct" | "external" | "approval";
7167
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
6760
7168
  type: "ordered_list";
6761
7169
  }
6762
7170
  /**
@@ -6912,6 +7320,15 @@ declare namespace Components {
6912
7320
  */
6913
7321
  repeatable?: boolean;
6914
7322
  has_primary?: boolean;
7323
+ /**
7324
+ * Controls how updates to this attribute are handled.
7325
+ * - `direct` (default): update is applied immediately. No changeset created.
7326
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7327
+ * - `approval`: update creates a changeset, requires explicit human approval.
7328
+ *
7329
+ */
7330
+ edit_mode?: "direct" | "external" | "approval";
7331
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
6915
7332
  type: "partner_organisation";
6916
7333
  }
6917
7334
  /**
@@ -7067,6 +7484,15 @@ declare namespace Components {
7067
7484
  */
7068
7485
  repeatable?: boolean;
7069
7486
  has_primary?: boolean;
7487
+ /**
7488
+ * Controls how updates to this attribute are handled.
7489
+ * - `direct` (default): update is applied immediately. No changeset created.
7490
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7491
+ * - `approval`: update creates a changeset, requires explicit human approval.
7492
+ *
7493
+ */
7494
+ edit_mode?: "direct" | "external" | "approval";
7495
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
7070
7496
  type: "partner_status";
7071
7497
  }
7072
7498
  /**
@@ -7222,6 +7648,15 @@ declare namespace Components {
7222
7648
  */
7223
7649
  repeatable?: boolean;
7224
7650
  has_primary?: boolean;
7651
+ /**
7652
+ * Controls how updates to this attribute are handled.
7653
+ * - `direct` (default): update is applied immediately. No changeset created.
7654
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7655
+ * - `approval`: update creates a changeset, requires explicit human approval.
7656
+ *
7657
+ */
7658
+ edit_mode?: "direct" | "external" | "approval";
7659
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
7225
7660
  type: "payment";
7226
7661
  }
7227
7662
  /**
@@ -7377,6 +7812,15 @@ declare namespace Components {
7377
7812
  */
7378
7813
  repeatable?: boolean;
7379
7814
  has_primary?: boolean;
7815
+ /**
7816
+ * Controls how updates to this attribute are handled.
7817
+ * - `direct` (default): update is applied immediately. No changeset created.
7818
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7819
+ * - `approval`: update creates a changeset, requires explicit human approval.
7820
+ *
7821
+ */
7822
+ edit_mode?: "direct" | "external" | "approval";
7823
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
7380
7824
  type: "relation_payment_method";
7381
7825
  }
7382
7826
  /**
@@ -7532,6 +7976,15 @@ declare namespace Components {
7532
7976
  */
7533
7977
  repeatable?: boolean;
7534
7978
  has_primary?: boolean;
7979
+ /**
7980
+ * Controls how updates to this attribute are handled.
7981
+ * - `direct` (default): update is applied immediately. No changeset created.
7982
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
7983
+ * - `approval`: update creates a changeset, requires explicit human approval.
7984
+ *
7985
+ */
7986
+ edit_mode?: "direct" | "external" | "approval";
7987
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
7535
7988
  type: "phone";
7536
7989
  }
7537
7990
  /**
@@ -7687,6 +8140,15 @@ declare namespace Components {
7687
8140
  */
7688
8141
  repeatable?: boolean;
7689
8142
  has_primary?: boolean;
8143
+ /**
8144
+ * Controls how updates to this attribute are handled.
8145
+ * - `direct` (default): update is applied immediately. No changeset created.
8146
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
8147
+ * - `approval`: update creates a changeset, requires explicit human approval.
8148
+ *
8149
+ */
8150
+ edit_mode?: "direct" | "external" | "approval";
8151
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
7690
8152
  type: "portal_access";
7691
8153
  }
7692
8154
  /**
@@ -7842,6 +8304,15 @@ declare namespace Components {
7842
8304
  */
7843
8305
  repeatable?: boolean;
7844
8306
  has_primary?: boolean;
8307
+ /**
8308
+ * Controls how updates to this attribute are handled.
8309
+ * - `direct` (default): update is applied immediately. No changeset created.
8310
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
8311
+ * - `approval`: update creates a changeset, requires explicit human approval.
8312
+ *
8313
+ */
8314
+ edit_mode?: "direct" | "external" | "approval";
8315
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
7845
8316
  type: "price_component";
7846
8317
  }
7847
8318
  /**
@@ -7997,6 +8468,15 @@ declare namespace Components {
7997
8468
  */
7998
8469
  repeatable?: boolean;
7999
8470
  has_primary?: boolean;
8471
+ /**
8472
+ * Controls how updates to this attribute are handled.
8473
+ * - `direct` (default): update is applied immediately. No changeset created.
8474
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
8475
+ * - `approval`: update creates a changeset, requires explicit human approval.
8476
+ *
8477
+ */
8478
+ edit_mode?: "direct" | "external" | "approval";
8479
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
8000
8480
  type: "purpose";
8001
8481
  }
8002
8482
  /**
@@ -8167,6 +8647,15 @@ declare namespace Components {
8167
8647
  */
8168
8648
  repeatable?: boolean;
8169
8649
  has_primary?: boolean;
8650
+ /**
8651
+ * Controls how updates to this attribute are handled.
8652
+ * - `direct` (default): update is applied immediately. No changeset created.
8653
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
8654
+ * - `approval`: update creates a changeset, requires explicit human approval.
8655
+ *
8656
+ */
8657
+ edit_mode?: "direct" | "external" | "approval" | "list-view";
8658
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
8170
8659
  type: "relation";
8171
8660
  relation_type?: "has_many" | "has_one";
8172
8661
  /**
@@ -8188,7 +8677,6 @@ declare namespace Components {
8188
8677
  * When enable_relation_picker is set to true the user will be able to pick existing relations as values. Otherwise, the user will need to create new relation to link.
8189
8678
  */
8190
8679
  enable_relation_picker?: boolean;
8191
- edit_mode?: "list-view";
8192
8680
  /**
8193
8681
  * Enables the preview, edition, and creation of relation items on a Master-Details view mode.
8194
8682
  */
@@ -8362,6 +8850,15 @@ declare namespace Components {
8362
8850
  * Manifest ID used to create/update the entity
8363
8851
  */
8364
8852
  _manifest?: string /* uuid */[] | null;
8853
+ /**
8854
+ * Pending attribute changesets for attributes configured with external or approval edit mode.
8855
+ * Read-only via normal entity PATCH/PUT operations — cannot be set directly.
8856
+ * Use the changeset management endpoints to apply or dismiss changesets.
8857
+ *
8858
+ */
8859
+ _changesets?: {
8860
+ [name: string]: /* A pending proposed change for a single entity attribute, awaiting external confirmation or human approval. */ Changeset;
8861
+ } | null;
8365
8862
  $relation?: RelationItem;
8366
8863
  }
8367
8864
  export interface RelationItem {
@@ -8536,6 +9033,15 @@ declare namespace Components {
8536
9033
  */
8537
9034
  repeatable?: boolean;
8538
9035
  has_primary?: boolean;
9036
+ /**
9037
+ * Controls how updates to this attribute are handled.
9038
+ * - `direct` (default): update is applied immediately. No changeset created.
9039
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
9040
+ * - `approval`: update creates a changeset, requires explicit human approval.
9041
+ *
9042
+ */
9043
+ edit_mode?: "direct" | "external" | "approval";
9044
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
8539
9045
  }
8540
9046
  /**
8541
9047
  * A saved entity view
@@ -8932,10 +9438,14 @@ declare namespace Components {
8932
9438
  export interface SearchMappings {
8933
9439
  [name: string]: {
8934
9440
  index?: boolean;
8935
- type?: "keyword" | "text" | "boolean" | "integer" | "long" | "float" | "date" | "flattened" | "nested";
9441
+ type?: "keyword" | "text" | "boolean" | "integer" | "long" | "float" | "date" | "flattened" | "nested" | "object";
8936
9442
  fields?: {
8937
9443
  [name: string]: any;
8938
9444
  };
9445
+ /**
9446
+ * When false, prevents ES from inferring types for nested fields. Used for _changesets where values can be any type.
9447
+ */
9448
+ dynamic?: boolean;
8939
9449
  };
8940
9450
  }
8941
9451
  /**
@@ -9091,6 +9601,15 @@ declare namespace Components {
9091
9601
  */
9092
9602
  repeatable?: boolean;
9093
9603
  has_primary?: boolean;
9604
+ /**
9605
+ * Controls how updates to this attribute are handled.
9606
+ * - `direct` (default): update is applied immediately. No changeset created.
9607
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
9608
+ * - `approval`: update creates a changeset, requires explicit human approval.
9609
+ *
9610
+ */
9611
+ edit_mode?: "direct" | "external" | "approval";
9612
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
9094
9613
  type: "select" | "radio";
9095
9614
  options?: ({
9096
9615
  value: string;
@@ -9254,6 +9773,15 @@ declare namespace Components {
9254
9773
  */
9255
9774
  repeatable?: boolean;
9256
9775
  has_primary?: boolean;
9776
+ /**
9777
+ * Controls how updates to this attribute are handled.
9778
+ * - `direct` (default): update is applied immediately. No changeset created.
9779
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
9780
+ * - `approval`: update creates a changeset, requires explicit human approval.
9781
+ *
9782
+ */
9783
+ edit_mode?: "direct" | "external" | "approval";
9784
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
9257
9785
  type: "sequence";
9258
9786
  /**
9259
9787
  * Prefix added before the sequence number
@@ -9426,6 +9954,15 @@ declare namespace Components {
9426
9954
  */
9427
9955
  repeatable?: boolean;
9428
9956
  has_primary?: boolean;
9957
+ /**
9958
+ * Controls how updates to this attribute are handled.
9959
+ * - `direct` (default): update is applied immediately. No changeset created.
9960
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
9961
+ * - `approval`: update creates a changeset, requires explicit human approval.
9962
+ *
9963
+ */
9964
+ edit_mode?: "direct" | "external" | "approval";
9965
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
9429
9966
  type: "status";
9430
9967
  options?: ((string | null) | {
9431
9968
  /**
@@ -9677,6 +10214,15 @@ declare namespace Components {
9677
10214
  */
9678
10215
  repeatable?: boolean;
9679
10216
  has_primary?: boolean;
10217
+ /**
10218
+ * Controls how updates to this attribute are handled.
10219
+ * - `direct` (default): update is applied immediately. No changeset created.
10220
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
10221
+ * - `approval`: update creates a changeset, requires explicit human approval.
10222
+ *
10223
+ */
10224
+ edit_mode?: "direct" | "external" | "approval";
10225
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
9680
10226
  type: "table";
9681
10227
  /**
9682
10228
  * Column definitions for the table
@@ -9702,15 +10248,38 @@ declare namespace Components {
9702
10248
  * Whether this column is required for each row
9703
10249
  */
9704
10250
  required?: boolean;
10251
+ /**
10252
+ * When true, the row is rendered in bold (only applies in transposed mode)
10253
+ */
10254
+ bold?: boolean;
9705
10255
  }[];
9706
10256
  /**
9707
10257
  * Minimum number of rows required
9708
10258
  */
9709
10259
  min_rows?: number;
9710
10260
  /**
9711
- * Maximum number of rows allowed
10261
+ * Maximum number of rows allowed (or maximum periods when transposed)
9712
10262
  */
9713
10263
  max_rows?: number;
10264
+ /**
10265
+ * Enable transposed layout where rows become metrics and columns become periods
10266
+ */
10267
+ transposed?: boolean;
10268
+ /**
10269
+ * Configuration for column headers in transposed mode
10270
+ */
10271
+ column_header?: {
10272
+ /**
10273
+ * Header label pattern with {{i}} as index placeholder (e.g., "Year {{i}}")
10274
+ * example:
10275
+ * Year {{i}}
10276
+ */
10277
+ template?: string;
10278
+ /**
10279
+ * Starting index value for the template placeholder
10280
+ */
10281
+ start?: number;
10282
+ };
9714
10283
  }
9715
10284
  /**
9716
10285
  * Tags
@@ -9865,6 +10434,15 @@ declare namespace Components {
9865
10434
  */
9866
10435
  repeatable?: boolean;
9867
10436
  has_primary?: boolean;
10437
+ /**
10438
+ * Controls how updates to this attribute are handled.
10439
+ * - `direct` (default): update is applied immediately. No changeset created.
10440
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
10441
+ * - `approval`: update creates a changeset, requires explicit human approval.
10442
+ *
10443
+ */
10444
+ edit_mode?: "direct" | "external" | "approval";
10445
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
9868
10446
  type: "tags";
9869
10447
  options?: string[];
9870
10448
  suggestions?: string[];
@@ -10222,6 +10800,15 @@ declare namespace Components {
10222
10800
  */
10223
10801
  repeatable?: boolean;
10224
10802
  has_primary?: boolean;
10803
+ /**
10804
+ * Controls how updates to this attribute are handled.
10805
+ * - `direct` (default): update is applied immediately. No changeset created.
10806
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
10807
+ * - `approval`: update creates a changeset, requires explicit human approval.
10808
+ *
10809
+ */
10810
+ edit_mode?: "direct" | "external" | "approval";
10811
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
10225
10812
  type: "string";
10226
10813
  multiline?: boolean;
10227
10814
  rich_text?: boolean;
@@ -10390,6 +10977,15 @@ declare namespace Components {
10390
10977
  */
10391
10978
  repeatable?: boolean;
10392
10979
  has_primary?: boolean;
10980
+ /**
10981
+ * Controls how updates to this attribute are handled.
10982
+ * - `direct` (default): update is applied immediately. No changeset created.
10983
+ * - `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).
10984
+ * - `approval`: update creates a changeset, requires explicit human approval.
10985
+ *
10986
+ */
10987
+ edit_mode?: "direct" | "external" | "approval";
10988
+ edit_mode_config?: /* Configuration for non-direct edit modes on an entity attribute. */ EditModeConfig;
10393
10989
  type: "relation_user";
10394
10990
  multiple?: boolean;
10395
10991
  }
@@ -10435,6 +11031,81 @@ declare namespace Paths {
10435
11031
  Components.Responses.NotFoundError;
10436
11032
  }
10437
11033
  }
11034
+ namespace ApplyChangeset {
11035
+ namespace Parameters {
11036
+ export type Attribute = string;
11037
+ export type Id = Components.Schemas.EntityId /* uuid */;
11038
+ export type Slug = /**
11039
+ * URL-friendly identifier for the entity schema
11040
+ * example:
11041
+ * contact
11042
+ */
11043
+ Components.Schemas.EntitySlug /* ^[a-zA-Z0-9_-]+$ */;
11044
+ }
11045
+ export interface PathParameters {
11046
+ slug: Parameters.Slug;
11047
+ id: Parameters.Id;
11048
+ attribute: Parameters.Attribute;
11049
+ }
11050
+ namespace Responses {
11051
+ export type $200 = /**
11052
+ * example:
11053
+ * {
11054
+ * "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
11055
+ * "_org": "123",
11056
+ * "_owners": [
11057
+ * {
11058
+ * "org_id": "123",
11059
+ * "user_id": "123"
11060
+ * },
11061
+ * {
11062
+ * "org_id": "123",
11063
+ * "user_id": "123"
11064
+ * }
11065
+ * ],
11066
+ * "_schema": "contact",
11067
+ * "_tags": [
11068
+ * "example",
11069
+ * "mock",
11070
+ * "example",
11071
+ * "mock"
11072
+ * ],
11073
+ * "_created_at": "2021-02-09T12:41:43.662Z",
11074
+ * "_updated_at": "2021-02-09T12:41:43.662Z",
11075
+ * "_acl": {
11076
+ * "view": [
11077
+ * "org:456",
11078
+ * "org:789",
11079
+ * "org:456",
11080
+ * "org:789"
11081
+ * ],
11082
+ * "edit": [
11083
+ * "org:456",
11084
+ * "org:456"
11085
+ * ],
11086
+ * "delete": [
11087
+ * "org:456",
11088
+ * "org:456"
11089
+ * ]
11090
+ * },
11091
+ * "_manifest": [
11092
+ * "123e4567-e89b-12d3-a456-426614174000",
11093
+ * "123e4567-e89b-12d3-a456-426614174000"
11094
+ * ]
11095
+ * }
11096
+ */
11097
+ Components.Schemas.EntityItem;
11098
+ export type $404 = /**
11099
+ * A generic error returned by the API
11100
+ * example:
11101
+ * {
11102
+ * "status": 404,
11103
+ * "error": "Not Found"
11104
+ * }
11105
+ */
11106
+ Components.Responses.NotFoundError;
11107
+ }
11108
+ }
10438
11109
  namespace AttachActivity {
10439
11110
  namespace Parameters {
10440
11111
  export type Entities = Components.Schemas.EntityId /* uuid */[];
@@ -11201,6 +11872,87 @@ declare namespace Paths {
11201
11872
  Components.Responses.TooManyRequestsError;
11202
11873
  }
11203
11874
  }
11875
+ namespace DismissChangeset {
11876
+ namespace Parameters {
11877
+ export type Attribute = string;
11878
+ export type Id = Components.Schemas.EntityId /* uuid */;
11879
+ export type Slug = /**
11880
+ * URL-friendly identifier for the entity schema
11881
+ * example:
11882
+ * contact
11883
+ */
11884
+ Components.Schemas.EntitySlug /* ^[a-zA-Z0-9_-]+$ */;
11885
+ }
11886
+ export interface PathParameters {
11887
+ slug: Parameters.Slug;
11888
+ id: Parameters.Id;
11889
+ attribute: Parameters.Attribute;
11890
+ }
11891
+ export interface RequestBody {
11892
+ /**
11893
+ * Optional reason for dismissing the changeset
11894
+ */
11895
+ reason?: string;
11896
+ }
11897
+ namespace Responses {
11898
+ export type $200 = /**
11899
+ * example:
11900
+ * {
11901
+ * "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
11902
+ * "_org": "123",
11903
+ * "_owners": [
11904
+ * {
11905
+ * "org_id": "123",
11906
+ * "user_id": "123"
11907
+ * },
11908
+ * {
11909
+ * "org_id": "123",
11910
+ * "user_id": "123"
11911
+ * }
11912
+ * ],
11913
+ * "_schema": "contact",
11914
+ * "_tags": [
11915
+ * "example",
11916
+ * "mock",
11917
+ * "example",
11918
+ * "mock"
11919
+ * ],
11920
+ * "_created_at": "2021-02-09T12:41:43.662Z",
11921
+ * "_updated_at": "2021-02-09T12:41:43.662Z",
11922
+ * "_acl": {
11923
+ * "view": [
11924
+ * "org:456",
11925
+ * "org:789",
11926
+ * "org:456",
11927
+ * "org:789"
11928
+ * ],
11929
+ * "edit": [
11930
+ * "org:456",
11931
+ * "org:456"
11932
+ * ],
11933
+ * "delete": [
11934
+ * "org:456",
11935
+ * "org:456"
11936
+ * ]
11937
+ * },
11938
+ * "_manifest": [
11939
+ * "123e4567-e89b-12d3-a456-426614174000",
11940
+ * "123e4567-e89b-12d3-a456-426614174000"
11941
+ * ]
11942
+ * }
11943
+ */
11944
+ Components.Schemas.EntityItem;
11945
+ export type $404 = /**
11946
+ * A generic error returned by the API
11947
+ * example:
11948
+ * {
11949
+ * "status": 404,
11950
+ * "error": "Not Found"
11951
+ * }
11952
+ */
11953
+ Components.Responses.NotFoundError;
11954
+ }
11955
+ }
11204
11956
  namespace ExportEntities {
11205
11957
  namespace Parameters {
11206
11958
  export type IsTemplate = /* Pass 'true' to generate import template */ Components.Schemas.IsTemplate;
@@ -11508,6 +12260,7 @@ declare namespace Paths {
11508
12260
  }
11509
12261
  namespace GetEntityV2 {
11510
12262
  namespace Parameters {
12263
+ export type ApplyChangesets = boolean;
11511
12264
  export type Fields = /**
11512
12265
  * List of entity fields to include or exclude in the response
11513
12266
  *
@@ -11542,6 +12295,7 @@ declare namespace Paths {
11542
12295
  export interface QueryParameters {
11543
12296
  hydrate?: Parameters.Hydrate;
11544
12297
  fields?: Parameters.Fields;
12298
+ apply_changesets?: Parameters.ApplyChangesets;
11545
12299
  }
11546
12300
  namespace Responses {
11547
12301
  export type $200 = /**
@@ -12446,7 +13200,7 @@ declare namespace Paths {
12446
13200
  /**
12447
13201
  * ISO 8601 timestamp to filter jobs created after this time (e.g., 2023-01-01T00:00:00Z).
12448
13202
  * example:
12449
- * 2023-01-01T00:00:00.000Z
13203
+ * 2023-01-01T00:00:00Z
12450
13204
  */
12451
13205
  export type CreatedAfter = string; // date-time
12452
13206
  /**
@@ -12472,7 +13226,7 @@ declare namespace Paths {
12472
13226
  created_after?: /**
12473
13227
  * ISO 8601 timestamp to filter jobs created after this time (e.g., 2023-01-01T00:00:00Z).
12474
13228
  * example:
12475
- * 2023-01-01T00:00:00.000Z
13229
+ * 2023-01-01T00:00:00Z
12476
13230
  */
12477
13231
  Parameters.CreatedAfter /* date-time */;
12478
13232
  sort_pending_first?: /* When true, sorts PENDING status jobs to the top of the results. */ Parameters.SortPendingFirst;
@@ -12559,6 +13313,33 @@ declare namespace Paths {
12559
13313
  }
12560
13314
  }
12561
13315
  }
13316
+ namespace ListChangesets {
13317
+ namespace Parameters {
13318
+ export type Id = Components.Schemas.EntityId /* uuid */;
13319
+ export type Slug = /**
13320
+ * URL-friendly identifier for the entity schema
13321
+ * example:
13322
+ * contact
13323
+ */
13324
+ Components.Schemas.EntitySlug /* ^[a-zA-Z0-9_-]+$ */;
13325
+ }
13326
+ export interface PathParameters {
13327
+ slug: Parameters.Slug;
13328
+ id: Parameters.Id;
13329
+ }
13330
+ namespace Responses {
13331
+ export type $200 = /* Map of attribute name to pending changeset. At most one changeset per attribute. */ Components.Schemas.ChangesetMap;
13332
+ export type $404 = /**
13333
+ * A generic error returned by the API
13334
+ * example:
13335
+ * {
13336
+ * "status": 404,
13337
+ * "error": "Not Found"
13338
+ * }
13339
+ */
13340
+ Components.Responses.NotFoundError;
13341
+ }
13342
+ }
12562
13343
  namespace ListEntities {
12563
13344
  export type RequestBody = Components.Schemas.EntityListParams;
12564
13345
  namespace Responses {
@@ -12719,6 +13500,7 @@ declare namespace Paths {
12719
13500
  */
12720
13501
  Components.Schemas.ActivityId /* ulid ^01[0-9a-zA-Z]{24}$ */ | ("" | null);
12721
13502
  export type Async = boolean;
13503
+ export type Direct = boolean;
12722
13504
  export type DryRun = boolean;
12723
13505
  export type FillActivity = boolean;
12724
13506
  export type Id = Components.Schemas.EntityId /* uuid */;
@@ -12740,6 +13522,7 @@ declare namespace Paths {
12740
13522
  dry_run?: Parameters.DryRun;
12741
13523
  async?: Parameters.Async;
12742
13524
  validate?: Parameters.Validate;
13525
+ direct?: Parameters.Direct;
12743
13526
  }
12744
13527
  export type RequestBody = /**
12745
13528
  * example:
@@ -13367,6 +14150,7 @@ declare namespace Paths {
13367
14150
  */
13368
14151
  Components.Schemas.ActivityId /* ulid ^01[0-9a-zA-Z]{24}$ */ | ("" | null);
13369
14152
  export type Async = boolean;
14153
+ export type Direct = boolean;
13370
14154
  export type FillActivity = boolean;
13371
14155
  export type Id = Components.Schemas.EntityId /* uuid */;
13372
14156
  export type Slug = /**
@@ -13386,6 +14170,7 @@ declare namespace Paths {
13386
14170
  fill_activity?: Parameters.FillActivity;
13387
14171
  async?: Parameters.Async;
13388
14172
  validate?: Parameters.Validate;
14173
+ direct?: Parameters.Direct;
13389
14174
  }
13390
14175
  export type RequestBody = /**
13391
14176
  * example:
@@ -14437,6 +15222,7 @@ export interface OperationMethods {
14437
15222
  *
14438
15223
  * - All activites are published as events on the event bus
14439
15224
  * - Entity mutations are always part of an activity
15225
+ * - When more than 10 entities are passed, the first 10 are attached synchronously and the rest are processed asynchronously to avoid DynamoDB throttling
14440
15226
  *
14441
15227
  */
14442
15228
  'createActivity'(
@@ -14464,6 +15250,39 @@ export interface OperationMethods {
14464
15250
  data?: any,
14465
15251
  config?: AxiosRequestConfig
14466
15252
  ): OperationResponse<Paths.AttachActivity.Responses.$200>
15253
+ /**
15254
+ * applyChangeset - applyChangeset
15255
+ *
15256
+ * Applies the proposed value from a pending changeset to the entity attribute
15257
+ * and removes the changeset. Used for human approval of pending changes.
15258
+ *
15259
+ */
15260
+ 'applyChangeset'(
15261
+ parameters?: Parameters<Paths.ApplyChangeset.PathParameters> | null,
15262
+ data?: any,
15263
+ config?: AxiosRequestConfig
15264
+ ): OperationResponse<Paths.ApplyChangeset.Responses.$200>
15265
+ /**
15266
+ * dismissChangeset - dismissChangeset
15267
+ *
15268
+ * Removes a pending changeset without applying it. The attribute value remains unchanged.
15269
+ *
15270
+ */
15271
+ 'dismissChangeset'(
15272
+ parameters?: Parameters<Paths.DismissChangeset.PathParameters> | null,
15273
+ data?: Paths.DismissChangeset.RequestBody,
15274
+ config?: AxiosRequestConfig
15275
+ ): OperationResponse<Paths.DismissChangeset.Responses.$200>
15276
+ /**
15277
+ * listChangesets - listChangesets
15278
+ *
15279
+ * Returns all pending changesets for an entity.
15280
+ */
15281
+ 'listChangesets'(
15282
+ parameters?: Parameters<Paths.ListChangesets.PathParameters> | null,
15283
+ data?: any,
15284
+ config?: AxiosRequestConfig
15285
+ ): OperationResponse<Paths.ListChangesets.Responses.$200>
14467
15286
  /**
14468
15287
  * getEntityActivityFeed - getEntityActivityFeed
14469
15288
  *
@@ -15627,6 +16446,7 @@ export interface PathsDictionary {
15627
16446
  *
15628
16447
  * - All activites are published as events on the event bus
15629
16448
  * - Entity mutations are always part of an activity
16449
+ * - When more than 10 entities are passed, the first 10 are attached synchronously and the rest are processed asynchronously to avoid DynamoDB throttling
15630
16450
  *
15631
16451
  */
15632
16452
  'post'(
@@ -15659,6 +16479,45 @@ export interface PathsDictionary {
15659
16479
  config?: AxiosRequestConfig
15660
16480
  ): OperationResponse<Paths.AttachActivity.Responses.$200>
15661
16481
  }
16482
+ ['/v1/entity/{slug}/{id}/changesets/{attribute}:apply']: {
16483
+ /**
16484
+ * applyChangeset - applyChangeset
16485
+ *
16486
+ * Applies the proposed value from a pending changeset to the entity attribute
16487
+ * and removes the changeset. Used for human approval of pending changes.
16488
+ *
16489
+ */
16490
+ 'post'(
16491
+ parameters?: Parameters<Paths.ApplyChangeset.PathParameters> | null,
16492
+ data?: any,
16493
+ config?: AxiosRequestConfig
16494
+ ): OperationResponse<Paths.ApplyChangeset.Responses.$200>
16495
+ }
16496
+ ['/v1/entity/{slug}/{id}/changesets/{attribute}:dismiss']: {
16497
+ /**
16498
+ * dismissChangeset - dismissChangeset
16499
+ *
16500
+ * Removes a pending changeset without applying it. The attribute value remains unchanged.
16501
+ *
16502
+ */
16503
+ 'post'(
16504
+ parameters?: Parameters<Paths.DismissChangeset.PathParameters> | null,
16505
+ data?: Paths.DismissChangeset.RequestBody,
16506
+ config?: AxiosRequestConfig
16507
+ ): OperationResponse<Paths.DismissChangeset.Responses.$200>
16508
+ }
16509
+ ['/v1/entity/{slug}/{id}/changesets']: {
16510
+ /**
16511
+ * listChangesets - listChangesets
16512
+ *
16513
+ * Returns all pending changesets for an entity.
16514
+ */
16515
+ 'get'(
16516
+ parameters?: Parameters<Paths.ListChangesets.PathParameters> | null,
16517
+ data?: any,
16518
+ config?: AxiosRequestConfig
16519
+ ): OperationResponse<Paths.ListChangesets.Responses.$200>
16520
+ }
15662
16521
  ['/v1/entity/{slug}/{id}/activity']: {
15663
16522
  /**
15664
16523
  * getEntityActivityFeed - getEntityActivityFeed
@@ -16319,6 +17178,9 @@ export type BaseAttribute = Components.Schemas.BaseAttribute;
16319
17178
  export type BaseEntity = Components.Schemas.BaseEntity;
16320
17179
  export type BlueprintEntityId = Components.Schemas.BlueprintEntityId;
16321
17180
  export type BooleanAttribute = Components.Schemas.BooleanAttribute;
17181
+ export type Changeset = Components.Schemas.Changeset;
17182
+ export type ChangesetCreator = Components.Schemas.ChangesetCreator;
17183
+ export type ChangesetMap = Components.Schemas.ChangesetMap;
16322
17184
  export type ClassificationId = Components.Schemas.ClassificationId;
16323
17185
  export type ClassificationIdOrPattern = Components.Schemas.ClassificationIdOrPattern;
16324
17186
  export type ClassificationSlug = Components.Schemas.ClassificationSlug;
@@ -16330,6 +17192,7 @@ export type CurrencyAttribute = Components.Schemas.CurrencyAttribute;
16330
17192
  export type DateAttribute = Components.Schemas.DateAttribute;
16331
17193
  export type DefaultAddressFields = Components.Schemas.DefaultAddressFields;
16332
17194
  export type ESClusterAssignment = Components.Schemas.ESClusterAssignment;
17195
+ export type EditModeConfig = Components.Schemas.EditModeConfig;
16333
17196
  export type EmailAttribute = Components.Schemas.EmailAttribute;
16334
17197
  export type Entity = Components.Schemas.Entity;
16335
17198
  export type EntityAcl = Components.Schemas.EntityAcl;
@@ -16369,6 +17232,7 @@ export type ErrorObject = Components.Schemas.ErrorObject;
16369
17232
  export type ExportJobId = Components.Schemas.ExportJobId;
16370
17233
  export type FieldsParam = Components.Schemas.FieldsParam;
16371
17234
  export type FileAttribute = Components.Schemas.FileAttribute;
17235
+ export type FuzzyConfig = Components.Schemas.FuzzyConfig;
16372
17236
  export type GenerateEntityTableAIFiltersRequest = Components.Schemas.GenerateEntityTableAIFiltersRequest;
16373
17237
  export type GenerateEntityTableAIFiltersResponse = Components.Schemas.GenerateEntityTableAIFiltersResponse;
16374
17238
  export type GetRelatedEntitiesCount = Components.Schemas.GetRelatedEntitiesCount;
@@ -16391,6 +17255,7 @@ export type IsTemplate = Components.Schemas.IsTemplate;
16391
17255
  export type Language = Components.Schemas.Language;
16392
17256
  export type LinkAttribute = Components.Schemas.LinkAttribute;
16393
17257
  export type ListSavedViewsResults = Components.Schemas.ListSavedViewsResults;
17258
+ export type MatchStrategy = Components.Schemas.MatchStrategy;
16394
17259
  export type MessageEmailAddressAttribute = Components.Schemas.MessageEmailAddressAttribute;
16395
17260
  export type MultiSelectAttribute = Components.Schemas.MultiSelectAttribute;
16396
17261
  export type NullableEntity = Components.Schemas.NullableEntity;