@epilot/integration-toolkit-client 1.0.4 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/openapi.d.ts CHANGED
@@ -296,10 +296,10 @@ declare namespace Components {
296
296
  */
297
297
  name: string;
298
298
  /**
299
- * 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.
299
+ * URL-safe identifier for the use case. Required for explicit creates so every use case has a portable cross-environment identifier. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
300
300
  *
301
301
  */
302
- slug?: string; // ^[a-z0-9][a-z0-9_-]*$
302
+ slug: string; // ^[a-z0-9][a-z0-9_-]*$
303
303
  /**
304
304
  * Whether the use case is enabled
305
305
  */
@@ -324,10 +324,10 @@ declare namespace Components {
324
324
  */
325
325
  name: string;
326
326
  /**
327
- * 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.
327
+ * URL-safe identifier for the use case. Required for explicit creates so every use case has a portable cross-environment identifier. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
328
328
  *
329
329
  */
330
- slug?: string; // ^[a-z0-9][a-z0-9_-]*$
330
+ slug: string; // ^[a-z0-9][a-z0-9_-]*$
331
331
  /**
332
332
  * Whether the use case is enabled
333
333
  */
@@ -381,10 +381,10 @@ declare namespace Components {
381
381
  */
382
382
  name: string;
383
383
  /**
384
- * 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.
384
+ * URL-safe identifier for the use case. Required for explicit creates so every use case has a portable cross-environment identifier. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
385
385
  *
386
386
  */
387
- slug?: string; // ^[a-z0-9][a-z0-9_-]*$
387
+ slug: string; // ^[a-z0-9][a-z0-9_-]*$
388
388
  /**
389
389
  * Whether the use case is enabled
390
390
  */
@@ -401,10 +401,10 @@ declare namespace Components {
401
401
  */
402
402
  name: string;
403
403
  /**
404
- * 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.
404
+ * URL-safe identifier for the use case. Required for explicit creates so every use case has a portable cross-environment identifier. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
405
405
  *
406
406
  */
407
- slug?: string; // ^[a-z0-9][a-z0-9_-]*$
407
+ slug: string; // ^[a-z0-9][a-z0-9_-]*$
408
408
  /**
409
409
  * Whether the use case is enabled
410
410
  */
@@ -421,10 +421,10 @@ declare namespace Components {
421
421
  */
422
422
  name: string;
423
423
  /**
424
- * 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.
424
+ * URL-safe identifier for the use case. Required for explicit creates so every use case has a portable cross-environment identifier. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
425
425
  *
426
426
  */
427
- slug?: string; // ^[a-z0-9][a-z0-9_-]*$
427
+ slug: string; // ^[a-z0-9][a-z0-9_-]*$
428
428
  /**
429
429
  * Whether the use case is enabled
430
430
  */
@@ -446,10 +446,10 @@ declare namespace Components {
446
446
  */
447
447
  name: string;
448
448
  /**
449
- * 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.
449
+ * URL-safe identifier for the use case. Required for explicit creates so every use case has a portable cross-environment identifier. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.
450
450
  *
451
451
  */
452
- slug?: string; // ^[a-z0-9][a-z0-9_-]*$
452
+ slug: string; // ^[a-z0-9][a-z0-9_-]*$
453
453
  /**
454
454
  * Whether the use case is enabled
455
455
  */
@@ -500,7 +500,7 @@ declare namespace Components {
500
500
  */
501
501
  name: string;
502
502
  /**
503
- * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.
503
+ * URL-safe identifier for the use case. Optional on this upsert/sync endpoint when omitted, the server derives one from the name and ensures uniqueness within the integration. Immutable after creation.
504
504
  *
505
505
  */
506
506
  slug?: string; // ^[a-z0-9][a-z0-9_-]*$
@@ -540,7 +540,7 @@ declare namespace Components {
540
540
  */
541
541
  name: string;
542
542
  /**
543
- * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.
543
+ * URL-safe identifier for the use case. Optional on this upsert/sync endpoint when omitted, the server derives one from the name and ensures uniqueness within the integration. Immutable after creation.
544
544
  *
545
545
  */
546
546
  slug?: string; // ^[a-z0-9][a-z0-9_-]*$
@@ -572,7 +572,7 @@ declare namespace Components {
572
572
  */
573
573
  name: string;
574
574
  /**
575
- * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.
575
+ * URL-safe identifier for the use case. Optional on this upsert/sync endpoint when omitted, the server derives one from the name and ensures uniqueness within the integration. Immutable after creation.
576
576
  *
577
577
  */
578
578
  slug?: string; // ^[a-z0-9][a-z0-9_-]*$
@@ -604,7 +604,7 @@ declare namespace Components {
604
604
  */
605
605
  name: string;
606
606
  /**
607
- * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.
607
+ * URL-safe identifier for the use case. Optional on this upsert/sync endpoint when omitted, the server derives one from the name and ensures uniqueness within the integration. Immutable after creation.
608
608
  *
609
609
  */
610
610
  slug?: string; // ^[a-z0-9][a-z0-9_-]*$
@@ -636,7 +636,7 @@ declare namespace Components {
636
636
  */
637
637
  name: string;
638
638
  /**
639
- * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.
639
+ * URL-safe identifier for the use case. Optional on this upsert/sync endpoint when omitted, the server derives one from the name and ensures uniqueness within the integration. Immutable after creation.
640
640
  *
641
641
  */
642
642
  slug?: string; // ^[a-z0-9][a-z0-9_-]*$
@@ -673,7 +673,7 @@ declare namespace Components {
673
673
  */
674
674
  name: string;
675
675
  /**
676
- * URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.
676
+ * URL-safe identifier for the use case. Optional on this upsert/sync endpoint when omitted, the server derives one from the name and ensures uniqueness within the integration. Immutable after creation.
677
677
  *
678
678
  */
679
679
  slug?: string; // ^[a-z0-9][a-z0-9_-]*$
@@ -704,6 +704,43 @@ declare namespace Components {
704
704
  [name: string]: any;
705
705
  };
706
706
  }
707
+ /**
708
+ * Resolves to an org-scoped environment variable from the epilot environments-api service at runtime, replacing hard-coded environment-specific values (URLs, prefixes, identifiers) in inbound mappings. Secrets (`SecretString` values) are never exposed; the runtime treats both "missing key" and "secret-typed key" as identical `undefined` outcomes (no info disclosure via error code). For secret-resolving contexts (e.g. authorization headers in managed-call or file-proxy step configurations), use the templated `{{ env.<key> }}` syntax instead — that mechanism does decrypt secrets.
709
+ *
710
+ */
711
+ export type EnvVarRefConfig = /**
712
+ * Resolves to an org-scoped environment variable from the epilot environments-api service at runtime, replacing hard-coded environment-specific values (URLs, prefixes, identifiers) in inbound mappings. Secrets (`SecretString` values) are never exposed; the runtime treats both "missing key" and "secret-typed key" as identical `undefined` outcomes (no info disclosure via error code). For secret-resolving contexts (e.g. authorization headers in managed-call or file-proxy step configurations), use the templated `{{ env.<key> }}` syntax instead — that mechanism does decrypt secrets.
713
+ *
714
+ */
715
+ {
716
+ /**
717
+ * Environment variable key. Must match the environments-api key contract (lowercase, digits, `_`, `.`, `-`; max 128 chars; starts with a lowercase letter or digit). Supports dot-namespaced keys like `erp_api.base_url`.
718
+ *
719
+ */
720
+ key: string; // ^[a-z0-9][a-z0-9_.-]{0,127}$
721
+ /**
722
+ * Literal string returned when the key is missing (or is a secret). When provided, the `ENV_VAR_REF_NOT_FOUND` warning is suppressed because the author signalled the absence is expected.
723
+ *
724
+ */
725
+ default?: string;
726
+ /**
727
+ * `value` returns the resolved env-var string as-is.
728
+ *
729
+ */
730
+ return?: "value";
731
+ } | {
732
+ key: string; // ^[a-z0-9][a-z0-9_.-]{0,127}$
733
+ default?: string;
734
+ /**
735
+ * Evaluate the sibling `jsonataExpression` against the resolved env-var value (the input `$` is the string value).
736
+ *
737
+ */
738
+ return: "jsonata";
739
+ /**
740
+ * JSONata expression evaluated against the resolved env-var value.
741
+ */
742
+ jsonataExpression: string;
743
+ };
707
744
  export interface EnvironmentFieldConfig {
708
745
  /**
709
746
  * Environment variable key, used to look up the value in the Environments API.
@@ -760,6 +797,11 @@ declare namespace Components {
760
797
  * evt-2025-05-01-12345-create-bp
761
798
  */
762
799
  deduplication_id?: string; // ^[a-zA-Z0-9_-]+$
800
+ /**
801
+ * Resolved use case ID for the inbound event. Null when no use case matched or for events ingested before this field was introduced. Server-populated only — ignored if supplied on inbound requests.
802
+ *
803
+ */
804
+ use_case_id?: string | null;
763
805
  }
764
806
  export type ErpEventV3 = {
765
807
  /**
@@ -880,14 +922,28 @@ declare namespace Components {
880
922
  */
881
923
  correlation_id?: string;
882
924
  /**
883
- * Optional override for the stage 1 FIFO message group ID used when queuing
884
- * the events for processing. Defaults to `INTEGRATION#<hash(integration_id)>`,
885
- * which strictly serializes all events from one integration. Provide a
886
- * finer-grained value (e.g. including a use case slug or a payload-derived key)
887
- * to pin related events to the same group while letting unrelated events process
888
- * in parallel. Downstream stage 2 still serializes per-entity via its own
889
- * message group ID.
925
+ * Controls ordering and parallelism for this request's events.
926
+ *
927
+ * By default, all events for a given `integration_id` are processed
928
+ * **strictly in order, one at a time**. For high-volume integrations this
929
+ * can become a throughput bottleneck.
890
930
  *
931
+ * Set `group_id` to opt into **parallel processing**:
932
+ * - Events sharing the same `group_id` are processed in the order received.
933
+ * - Events with different `group_id` values are processed in parallel.
934
+ *
935
+ * Typical usage is to derive `group_id` from a logical partition key in
936
+ * your payload — for example the customer ID, contract ID, or meter ID —
937
+ * so updates to the same business object remain ordered while unrelated
938
+ * objects are processed concurrently.
939
+ *
940
+ * Notes:
941
+ * - Up to 20 groups per integration are processed concurrently. Using
942
+ * more distinct values than that yields no additional parallelism.
943
+ * - Omit this field if strict per-integration ordering is required.
944
+ *
945
+ * example:
946
+ * customer-42
891
947
  */
892
948
  group_id?: string;
893
949
  /**
@@ -1142,6 +1198,10 @@ declare namespace Components {
1142
1198
  * Additional use-case-specific parameters expected in the download URL query string (beyond the required orgId, integrationId, and useCaseSlug or useCaseId)
1143
1199
  */
1144
1200
  params?: FileProxyParam[];
1201
+ /**
1202
+ * Additional origins permitted to call /download for this use case (CORS, exact match). Portal origins are always allowed.
1203
+ */
1204
+ allowed_origins?: string /* uri ^https?:// */[];
1145
1205
  /**
1146
1206
  * Ordered list of HTTP steps to execute to retrieve the file
1147
1207
  */
@@ -1180,6 +1240,10 @@ declare namespace Components {
1180
1240
  * Description of the change that was made at this point in history
1181
1241
  */
1182
1242
  change_description?: string;
1243
+ /**
1244
+ * User ID of the user who made the change that produced this history entry
1245
+ */
1246
+ changed_by?: string;
1183
1247
  /**
1184
1248
  * ISO-8601 timestamp when the use case was originally created
1185
1249
  */
@@ -1516,6 +1580,10 @@ declare namespace Components {
1516
1580
  * Description of the change that was made at this point in history
1517
1581
  */
1518
1582
  change_description?: string;
1583
+ /**
1584
+ * User ID of the user who made the change that produced this history entry
1585
+ */
1586
+ changed_by?: string;
1519
1587
  /**
1520
1588
  * ISO-8601 timestamp when the use case was originally created
1521
1589
  */
@@ -1740,6 +1808,16 @@ declare namespace Components {
1740
1808
  *
1741
1809
  */
1742
1810
  FileProxyUrlConfig;
1811
+ portal_ref?: /**
1812
+ * Resolves to a property of one of the calling organization's epilot portal configurations at runtime, replacing hard-coded environment-specific portal UUIDs in inbound mappings. Matched portals are sorted ascending by `(_created_at, portal_id)`; portals without `_created_at` sort first (treated as oldest). When `select: "single"` matches more than one portal, the resolver still returns the oldest match and emits a `PORTAL_REF_AMBIGUOUS` warning.
1813
+ *
1814
+ */
1815
+ PortalRefConfig;
1816
+ env_var_ref?: /**
1817
+ * Resolves to an org-scoped environment variable from the epilot environments-api service at runtime, replacing hard-coded environment-specific values (URLs, prefixes, identifiers) in inbound mappings. Secrets (`SecretString` values) are never exposed; the runtime treats both "missing key" and "secret-typed key" as identical `undefined` outcomes (no info disclosure via error code). For secret-resolving contexts (e.g. authorization headers in managed-call or file-proxy step configurations), use the templated `{{ env.<key> }}` syntax instead — that mechanism does decrypt secrets.
1818
+ *
1819
+ */
1820
+ EnvVarRefConfig;
1743
1821
  }
1744
1822
  export interface IntegrationFieldV1 {
1745
1823
  /**
@@ -2098,6 +2176,10 @@ declare namespace Components {
2098
2176
  * Description of the change that was made at this point in history
2099
2177
  */
2100
2178
  change_description?: string;
2179
+ /**
2180
+ * User ID of the user who made the change that produced this history entry
2181
+ */
2182
+ changed_by?: string;
2101
2183
  /**
2102
2184
  * ISO-8601 timestamp when the use case was originally created
2103
2185
  */
@@ -2212,7 +2294,7 @@ declare namespace Components {
2212
2294
  };
2213
2295
  };
2214
2296
  /**
2215
- * Meter reading attributes. Required: external_id, timestamp, source, value. `source` must be one of: ECP, ERP, 360, journey-submission. `reason` (optional) must be one of: regular, irregular, last, first, meter_change, contract_change, meter_adjustment (or empty/null).
2297
+ * Meter reading attributes. Required: external_id, timestamp, source, value. `timestamp` must be ISO 8601 — either `YYYY-MM-DD` or `YYYY-MM-DDTHH:mm:ss` (with optional fractional seconds and optional `Z` / `±HH:mm` timezone offset); non-ISO formats (e.g. `DD.MM.YYYY` or epoch numbers) are rejected and must be converted upstream via a `jsonataExpression` (e.g. `$fromMillis(...)`). Date-only values are normalized to midnight UTC and offset-less date-times are anchored to UTC before being forwarded to the metering API. `source` must be one of: ECP, ERP, 360, journey-submission. `reason` (optional) must be one of: regular, irregular, last, first, meter_change, contract_change, meter_adjustment (or empty/null).
2216
2298
  */
2217
2299
  attributes: {
2218
2300
  [name: string]: any;
@@ -2601,6 +2683,10 @@ declare namespace Components {
2601
2683
  * Description of the change that was made at this point in history
2602
2684
  */
2603
2685
  change_description?: string;
2686
+ /**
2687
+ * User ID of the user who made the change that produced this history entry
2688
+ */
2689
+ changed_by?: string;
2604
2690
  /**
2605
2691
  * ISO-8601 timestamp when the use case was originally created
2606
2692
  */
@@ -2656,6 +2742,80 @@ declare namespace Components {
2656
2742
  */
2657
2743
  conflicts?: OutboundConflict[];
2658
2744
  }
2745
+ /**
2746
+ * Origin/type of an epilot portal configuration.
2747
+ */
2748
+ export type PortalOrigin = "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL" | "B2B_PORTAL" | "ADDITIONAL_PORTAL";
2749
+ /**
2750
+ * Resolves to a property of one of the calling organization's epilot portal configurations at runtime, replacing hard-coded environment-specific portal UUIDs in inbound mappings. Matched portals are sorted ascending by `(_created_at, portal_id)`; portals without `_created_at` sort first (treated as oldest). When `select: "single"` matches more than one portal, the resolver still returns the oldest match and emits a `PORTAL_REF_AMBIGUOUS` warning.
2751
+ *
2752
+ */
2753
+ export type PortalRefConfig = /**
2754
+ * Resolves to a property of one of the calling organization's epilot portal configurations at runtime, replacing hard-coded environment-specific portal UUIDs in inbound mappings. Matched portals are sorted ascending by `(_created_at, portal_id)`; portals without `_created_at` sort first (treated as oldest). When `select: "single"` matches more than one portal, the resolver still returns the oldest match and emits a `PORTAL_REF_AMBIGUOUS` warning.
2755
+ *
2756
+ */
2757
+ {
2758
+ filter?: /**
2759
+ * Filter applied to the org's portal configurations before selection. All filters default to "match any" except `enabled` (default `true`) and `is_dummy` (default `false`). Set `enabled` or `is_dummy` to `null` to opt out of the default.
2760
+ *
2761
+ */
2762
+ PortalRefFilter;
2763
+ /**
2764
+ * `single` returns one literal value (the oldest matching portal); `all` returns an array of literal values (0, 1, or many).
2765
+ *
2766
+ */
2767
+ select?: "single" | "all";
2768
+ /**
2769
+ * Which portal field to emit.
2770
+ */
2771
+ return?: "portal_id" | "origin" | "domain" | "name";
2772
+ } | {
2773
+ filter?: /**
2774
+ * Filter applied to the org's portal configurations before selection. All filters default to "match any" except `enabled` (default `true`) and `is_dummy` (default `false`). Set `enabled` or `is_dummy` to `null` to opt out of the default.
2775
+ *
2776
+ */
2777
+ PortalRefFilter;
2778
+ select?: "single" | "all";
2779
+ /**
2780
+ * Evaluate the sibling `jsonataExpression` against the matched portal(s). With `select: "single"` the input is the matched PortalConfig object; with `select: "all"` it is the full filtered+sorted array.
2781
+ *
2782
+ */
2783
+ return: "jsonata";
2784
+ /**
2785
+ * JSONata expression evaluated against the matched portal(s).
2786
+ */
2787
+ jsonataExpression: string;
2788
+ };
2789
+ /**
2790
+ * Filter applied to the org's portal configurations before selection. All filters default to "match any" except `enabled` (default `true`) and `is_dummy` (default `false`). Set `enabled` or `is_dummy` to `null` to opt out of the default.
2791
+ *
2792
+ */
2793
+ export interface PortalRefFilter {
2794
+ /**
2795
+ * Single origin or array of origins (matches if origin is in the array).
2796
+ */
2797
+ origin?: /* Single origin or array of origins (matches if origin is in the array). */ /* Origin/type of an epilot portal configuration. */ PortalOrigin | /* Origin/type of an epilot portal configuration. */ PortalOrigin[];
2798
+ /**
2799
+ * Match portals with this `enabled` value. Default `true`. Set to `null` to ignore.
2800
+ */
2801
+ enabled?: boolean | null;
2802
+ /**
2803
+ * Match portals with this `is_dummy` value. Default `false`. Set to `null` to ignore.
2804
+ */
2805
+ is_dummy?: boolean | null;
2806
+ /**
2807
+ * Optional restriction on `is_epilot_domain`.
2808
+ */
2809
+ is_epilot_domain?: boolean;
2810
+ /**
2811
+ * Exact match on the portal's `name`.
2812
+ */
2813
+ name?: string;
2814
+ /**
2815
+ * Exact match on the portal's `domain`.
2816
+ */
2817
+ domain?: string;
2818
+ }
2659
2819
  /**
2660
2820
  * Scope configuration for upsert-prune-scope modes.
2661
2821
  * Defines how to find entities that should be pruned if not in the upsert payload.
@@ -2774,6 +2934,10 @@ declare namespace Components {
2774
2934
  * Filter by event name (alias for object_type)
2775
2935
  */
2776
2936
  event_name?: string;
2937
+ /**
2938
+ * Filter by use case ID
2939
+ */
2940
+ use_case_id?: string;
2777
2941
  /**
2778
2942
  * Maximum number of results to return
2779
2943
  * example:
@@ -3365,6 +3529,10 @@ declare namespace Components {
3365
3529
  * Description of the change that was made at this point in history
3366
3530
  */
3367
3531
  change_description?: string;
3532
+ /**
3533
+ * User ID of the user who made the change that produced this history entry
3534
+ */
3535
+ changed_by?: string;
3368
3536
  /**
3369
3537
  * ISO-8601 timestamp when the use case was originally created
3370
3538
  */
@@ -3387,6 +3555,53 @@ declare namespace Components {
3387
3555
  */
3388
3556
  SecureProxyUseCaseConfiguration;
3389
3557
  }
3558
+ /**
3559
+ * Current whitelist state for a secure_proxy use case. vpc_mode is read-only
3560
+ * context so the UI can show the user what mode the pool is in.
3561
+ *
3562
+ */
3563
+ export interface SecureProxyWhitelist {
3564
+ /**
3565
+ * VPC routing mode (read-only). `null` if not yet set.
3566
+ */
3567
+ vpc_mode: "static_ip" | "secure_link";
3568
+ /**
3569
+ * Exact domain ("api.example.com") or wildcard prefix ("*.example.com").
3570
+ * Wildcards must have at least 2 labels in the suffix.
3571
+ *
3572
+ */
3573
+ allowed_domains: string[];
3574
+ /**
3575
+ * CIDR-notation IP ranges, e.g. "10.0.0.0/24".
3576
+ */
3577
+ allowed_ips: string[];
3578
+ }
3579
+ /**
3580
+ * Partial update for a secure_proxy whitelist. At least one of
3581
+ * `allowed_domains` or `allowed_ips` must be provided.
3582
+ *
3583
+ * Per-field semantics:
3584
+ * - **omitted** — the field is not modified; the stored value is preserved.
3585
+ * - **non-empty array** — the stored value is replaced with the supplied list.
3586
+ * - **empty array (`[]`)** — the list is cleared (stored as `[]`). This is the
3587
+ * canonical way to remove all entries from a list. `null` is not accepted.
3588
+ *
3589
+ */
3590
+ export interface SecureProxyWhitelistUpdate {
3591
+ /**
3592
+ * Exact domain ("api.example.com") or wildcard prefix ("*.example.com").
3593
+ * Wildcards must have at least 2 labels in the suffix.
3594
+ * Pass `[]` to clear all allowed domains.
3595
+ *
3596
+ */
3597
+ allowed_domains?: string[];
3598
+ /**
3599
+ * CIDR-notation IP ranges, e.g. "10.0.0.0/24".
3600
+ * Pass `[]` to clear all allowed IPs.
3601
+ *
3602
+ */
3603
+ allowed_ips?: string[];
3604
+ }
3390
3605
  export interface SetIntegrationAppMappingRequest {
3391
3606
  /**
3392
3607
  * UUID of the integration app instance
@@ -3872,6 +4087,10 @@ declare namespace Components {
3872
4087
  * Description of the change that was made at this point in history
3873
4088
  */
3874
4089
  change_description?: string;
4090
+ /**
4091
+ * User ID of the user who made the change that produced this history entry
4092
+ */
4093
+ changed_by?: string;
3875
4094
  /**
3876
4095
  * ISO-8601 timestamp when the use case was originally created
3877
4096
  */
@@ -4216,6 +4435,29 @@ declare namespace Paths {
4216
4435
  export type $500 = Components.Responses.InternalServerError;
4217
4436
  }
4218
4437
  }
4438
+ namespace GetSecureProxyWhitelist {
4439
+ namespace Parameters {
4440
+ export type IntegrationId = string; // uuid
4441
+ export type UseCaseId = string; // uuid
4442
+ }
4443
+ export interface PathParameters {
4444
+ integrationId: Parameters.IntegrationId /* uuid */;
4445
+ useCaseId: Parameters.UseCaseId /* uuid */;
4446
+ }
4447
+ namespace Responses {
4448
+ export type $200 = /**
4449
+ * Current whitelist state for a secure_proxy use case. vpc_mode is read-only
4450
+ * context so the UI can show the user what mode the pool is in.
4451
+ *
4452
+ */
4453
+ Components.Schemas.SecureProxyWhitelist;
4454
+ export type $400 = Components.Responses.BadRequest;
4455
+ export type $401 = Components.Responses.Unauthorized;
4456
+ export type $403 = Components.Responses.Forbidden;
4457
+ export interface $404 {
4458
+ }
4459
+ }
4460
+ }
4219
4461
  namespace GetUseCase {
4220
4462
  namespace Parameters {
4221
4463
  export type IntegrationId = string; // uuid
@@ -4260,6 +4502,37 @@ declare namespace Paths {
4260
4502
  export type $500 = Components.Responses.InternalServerError;
4261
4503
  }
4262
4504
  }
4505
+ namespace ListSecureProxyWhitelistHistory {
4506
+ namespace Parameters {
4507
+ export type IntegrationId = string; // uuid
4508
+ export type Limit = number;
4509
+ export type UseCaseId = string; // uuid
4510
+ }
4511
+ export interface PathParameters {
4512
+ integrationId: Parameters.IntegrationId /* uuid */;
4513
+ useCaseId: Parameters.UseCaseId /* uuid */;
4514
+ }
4515
+ export interface QueryParameters {
4516
+ limit?: Parameters.Limit;
4517
+ }
4518
+ namespace Responses {
4519
+ export interface $200 {
4520
+ /**
4521
+ * Entries are `SecureProxyUseCaseHistoryEntry` in reverse
4522
+ * chronological order (newest first). Entries older than the
4523
+ * requested `limit` are not returned.
4524
+ *
4525
+ */
4526
+ history: Components.Schemas.SecureProxyUseCaseHistoryEntry[];
4527
+ }
4528
+ export type $400 = Components.Responses.BadRequest;
4529
+ export type $401 = Components.Responses.Unauthorized;
4530
+ export type $403 = Components.Responses.Forbidden;
4531
+ export interface $404 {
4532
+ }
4533
+ export type $500 = Components.Responses.InternalServerError;
4534
+ }
4535
+ }
4263
4536
  namespace ListUseCaseHistory {
4264
4537
  namespace Parameters {
4265
4538
  export type Cursor = string;
@@ -4583,6 +4856,41 @@ declare namespace Paths {
4583
4856
  export type $500 = Components.Responses.InternalServerError;
4584
4857
  }
4585
4858
  }
4859
+ namespace UpdateSecureProxyWhitelist {
4860
+ namespace Parameters {
4861
+ export type IntegrationId = string; // uuid
4862
+ export type UseCaseId = string; // uuid
4863
+ }
4864
+ export interface PathParameters {
4865
+ integrationId: Parameters.IntegrationId /* uuid */;
4866
+ useCaseId: Parameters.UseCaseId /* uuid */;
4867
+ }
4868
+ export type RequestBody = /**
4869
+ * Partial update for a secure_proxy whitelist. At least one of
4870
+ * `allowed_domains` or `allowed_ips` must be provided.
4871
+ *
4872
+ * Per-field semantics:
4873
+ * - **omitted** — the field is not modified; the stored value is preserved.
4874
+ * - **non-empty array** — the stored value is replaced with the supplied list.
4875
+ * - **empty array (`[]`)** — the list is cleared (stored as `[]`). This is the
4876
+ * canonical way to remove all entries from a list. `null` is not accepted.
4877
+ *
4878
+ */
4879
+ Components.Schemas.SecureProxyWhitelistUpdate;
4880
+ namespace Responses {
4881
+ export type $200 = /**
4882
+ * Current whitelist state for a secure_proxy use case. vpc_mode is read-only
4883
+ * context so the UI can show the user what mode the pool is in.
4884
+ *
4885
+ */
4886
+ Components.Schemas.SecureProxyWhitelist;
4887
+ export type $400 = Components.Responses.BadRequest;
4888
+ export type $401 = Components.Responses.Unauthorized;
4889
+ export type $403 = Components.Responses.Forbidden;
4890
+ export interface $404 {
4891
+ }
4892
+ }
4893
+ }
4586
4894
  namespace UpdateUseCase {
4587
4895
  namespace Parameters {
4588
4896
  export type IntegrationId = string; // uuid
@@ -4882,6 +5190,66 @@ export interface OperationMethods {
4882
5190
  data?: any,
4883
5191
  config?: AxiosRequestConfig
4884
5192
  ): OperationResponse<Paths.DeleteIntegrationV2.Responses.$200>
5193
+ /**
5194
+ * getSecureProxyWhitelist - Get secure_proxy whitelist (admin portal only)
5195
+ *
5196
+ * Returns the current allowed_domains, allowed_ips, and vpc_mode for a secure_proxy use case.
5197
+ * Staff-only — gated by internal-auth issuer AND admin-portal Cognito user pool membership.
5198
+ * Rejects Login-As tokens.
5199
+ *
5200
+ */
5201
+ 'getSecureProxyWhitelist'(
5202
+ parameters?: Parameters<Paths.GetSecureProxyWhitelist.PathParameters> | null,
5203
+ data?: any,
5204
+ config?: AxiosRequestConfig
5205
+ ): OperationResponse<Paths.GetSecureProxyWhitelist.Responses.$200>
5206
+ /**
5207
+ * updateSecureProxyWhitelist - Update secure_proxy whitelist (admin portal only)
5208
+ *
5209
+ * Replaces allowed_domains and/or allowed_ips on a secure_proxy use case.
5210
+ * At least one of the two fields is required. Validation mirrors the CLI's
5211
+ * `validateDomainPatterns` / `validateCidrs`. Writes a USECASE_HISTORY row
5212
+ * with the admin user's email as `changed_by`.
5213
+ *
5214
+ * Update semantics per field:
5215
+ * - **omitted** — field is not modified; the stored value is preserved.
5216
+ * - **non-empty array** — the stored value is replaced with the supplied list.
5217
+ * - **empty array (`[]`)** — the list is cleared (stored as `[]`). This is
5218
+ * the canonical way to remove all entries. `null` is not accepted.
5219
+ *
5220
+ * Staff-only — same auth gates as GET.
5221
+ *
5222
+ */
5223
+ 'updateSecureProxyWhitelist'(
5224
+ parameters?: Parameters<Paths.UpdateSecureProxyWhitelist.PathParameters> | null,
5225
+ data?: Paths.UpdateSecureProxyWhitelist.RequestBody,
5226
+ config?: AxiosRequestConfig
5227
+ ): OperationResponse<Paths.UpdateSecureProxyWhitelist.Responses.$200>
5228
+ /**
5229
+ * listSecureProxyWhitelistHistory - List secure_proxy whitelist change history (admin portal only)
5230
+ *
5231
+ * Returns the most recent USECASE_HISTORY entries for a secure_proxy use case,
5232
+ * in reverse chronological order (newest first). Each entry includes the
5233
+ * actor email (`changed_by`), the ISO-8601 timestamp (`history_created_at`),
5234
+ * the `change_description` (free-text action), and the full `configuration`
5235
+ * snapshot — from which UI-08 computes a before/after diff between consecutive
5236
+ * entries.
5237
+ *
5238
+ * Staff-only — gated by internal-auth issuer AND admin-portal Cognito user pool
5239
+ * membership. Rejects Login-As tokens (same auth gate as the GET / PUT
5240
+ * secure-proxy-whitelist operations).
5241
+ *
5242
+ * Thin wrapper over the service-layer `listUseCaseHistory` that powers
5243
+ * `GET /v1/integrations/{integrationId}/use-cases/{useCaseId}/history` — the
5244
+ * separate path exists because the /v1 variant is tenant-gated and admin-portal
5245
+ * internal-auth tokens do not carry tenant permissions.
5246
+ *
5247
+ */
5248
+ 'listSecureProxyWhitelistHistory'(
5249
+ parameters?: Parameters<Paths.ListSecureProxyWhitelistHistory.QueryParameters & Paths.ListSecureProxyWhitelistHistory.PathParameters> | null,
5250
+ data?: any,
5251
+ config?: AxiosRequestConfig
5252
+ ): OperationResponse<Paths.ListSecureProxyWhitelistHistory.Responses.$200>
4885
5253
  /**
4886
5254
  * setIntegrationAppMapping - setIntegrationAppMapping
4887
5255
  *
@@ -5414,6 +5782,70 @@ export interface PathsDictionary {
5414
5782
  config?: AxiosRequestConfig
5415
5783
  ): OperationResponse<Paths.DeleteIntegrationV2.Responses.$200>
5416
5784
  }
5785
+ ['/v2/integrations/{integrationId}/use-cases/{useCaseId}/secure-proxy-whitelist']: {
5786
+ /**
5787
+ * getSecureProxyWhitelist - Get secure_proxy whitelist (admin portal only)
5788
+ *
5789
+ * Returns the current allowed_domains, allowed_ips, and vpc_mode for a secure_proxy use case.
5790
+ * Staff-only — gated by internal-auth issuer AND admin-portal Cognito user pool membership.
5791
+ * Rejects Login-As tokens.
5792
+ *
5793
+ */
5794
+ 'get'(
5795
+ parameters?: Parameters<Paths.GetSecureProxyWhitelist.PathParameters> | null,
5796
+ data?: any,
5797
+ config?: AxiosRequestConfig
5798
+ ): OperationResponse<Paths.GetSecureProxyWhitelist.Responses.$200>
5799
+ /**
5800
+ * updateSecureProxyWhitelist - Update secure_proxy whitelist (admin portal only)
5801
+ *
5802
+ * Replaces allowed_domains and/or allowed_ips on a secure_proxy use case.
5803
+ * At least one of the two fields is required. Validation mirrors the CLI's
5804
+ * `validateDomainPatterns` / `validateCidrs`. Writes a USECASE_HISTORY row
5805
+ * with the admin user's email as `changed_by`.
5806
+ *
5807
+ * Update semantics per field:
5808
+ * - **omitted** — field is not modified; the stored value is preserved.
5809
+ * - **non-empty array** — the stored value is replaced with the supplied list.
5810
+ * - **empty array (`[]`)** — the list is cleared (stored as `[]`). This is
5811
+ * the canonical way to remove all entries. `null` is not accepted.
5812
+ *
5813
+ * Staff-only — same auth gates as GET.
5814
+ *
5815
+ */
5816
+ 'put'(
5817
+ parameters?: Parameters<Paths.UpdateSecureProxyWhitelist.PathParameters> | null,
5818
+ data?: Paths.UpdateSecureProxyWhitelist.RequestBody,
5819
+ config?: AxiosRequestConfig
5820
+ ): OperationResponse<Paths.UpdateSecureProxyWhitelist.Responses.$200>
5821
+ }
5822
+ ['/v2/integrations/{integrationId}/use-cases/{useCaseId}/secure-proxy-whitelist/history']: {
5823
+ /**
5824
+ * listSecureProxyWhitelistHistory - List secure_proxy whitelist change history (admin portal only)
5825
+ *
5826
+ * Returns the most recent USECASE_HISTORY entries for a secure_proxy use case,
5827
+ * in reverse chronological order (newest first). Each entry includes the
5828
+ * actor email (`changed_by`), the ISO-8601 timestamp (`history_created_at`),
5829
+ * the `change_description` (free-text action), and the full `configuration`
5830
+ * snapshot — from which UI-08 computes a before/after diff between consecutive
5831
+ * entries.
5832
+ *
5833
+ * Staff-only — gated by internal-auth issuer AND admin-portal Cognito user pool
5834
+ * membership. Rejects Login-As tokens (same auth gate as the GET / PUT
5835
+ * secure-proxy-whitelist operations).
5836
+ *
5837
+ * Thin wrapper over the service-layer `listUseCaseHistory` that powers
5838
+ * `GET /v1/integrations/{integrationId}/use-cases/{useCaseId}/history` — the
5839
+ * separate path exists because the /v1 variant is tenant-gated and admin-portal
5840
+ * internal-auth tokens do not carry tenant permissions.
5841
+ *
5842
+ */
5843
+ 'get'(
5844
+ parameters?: Parameters<Paths.ListSecureProxyWhitelistHistory.QueryParameters & Paths.ListSecureProxyWhitelistHistory.PathParameters> | null,
5845
+ data?: any,
5846
+ config?: AxiosRequestConfig
5847
+ ): OperationResponse<Paths.ListSecureProxyWhitelistHistory.Responses.$200>
5848
+ }
5417
5849
  ['/v1/integrations/{integrationId}/app-mapping']: {
5418
5850
  /**
5419
5851
  * setIntegrationAppMapping - setIntegrationAppMapping
@@ -5697,6 +6129,7 @@ export type EmbeddedSecureProxyUseCaseRequest = Components.Schemas.EmbeddedSecur
5697
6129
  export type EmbeddedUseCaseRequest = Components.Schemas.EmbeddedUseCaseRequest;
5698
6130
  export type EmbeddedUseCaseRequestBase = Components.Schemas.EmbeddedUseCaseRequestBase;
5699
6131
  export type EntityUpdate = Components.Schemas.EntityUpdate;
6132
+ export type EnvVarRefConfig = Components.Schemas.EnvVarRefConfig;
5700
6133
  export type EnvironmentFieldConfig = Components.Schemas.EnvironmentFieldConfig;
5701
6134
  export type ErpEvent = Components.Schemas.ErpEvent;
5702
6135
  export type ErpEventV3 = Components.Schemas.ErpEventV3;
@@ -5763,6 +6196,9 @@ export type OutboundStatusResponse = Components.Schemas.OutboundStatusResponse;
5763
6196
  export type OutboundUseCase = Components.Schemas.OutboundUseCase;
5764
6197
  export type OutboundUseCaseHistoryEntry = Components.Schemas.OutboundUseCaseHistoryEntry;
5765
6198
  export type OutboundUseCaseStatus = Components.Schemas.OutboundUseCaseStatus;
6199
+ export type PortalOrigin = Components.Schemas.PortalOrigin;
6200
+ export type PortalRefConfig = Components.Schemas.PortalRefConfig;
6201
+ export type PortalRefFilter = Components.Schemas.PortalRefFilter;
5766
6202
  export type PruneScopeConfig = Components.Schemas.PruneScopeConfig;
5767
6203
  export type QueryAccessLogsRequest = Components.Schemas.QueryAccessLogsRequest;
5768
6204
  export type QueryEventsRequest = Components.Schemas.QueryEventsRequest;
@@ -5783,6 +6219,8 @@ export type SecureProxySummary = Components.Schemas.SecureProxySummary;
5783
6219
  export type SecureProxyUseCase = Components.Schemas.SecureProxyUseCase;
5784
6220
  export type SecureProxyUseCaseConfiguration = Components.Schemas.SecureProxyUseCaseConfiguration;
5785
6221
  export type SecureProxyUseCaseHistoryEntry = Components.Schemas.SecureProxyUseCaseHistoryEntry;
6222
+ export type SecureProxyWhitelist = Components.Schemas.SecureProxyWhitelist;
6223
+ export type SecureProxyWhitelistUpdate = Components.Schemas.SecureProxyWhitelistUpdate;
5786
6224
  export type SetIntegrationAppMappingRequest = Components.Schemas.SetIntegrationAppMappingRequest;
5787
6225
  export type TimeSeriesBreakdownItemV2 = Components.Schemas.TimeSeriesBreakdownItemV2;
5788
6226
  export type TimeSeriesBucket = Components.Schemas.TimeSeriesBucket;