@epilot/erp-integration-client 0.26.0 → 0.26.3

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
@@ -205,6 +205,11 @@ declare namespace Components {
205
205
  * Use case name
206
206
  */
207
207
  name: string;
208
+ /**
209
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
210
+ *
211
+ */
212
+ slug: string; // ^[a-z0-9][a-z0-9_-]*$
208
213
  /**
209
214
  * Whether the use case is enabled
210
215
  */
@@ -216,7 +221,7 @@ declare namespace Components {
216
221
  configuration?: /**
217
222
  * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
218
223
  *
219
- * The file proxy download URL always requires `orgId`, `integrationId`, and `useCaseId` as query parameters.
224
+ * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
220
225
  * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
221
226
  * Additional use-case-specific parameters are declared in the `params` array.
222
227
  *
@@ -228,6 +233,11 @@ declare namespace Components {
228
233
  * Use case name
229
234
  */
230
235
  name: string;
236
+ /**
237
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
238
+ *
239
+ */
240
+ slug: string; // ^[a-z0-9][a-z0-9_-]*$
231
241
  /**
232
242
  * Whether the use case is enabled
233
243
  */
@@ -266,6 +276,11 @@ declare namespace Components {
266
276
  * Use case name
267
277
  */
268
278
  name: string;
279
+ /**
280
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
281
+ *
282
+ */
283
+ slug: string; // ^[a-z0-9][a-z0-9_-]*$
269
284
  /**
270
285
  * Whether the use case is enabled
271
286
  */
@@ -282,6 +297,11 @@ declare namespace Components {
282
297
  * Use case name
283
298
  */
284
299
  name: string;
300
+ /**
301
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
302
+ *
303
+ */
304
+ slug: string; // ^[a-z0-9][a-z0-9_-]*$
285
305
  /**
286
306
  * Whether the use case is enabled
287
307
  */
@@ -331,6 +351,11 @@ declare namespace Components {
331
351
  * Use case name
332
352
  */
333
353
  name: string;
354
+ /**
355
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.
356
+ *
357
+ */
358
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
334
359
  /**
335
360
  * Whether the use case is enabled
336
361
  */
@@ -358,6 +383,11 @@ declare namespace Components {
358
383
  * Use case name
359
384
  */
360
385
  name: string;
386
+ /**
387
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.
388
+ *
389
+ */
390
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
361
391
  /**
362
392
  * Whether the use case is enabled
363
393
  */
@@ -386,6 +416,11 @@ declare namespace Components {
386
416
  * Use case name
387
417
  */
388
418
  name: string;
419
+ /**
420
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.
421
+ *
422
+ */
423
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
389
424
  /**
390
425
  * Whether the use case is enabled
391
426
  */
@@ -489,6 +524,11 @@ declare namespace Components {
489
524
  payload: /* The object data payload - can be either a serialized string or a direct JSON object */ string | {
490
525
  [name: string]: any;
491
526
  };
527
+ /**
528
+ * Recommended. Use case slug for routing this event to the correct use case configuration. If provided, takes precedence over event_name for use case lookup. Preferred over event_name-based routing as slugs are portable across environments.
529
+ *
530
+ */
531
+ use_case_slug?: string; // ^[a-z0-9][a-z0-9_-]*$
492
532
  /**
493
533
  * Optional unique identifier for idempotency - prevents duplicate processing of the same event within 24 hours in context of the same integration. Must contain only alphanumeric characters, hyphens, and underscores.
494
534
  *
@@ -614,20 +654,28 @@ declare namespace Components {
614
654
  response_type: "json" | "binary";
615
655
  }
616
656
  /**
617
- * Auto-constructs a file proxy download URL. orgId and integrationId are injected from context.
657
+ * Auto-constructs a file proxy download URL. orgId and integrationId are injected from context. Exactly one of use_case_id or use_case_slug must be provided. Using use_case_slug is recommended as it is portable across environments.
658
+ *
659
+ */
660
+ export type FileProxyUrlConfig = /**
661
+ * Auto-constructs a file proxy download URL. orgId and integrationId are injected from context. Exactly one of use_case_id or use_case_slug must be provided. Using use_case_slug is recommended as it is portable across environments.
662
+ *
618
663
  */
619
- export interface FileProxyUrlConfig {
664
+ {
620
665
  /**
621
- * UUID of the file_proxy use case. Maps to useCaseId query parameter.
666
+ * Recommended. Slug of the file_proxy use case. Maps to useCaseSlug query parameter. Portable across environments.
667
+ *
622
668
  */
623
- use_case_id: string;
669
+ use_case_slug: string; // ^[a-z0-9][a-z0-9_-]*$
670
+ params?: /* Custom query parameters. Keys become URL param names, values resolved from payload. */ FileProxyUrlParams;
671
+ } | {
624
672
  /**
625
- * Custom query parameters. Keys become URL param names, values resolved from payload.
673
+ * Legacy. UUID of the file_proxy use case. Maps to useCaseId query parameter. Prefer use_case_slug for portable configuration.
674
+ *
626
675
  */
627
- params?: {
628
- [name: string]: /* Parameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set. */ FileProxyUrlParam;
629
- };
630
- }
676
+ use_case_id: string;
677
+ params?: /* Custom query parameters. Keys become URL param names, values resolved from payload. */ FileProxyUrlParams;
678
+ };
631
679
  /**
632
680
  * Parameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set.
633
681
  */
@@ -647,6 +695,12 @@ declare namespace Components {
647
695
  */
648
696
  jsonataExpression: string;
649
697
  };
698
+ /**
699
+ * Custom query parameters. Keys become URL param names, values resolved from payload.
700
+ */
701
+ export interface FileProxyUrlParams {
702
+ [name: string]: /* Parameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set. */ FileProxyUrlParam;
703
+ }
650
704
  export interface FileProxyUseCase {
651
705
  /**
652
706
  * Unique identifier for the use case
@@ -660,6 +714,11 @@ declare namespace Components {
660
714
  * Use case name
661
715
  */
662
716
  name: string;
717
+ /**
718
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
719
+ *
720
+ */
721
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
663
722
  /**
664
723
  * Use case type
665
724
  */
@@ -680,7 +739,7 @@ declare namespace Components {
680
739
  configuration?: /**
681
740
  * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
682
741
  *
683
- * The file proxy download URL always requires `orgId`, `integrationId`, and `useCaseId` as query parameters.
742
+ * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
684
743
  * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
685
744
  * Additional use-case-specific parameters are declared in the `params` array.
686
745
  *
@@ -690,19 +749,19 @@ declare namespace Components {
690
749
  /**
691
750
  * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
692
751
  *
693
- * The file proxy download URL always requires `orgId`, `integrationId`, and `useCaseId` as query parameters.
752
+ * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
694
753
  * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
695
754
  * Additional use-case-specific parameters are declared in the `params` array.
696
755
  *
697
756
  */
698
757
  export interface FileProxyUseCaseConfiguration {
699
758
  /**
700
- * Whether requests require VPC routing for IP allowlisting
759
+ * Whether requests require VPC routing for IP allowlisting. Read-only after creation — can only be modified directly in DynamoDB.
701
760
  */
702
761
  requires_vpc?: boolean;
703
762
  auth?: FileProxyAuth;
704
763
  /**
705
- * Additional use-case-specific parameters expected in the download URL query string (beyond the required orgId, integrationId, useCaseId)
764
+ * Additional use-case-specific parameters expected in the download URL query string (beyond the required orgId, integrationId, and useCaseSlug or useCaseId)
706
765
  */
707
766
  params?: FileProxyParam[];
708
767
  /**
@@ -731,6 +790,10 @@ declare namespace Components {
731
790
  * Use case name at this point in history
732
791
  */
733
792
  name: string;
793
+ /**
794
+ * Use case slug at this point in history
795
+ */
796
+ slug?: string;
734
797
  /**
735
798
  * Whether the use case was enabled at this point in history
736
799
  */
@@ -758,7 +821,7 @@ declare namespace Components {
758
821
  configuration?: /**
759
822
  * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
760
823
  *
761
- * The file proxy download URL always requires `orgId`, `integrationId`, and `useCaseId` as query parameters.
824
+ * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
762
825
  * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
763
826
  * Additional use-case-specific parameters are declared in the `params` array.
764
827
  *
@@ -911,6 +974,11 @@ declare namespace Components {
911
974
  * Use case name
912
975
  */
913
976
  name: string;
977
+ /**
978
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
979
+ *
980
+ */
981
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
914
982
  /**
915
983
  * Use case type
916
984
  */
@@ -947,6 +1015,10 @@ declare namespace Components {
947
1015
  * Use case name at this point in history
948
1016
  */
949
1017
  name: string;
1018
+ /**
1019
+ * Use case slug at this point in history
1020
+ */
1021
+ slug?: string;
950
1022
  /**
951
1023
  * Whether the use case was enabled at this point in history
952
1024
  */
@@ -1146,7 +1218,11 @@ declare namespace Components {
1146
1218
  *
1147
1219
  */
1148
1220
  RelationRefsConfig;
1149
- file_proxy_url?: /* Auto-constructs a file proxy download URL. orgId and integrationId are injected from context. */ FileProxyUrlConfig;
1221
+ file_proxy_url?: /**
1222
+ * Auto-constructs a file proxy download URL. orgId and integrationId are injected from context. Exactly one of use_case_id or use_case_slug must be provided. Using use_case_slug is recommended as it is portable across environments.
1223
+ *
1224
+ */
1225
+ FileProxyUrlConfig;
1150
1226
  }
1151
1227
  export interface IntegrationFieldV1 {
1152
1228
  /**
@@ -1292,6 +1368,10 @@ declare namespace Components {
1292
1368
  export interface MappingSimulationResponse {
1293
1369
  entity_updates: EntityUpdate[];
1294
1370
  meter_readings_updates?: MeterReadingUpdate[];
1371
+ /**
1372
+ * Validation warnings about the configuration (e.g., unique_ids referencing non-indexed fields)
1373
+ */
1374
+ warnings?: MappingSimulationWarning[];
1295
1375
  }
1296
1376
  /**
1297
1377
  * Request for v2 mapping simulation. Uses the same configuration format stored in integration use case resources,
@@ -1311,6 +1391,20 @@ declare namespace Components {
1311
1391
  [name: string]: any;
1312
1392
  };
1313
1393
  }
1394
+ export interface MappingSimulationWarning {
1395
+ /**
1396
+ * The entity schema slug where the issue was found
1397
+ */
1398
+ entity_schema: string;
1399
+ /**
1400
+ * The field name that caused the warning
1401
+ */
1402
+ field: string;
1403
+ /**
1404
+ * Description of the validation issue
1405
+ */
1406
+ message: string;
1407
+ }
1314
1408
  /**
1315
1409
  * Scope configuration for meter reading upsert-prune-scope mode.
1316
1410
  * The scope is all readings for the same meter + counter.
@@ -1586,6 +1680,11 @@ declare namespace Components {
1586
1680
  * Use case name
1587
1681
  */
1588
1682
  name: string;
1683
+ /**
1684
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
1685
+ *
1686
+ */
1687
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
1589
1688
  /**
1590
1689
  * Use case type
1591
1690
  */
@@ -1622,6 +1721,10 @@ declare namespace Components {
1622
1721
  * Use case name at this point in history
1623
1722
  */
1624
1723
  name: string;
1724
+ /**
1725
+ * Use case slug at this point in history
1726
+ */
1727
+ slug?: string;
1625
1728
  /**
1626
1729
  * Whether the use case was enabled at this point in history
1627
1730
  */
@@ -2281,6 +2384,11 @@ declare namespace Components {
2281
2384
  * Use case name
2282
2385
  */
2283
2386
  name?: string;
2387
+ /**
2388
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Can only be set once on use cases that don't have a slug yet. Immutable after being set.
2389
+ *
2390
+ */
2391
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
2284
2392
  /**
2285
2393
  * Whether the use case is enabled
2286
2394
  */
@@ -2296,7 +2404,7 @@ declare namespace Components {
2296
2404
  configuration?: /**
2297
2405
  * Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.
2298
2406
  *
2299
- * The file proxy download URL always requires `orgId`, `integrationId`, and `useCaseId` as query parameters.
2407
+ * The file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.
2300
2408
  * The `orgId` is included in the signed URL to establish organization context without requiring authentication.
2301
2409
  * Additional use-case-specific parameters are declared in the `params` array.
2302
2410
  *
@@ -2308,6 +2416,11 @@ declare namespace Components {
2308
2416
  * Use case name
2309
2417
  */
2310
2418
  name?: string;
2419
+ /**
2420
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Can only be set once on use cases that don't have a slug yet. Immutable after being set.
2421
+ *
2422
+ */
2423
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
2311
2424
  /**
2312
2425
  * Whether the use case is enabled
2313
2426
  */
@@ -2328,6 +2441,11 @@ declare namespace Components {
2328
2441
  * Use case name
2329
2442
  */
2330
2443
  name?: string;
2444
+ /**
2445
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Can only be set once on use cases that don't have a slug yet. Immutable after being set.
2446
+ *
2447
+ */
2448
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
2331
2449
  /**
2332
2450
  * Whether the use case is enabled
2333
2451
  */
@@ -2348,6 +2466,11 @@ declare namespace Components {
2348
2466
  * Use case name
2349
2467
  */
2350
2468
  name?: string;
2469
+ /**
2470
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Can only be set once on use cases that don't have a slug yet. Immutable after being set.
2471
+ *
2472
+ */
2473
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
2351
2474
  /**
2352
2475
  * Whether the use case is enabled
2353
2476
  */
@@ -2407,6 +2530,11 @@ declare namespace Components {
2407
2530
  * Use case name
2408
2531
  */
2409
2532
  name: string;
2533
+ /**
2534
+ * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
2535
+ *
2536
+ */
2537
+ slug?: string; // ^[a-z0-9][a-z0-9_-]*$
2410
2538
  /**
2411
2539
  * Use case type
2412
2540
  */
@@ -2443,6 +2571,10 @@ declare namespace Components {
2443
2571
  * Use case name at this point in history
2444
2572
  */
2445
2573
  name: string;
2574
+ /**
2575
+ * Use case slug at this point in history
2576
+ */
2577
+ slug?: string;
2446
2578
  /**
2447
2579
  * Whether the use case was enabled at this point in history
2448
2580
  */
@@ -3852,6 +3984,7 @@ export type FileProxyResponseConfig = Components.Schemas.FileProxyResponseConfig
3852
3984
  export type FileProxyStep = Components.Schemas.FileProxyStep;
3853
3985
  export type FileProxyUrlConfig = Components.Schemas.FileProxyUrlConfig;
3854
3986
  export type FileProxyUrlParam = Components.Schemas.FileProxyUrlParam;
3987
+ export type FileProxyUrlParams = Components.Schemas.FileProxyUrlParams;
3855
3988
  export type FileProxyUseCase = Components.Schemas.FileProxyUseCase;
3856
3989
  export type FileProxyUseCaseConfiguration = Components.Schemas.FileProxyUseCaseConfiguration;
3857
3990
  export type FileProxyUseCaseHistoryEntry = Components.Schemas.FileProxyUseCaseHistoryEntry;
@@ -3876,6 +4009,7 @@ export type IntegrationWithUseCases = Components.Schemas.IntegrationWithUseCases
3876
4009
  export type MappingSimulationRequest = Components.Schemas.MappingSimulationRequest;
3877
4010
  export type MappingSimulationResponse = Components.Schemas.MappingSimulationResponse;
3878
4011
  export type MappingSimulationV2Request = Components.Schemas.MappingSimulationV2Request;
4012
+ export type MappingSimulationWarning = Components.Schemas.MappingSimulationWarning;
3879
4013
  export type MeterReadingPruneScopeConfig = Components.Schemas.MeterReadingPruneScopeConfig;
3880
4014
  export type MeterReadingUpdate = Components.Schemas.MeterReadingUpdate;
3881
4015
  export type MeterUniqueIdsConfig = Components.Schemas.MeterUniqueIdsConfig;
package/dist/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.0.3",
3
3
  "info": {
4
4
  "title": "ERP Integration API",
5
- "version": "0.41.0",
5
+ "version": "0.44.0",
6
6
  "description": "API for integrating with ERP systems, handling tracking acknowledgments, triggering ERP processes, and processing ERP updates."
7
7
  },
8
8
  "tags": [
@@ -2314,10 +2314,12 @@
2314
2314
  "oneOf": [
2315
2315
  {
2316
2316
  "type": "string",
2317
+ "minLength": 2,
2317
2318
  "description": "The serialized object data payload (JSON, XML, etc.) as a string"
2318
2319
  },
2319
2320
  {
2320
2321
  "type": "object",
2322
+ "minProperties": 1,
2321
2323
  "description": "Direct JSON object (will be automatically serialized)",
2322
2324
  "additionalProperties": true
2323
2325
  }
@@ -2390,16 +2392,25 @@
2390
2392
  "oneOf": [
2391
2393
  {
2392
2394
  "type": "string",
2395
+ "minLength": 2,
2393
2396
  "description": "The serialized object data payload (JSON, XML, etc.) as a string"
2394
2397
  },
2395
2398
  {
2396
2399
  "type": "object",
2400
+ "minProperties": 1,
2397
2401
  "description": "Direct JSON object (will be automatically serialized)",
2398
2402
  "additionalProperties": true
2399
2403
  }
2400
2404
  ],
2401
2405
  "description": "The object data payload - can be either a serialized string or a direct JSON object"
2402
2406
  },
2407
+ "use_case_slug": {
2408
+ "type": "string",
2409
+ "pattern": "^[a-z0-9][a-z0-9_-]*$",
2410
+ "minLength": 1,
2411
+ "maxLength": 255,
2412
+ "description": "Recommended. Use case slug for routing this event to the correct use case configuration. If provided, takes precedence over event_name for use case lookup. Preferred over event_name-based routing as slugs are portable across environments.\n"
2413
+ },
2403
2414
  "deduplication_id": {
2404
2415
  "type": "string",
2405
2416
  "pattern": "^[a-zA-Z0-9_-]+$",
@@ -3091,25 +3102,48 @@
3091
3102
  }
3092
3103
  ]
3093
3104
  },
3094
- "FileProxyUrlConfig": {
3105
+ "FileProxyUrlParams": {
3095
3106
  "type": "object",
3096
- "required": [
3097
- "use_case_id"
3098
- ],
3099
- "description": "Auto-constructs a file proxy download URL. orgId and integrationId are injected from context.",
3100
- "properties": {
3101
- "use_case_id": {
3102
- "type": "string",
3103
- "description": "UUID of the file_proxy use case. Maps to useCaseId query parameter."
3107
+ "description": "Custom query parameters. Keys become URL param names, values resolved from payload.",
3108
+ "additionalProperties": {
3109
+ "$ref": "#/components/schemas/FileProxyUrlParam"
3110
+ }
3111
+ },
3112
+ "FileProxyUrlConfig": {
3113
+ "description": "Auto-constructs a file proxy download URL. orgId and integrationId are injected from context. Exactly one of use_case_id or use_case_slug must be provided. Using use_case_slug is recommended as it is portable across environments.\n",
3114
+ "oneOf": [
3115
+ {
3116
+ "type": "object",
3117
+ "required": [
3118
+ "use_case_slug"
3119
+ ],
3120
+ "properties": {
3121
+ "use_case_slug": {
3122
+ "type": "string",
3123
+ "pattern": "^[a-z0-9][a-z0-9_-]*$",
3124
+ "description": "Recommended. Slug of the file_proxy use case. Maps to useCaseSlug query parameter. Portable across environments.\n"
3125
+ },
3126
+ "params": {
3127
+ "$ref": "#/components/schemas/FileProxyUrlParams"
3128
+ }
3129
+ }
3104
3130
  },
3105
- "params": {
3131
+ {
3106
3132
  "type": "object",
3107
- "description": "Custom query parameters. Keys become URL param names, values resolved from payload.",
3108
- "additionalProperties": {
3109
- "$ref": "#/components/schemas/FileProxyUrlParam"
3133
+ "required": [
3134
+ "use_case_id"
3135
+ ],
3136
+ "properties": {
3137
+ "use_case_id": {
3138
+ "type": "string",
3139
+ "description": "Legacy. UUID of the file_proxy use case. Maps to useCaseId query parameter. Prefer use_case_slug for portable configuration.\n"
3140
+ },
3141
+ "params": {
3142
+ "$ref": "#/components/schemas/FileProxyUrlParams"
3143
+ }
3110
3144
  }
3111
3145
  }
3112
- }
3146
+ ]
3113
3147
  },
3114
3148
  "EmbeddedUseCaseRequest": {
3115
3149
  "oneOf": [
@@ -3147,6 +3181,13 @@
3147
3181
  "maxLength": 255,
3148
3182
  "description": "Use case name"
3149
3183
  },
3184
+ "slug": {
3185
+ "type": "string",
3186
+ "pattern": "^[a-z0-9][a-z0-9_-]*$",
3187
+ "minLength": 1,
3188
+ "maxLength": 255,
3189
+ "description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.\n"
3190
+ },
3150
3191
  "enabled": {
3151
3192
  "type": "boolean",
3152
3193
  "description": "Whether the use case is enabled"
@@ -3234,6 +3275,13 @@
3234
3275
  "type": "string",
3235
3276
  "description": "Use case name"
3236
3277
  },
3278
+ "slug": {
3279
+ "type": "string",
3280
+ "pattern": "^[a-z0-9][a-z0-9_-]*$",
3281
+ "minLength": 1,
3282
+ "maxLength": 255,
3283
+ "description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.\n"
3284
+ },
3237
3285
  "type": {
3238
3286
  "type": "string",
3239
3287
  "enum": [
@@ -3384,6 +3432,7 @@
3384
3432
  "type": "object",
3385
3433
  "required": [
3386
3434
  "name",
3435
+ "slug",
3387
3436
  "type",
3388
3437
  "enabled"
3389
3438
  ],
@@ -3394,6 +3443,13 @@
3394
3443
  "maxLength": 255,
3395
3444
  "description": "Use case name"
3396
3445
  },
3446
+ "slug": {
3447
+ "type": "string",
3448
+ "pattern": "^[a-z0-9][a-z0-9_-]*$",
3449
+ "minLength": 1,
3450
+ "maxLength": 255,
3451
+ "description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.\n"
3452
+ },
3397
3453
  "enabled": {
3398
3454
  "type": "boolean",
3399
3455
  "description": "Whether the use case is enabled"
@@ -3505,6 +3561,13 @@
3505
3561
  "maxLength": 255,
3506
3562
  "description": "Use case name"
3507
3563
  },
3564
+ "slug": {
3565
+ "type": "string",
3566
+ "pattern": "^[a-z0-9][a-z0-9_-]*$",
3567
+ "minLength": 1,
3568
+ "maxLength": 255,
3569
+ "description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Can only be set once on use cases that don't have a slug yet. Immutable after being set.\n"
3570
+ },
3508
3571
  "enabled": {
3509
3572
  "type": "boolean",
3510
3573
  "description": "Whether the use case is enabled"
@@ -3636,6 +3699,10 @@
3636
3699
  "type": "string",
3637
3700
  "description": "Use case name at this point in history"
3638
3701
  },
3702
+ "slug": {
3703
+ "type": "string",
3704
+ "description": "Use case slug at this point in history"
3705
+ },
3639
3706
  "enabled": {
3640
3707
  "type": "boolean",
3641
3708
  "description": "Whether the use case was enabled at this point in history"
@@ -3742,11 +3809,12 @@
3742
3809
  "steps",
3743
3810
  "response"
3744
3811
  ],
3745
- "description": "Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.\n\nThe file proxy download URL always requires `orgId`, `integrationId`, and `useCaseId` as query parameters.\nThe `orgId` is included in the signed URL to establish organization context without requiring authentication.\nAdditional use-case-specific parameters are declared in the `params` array.\n",
3812
+ "description": "Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.\n\nThe file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.\nThe `orgId` is included in the signed URL to establish organization context without requiring authentication.\nAdditional use-case-specific parameters are declared in the `params` array.\n",
3746
3813
  "properties": {
3747
3814
  "requires_vpc": {
3748
3815
  "type": "boolean",
3749
- "description": "Whether requests require VPC routing for IP allowlisting",
3816
+ "readOnly": true,
3817
+ "description": "Whether requests require VPC routing for IP allowlisting. Read-only after creation — can only be modified directly in DynamoDB.",
3750
3818
  "default": false
3751
3819
  },
3752
3820
  "auth": {
@@ -3757,7 +3825,7 @@
3757
3825
  "items": {
3758
3826
  "$ref": "#/components/schemas/FileProxyParam"
3759
3827
  },
3760
- "description": "Additional use-case-specific parameters expected in the download URL query string (beyond the required orgId, integrationId, useCaseId)"
3828
+ "description": "Additional use-case-specific parameters expected in the download URL query string (beyond the required orgId, integrationId, and useCaseSlug or useCaseId)"
3761
3829
  },
3762
3830
  "steps": {
3763
3831
  "type": "array",
@@ -3999,6 +4067,35 @@
3999
4067
  "items": {
4000
4068
  "$ref": "#/components/schemas/MeterReadingUpdate"
4001
4069
  }
4070
+ },
4071
+ "warnings": {
4072
+ "type": "array",
4073
+ "description": "Validation warnings about the configuration (e.g., unique_ids referencing non-indexed fields)",
4074
+ "items": {
4075
+ "$ref": "#/components/schemas/MappingSimulationWarning"
4076
+ }
4077
+ }
4078
+ }
4079
+ },
4080
+ "MappingSimulationWarning": {
4081
+ "type": "object",
4082
+ "required": [
4083
+ "entity_schema",
4084
+ "field",
4085
+ "message"
4086
+ ],
4087
+ "properties": {
4088
+ "entity_schema": {
4089
+ "type": "string",
4090
+ "description": "The entity schema slug where the issue was found"
4091
+ },
4092
+ "field": {
4093
+ "type": "string",
4094
+ "description": "The field name that caused the warning"
4095
+ },
4096
+ "message": {
4097
+ "type": "string",
4098
+ "description": "Description of the validation issue"
4002
4099
  }
4003
4100
  }
4004
4101
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/erp-integration-client",
3
- "version": "0.26.0",
3
+ "version": "0.26.3",
4
4
  "description": "Client library for ePilot ERP Integration API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",