@epilot/sdk 2.7.8 → 2.7.10

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.
Files changed (123) hide show
  1. package/definitions/focus-pocus-runtime.json +1 -0
  2. package/definitions/focus-pocus.json +757 -0
  3. package/definitions/integration-toolkit.json +21 -1
  4. package/dist/apis/access-token.cjs +6 -6
  5. package/dist/apis/access-token.js +1 -1
  6. package/dist/apis/address-suggestions.cjs +6 -6
  7. package/dist/apis/address-suggestions.js +1 -1
  8. package/dist/apis/address.cjs +6 -6
  9. package/dist/apis/address.js +1 -1
  10. package/dist/apis/ai-agents.cjs +6 -6
  11. package/dist/apis/ai-agents.js +1 -1
  12. package/dist/apis/app.cjs +6 -6
  13. package/dist/apis/app.js +1 -1
  14. package/dist/apis/audit-logs.cjs +6 -6
  15. package/dist/apis/audit-logs.js +1 -1
  16. package/dist/apis/automation.cjs +6 -6
  17. package/dist/apis/automation.js +1 -1
  18. package/dist/apis/billing.cjs +6 -6
  19. package/dist/apis/billing.js +1 -1
  20. package/dist/apis/blueprint-manifest.cjs +6 -6
  21. package/dist/apis/blueprint-manifest.js +1 -1
  22. package/dist/apis/calendar.cjs +6 -6
  23. package/dist/apis/calendar.js +1 -1
  24. package/dist/apis/configuration-hub.cjs +6 -6
  25. package/dist/apis/configuration-hub.js +1 -1
  26. package/dist/apis/consent.cjs +6 -6
  27. package/dist/apis/consent.js +1 -1
  28. package/dist/apis/customer-portal.cjs +6 -6
  29. package/dist/apis/customer-portal.js +1 -1
  30. package/dist/apis/dashboard.cjs +6 -6
  31. package/dist/apis/dashboard.js +1 -1
  32. package/dist/apis/data-governance.cjs +6 -6
  33. package/dist/apis/data-governance.js +1 -1
  34. package/dist/apis/deduplication.cjs +6 -6
  35. package/dist/apis/deduplication.js +1 -1
  36. package/dist/apis/design.cjs +6 -6
  37. package/dist/apis/design.js +1 -1
  38. package/dist/apis/document.cjs +6 -6
  39. package/dist/apis/document.js +1 -1
  40. package/dist/apis/email-settings.cjs +6 -6
  41. package/dist/apis/email-settings.js +1 -1
  42. package/dist/apis/email-template.cjs +6 -6
  43. package/dist/apis/email-template.js +1 -1
  44. package/dist/apis/entity-mapping.cjs +6 -6
  45. package/dist/apis/entity-mapping.js +1 -1
  46. package/dist/apis/entity.cjs +6 -6
  47. package/dist/apis/entity.js +1 -1
  48. package/dist/apis/environments.cjs +6 -6
  49. package/dist/apis/environments.js +1 -1
  50. package/dist/apis/event-catalog.cjs +6 -6
  51. package/dist/apis/event-catalog.js +1 -1
  52. package/dist/apis/file.cjs +6 -6
  53. package/dist/apis/file.js +1 -1
  54. package/dist/apis/iban.cjs +6 -6
  55. package/dist/apis/iban.js +1 -1
  56. package/dist/apis/integration-toolkit.cjs +6 -6
  57. package/dist/apis/integration-toolkit.d.cts +2 -2
  58. package/dist/apis/integration-toolkit.d.ts +2 -2
  59. package/dist/apis/integration-toolkit.js +1 -1
  60. package/dist/apis/journey.cjs +6 -6
  61. package/dist/apis/journey.js +1 -1
  62. package/dist/apis/kanban.cjs +6 -6
  63. package/dist/apis/kanban.js +1 -1
  64. package/dist/apis/message.cjs +6 -6
  65. package/dist/apis/message.js +1 -1
  66. package/dist/apis/metering.cjs +6 -6
  67. package/dist/apis/metering.js +1 -1
  68. package/dist/apis/notes.cjs +6 -6
  69. package/dist/apis/notes.js +1 -1
  70. package/dist/apis/notification.cjs +6 -6
  71. package/dist/apis/notification.js +1 -1
  72. package/dist/apis/organization.cjs +6 -6
  73. package/dist/apis/organization.js +1 -1
  74. package/dist/apis/partner-directory.cjs +6 -6
  75. package/dist/apis/partner-directory.js +1 -1
  76. package/dist/apis/permissions.cjs +6 -6
  77. package/dist/apis/permissions.js +1 -1
  78. package/dist/apis/pricing-tier.cjs +6 -6
  79. package/dist/apis/pricing-tier.js +1 -1
  80. package/dist/apis/pricing.cjs +6 -6
  81. package/dist/apis/pricing.js +1 -1
  82. package/dist/apis/purpose.cjs +6 -6
  83. package/dist/apis/purpose.js +1 -1
  84. package/dist/apis/query.cjs +6 -6
  85. package/dist/apis/query.js +1 -1
  86. package/dist/apis/sandbox.cjs +6 -6
  87. package/dist/apis/sandbox.js +1 -1
  88. package/dist/apis/sharing.cjs +6 -6
  89. package/dist/apis/sharing.js +1 -1
  90. package/dist/apis/submission.cjs +6 -6
  91. package/dist/apis/submission.js +1 -1
  92. package/dist/apis/target.cjs +6 -6
  93. package/dist/apis/target.js +1 -1
  94. package/dist/apis/targeting.cjs +6 -6
  95. package/dist/apis/targeting.js +1 -1
  96. package/dist/apis/template-variables.cjs +6 -6
  97. package/dist/apis/template-variables.js +1 -1
  98. package/dist/apis/user.cjs +6 -6
  99. package/dist/apis/user.js +1 -1
  100. package/dist/apis/validation-rules.cjs +6 -6
  101. package/dist/apis/validation-rules.js +1 -1
  102. package/dist/apis/webhooks.cjs +6 -6
  103. package/dist/apis/webhooks.js +1 -1
  104. package/dist/apis/workflow-definition.cjs +6 -6
  105. package/dist/apis/workflow-definition.js +1 -1
  106. package/dist/apis/workflow.cjs +6 -6
  107. package/dist/apis/workflow.js +1 -1
  108. package/dist/{chunk-ZCQVAPBA.js → chunk-PFWNKA6K.js} +1 -1
  109. package/dist/{chunk-NSIKAUXP.cjs → chunk-YSMN2QWQ.cjs} +1 -1
  110. package/dist/index.cjs +8 -8
  111. package/dist/index.d.cts +1 -1
  112. package/dist/index.d.ts +1 -1
  113. package/dist/index.js +1 -1
  114. package/dist/integration-toolkit-PGT2TTEZ.cjs +7 -0
  115. package/dist/integration-toolkit-RBGVNSUA.js +7 -0
  116. package/dist/{integration-toolkit.d-BstNqiJb.d.cts → integration-toolkit.d-CDcHwmoI.d.cts} +14 -0
  117. package/dist/{integration-toolkit.d-BstNqiJb.d.ts → integration-toolkit.d-CDcHwmoI.d.ts} +14 -0
  118. package/dist/js-yaml-DLCVPJ7G.js +0 -0
  119. package/docs/integration-toolkit.md +9 -2
  120. package/package.json +12 -11
  121. package/LICENSE +0 -21
  122. package/dist/integration-toolkit-3I3IPVFN.cjs +0 -7
  123. package/dist/integration-toolkit-XAFQXNQY.js +0 -7
@@ -0,0 +1,7 @@
1
+ import "./chunk-YPSWSI3M.js";
2
+
3
+ // src/docs/integration-toolkit.json
4
+ var integration_toolkit_default = '# Integration Toolkit API\n\n- **Base URL:** `https://integration-toolkit.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/integration-toolkit](https://docs.epilot.io/api/integration-toolkit)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.integrationToolkit.acknowledgeTracking(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/integration-toolkit\'\n\nconst integrationToolkitClient = getClient()\nauthorize(integrationToolkitClient, () => \'<token>\')\nconst { data } = await integrationToolkitClient.acknowledgeTracking(...)\n```\n\n## Operations\n\n**erp**\n- [`acknowledgeTracking`](#acknowledgetracking)\n- [`triggerErp`](#triggererp)\n- [`processErpUpdatesEventsV3`](#processerpupdateseventsv3)\n- [`simulateMappingV2`](#simulatemappingv2)\n- [`simulateMapping`](#simulatemapping)\n\n**integrations**\n- [`listIntegrations`](#listintegrations)\n- [`createIntegration`](#createintegration)\n- [`getIntegration`](#getintegration)\n- [`updateIntegration`](#updateintegration)\n- [`deleteIntegration`](#deleteintegration)\n- [`queryEvents`](#queryevents)\n- [`replayEvents`](#replayevents)\n- [`listUseCases`](#listusecases)\n- [`createUseCase`](#createusecase)\n- [`getUseCase`](#getusecase)\n- [`updateUseCase`](#updateusecase)\n- [`deleteUseCase`](#deleteusecase)\n- [`listUseCaseHistory`](#listusecasehistory)\n- [`listIntegrationsV2`](#listintegrationsv2)\n- [`createIntegrationV2`](#createintegrationv2)\n- [`getIntegrationV2`](#getintegrationv2)\n- [`updateIntegrationV2`](#updateintegrationv2)\n- [`deleteIntegrationV2`](#deleteintegrationv2)\n- [`getSecureProxyWhitelist`](#getsecureproxywhitelist)\n- [`updateSecureProxyWhitelist`](#updatesecureproxywhitelist)\n- [`listSecureProxyWhitelistHistory`](#listsecureproxywhitelisthistory)\n- [`setIntegrationAppMapping`](#setintegrationappmapping)\n- [`deleteIntegrationAppMapping`](#deleteintegrationappmapping)\n- [`getOutboundStatus`](#getoutboundstatus)\n- [`listSecureProxies`](#listsecureproxies)\n- [`generateTypesPreview`](#generatetypespreview)\n- [`generateTypes`](#generatetypes)\n- [`commitTypes`](#committypes)\n\n**monitoring**\n- [`queryInboundMonitoringEvents`](#queryinboundmonitoringevents)\n- [`getMonitoringStats`](#getmonitoringstats)\n- [`getMonitoringTimeSeries`](#getmonitoringtimeseries)\n- [`queryAccessLogs`](#queryaccesslogs)\n- [`queryOutboundMonitoringEvents`](#queryoutboundmonitoringevents)\n- [`queryMonitoringEventsV2`](#querymonitoringeventsv2)\n- [`getMonitoringStatsV2`](#getmonitoringstatsv2)\n- [`getMonitoringTimeSeriesV2`](#getmonitoringtimeseriesv2)\n- [`getAssociatedMonitoringEvents`](#getassociatedmonitoringevents)\n\n**proxy**\n- [`secureProxy`](#secureproxy)\n\n**managed-call**\n- [`managedCallExecute`](#managedcallexecute)\n\n**Schemas**\n- [`ErrorResponseBase`](#errorresponsebase)\n- [`ErpEvent`](#erpevent)\n- [`ErpUpdatesEventsV2Request`](#erpupdateseventsv2request)\n- [`ErpEventV3`](#erpeventv3)\n- [`ErpUpdatesEventsV3Request`](#erpupdateseventsv3request)\n- [`TriggerErpActionRequest`](#triggererpactionrequest)\n- [`TriggerWebhookResp`](#triggerwebhookresp)\n- [`IntegrationEditableFields`](#integrationeditablefields)\n- [`ConnectorConfig`](#connectorconfig)\n- [`ManagedCallAuth`](#managedcallauth)\n- [`Integration`](#integration)\n- [`CreateIntegrationRequest`](#createintegrationrequest)\n- [`UpdateIntegrationRequest`](#updateintegrationrequest)\n- [`EnvironmentFieldConfig`](#environmentfieldconfig)\n- [`IntegrationSettings`](#integrationsettings)\n- [`AutoRefreshSettings`](#autorefreshsettings)\n- [`SetIntegrationAppMappingRequest`](#setintegrationappmappingrequest)\n- [`DeleteIntegrationAppMappingRequest`](#deleteintegrationappmappingrequest)\n- [`IntegrationAppMapping`](#integrationappmapping)\n- [`IntegrationWithUseCases`](#integrationwithusecases)\n- [`UpsertIntegrationWithUseCasesRequest`](#upsertintegrationwithusecasesrequest)\n- [`InboundIntegrationEventConfiguration`](#inboundintegrationeventconfiguration)\n- [`OutboundIntegrationEventConfiguration`](#outboundintegrationeventconfiguration)\n- [`IntegrationEntity`](#integrationentity)\n- [`IntegrationMeterReading`](#integrationmeterreading)\n- [`PruneScopeConfig`](#prunescopeconfig)\n- [`MeterReadingPruneScopeConfig`](#meterreadingprunescopeconfig)\n- [`MeterUniqueIdsConfig`](#meteruniqueidsconfig)\n- [`IntegrationEntityField`](#integrationentityfield)\n- [`FileProxyUrlParam`](#fileproxyurlparam)\n- [`FileProxyUrlParams`](#fileproxyurlparams)\n- [`FileProxyUrlConfig`](#fileproxyurlconfig)\n- [`PortalOrigin`](#portalorigin)\n- [`PortalRefFilter`](#portalreffilter)\n- [`PortalRefConfig`](#portalrefconfig)\n- [`EnvVarRefConfig`](#envvarrefconfig)\n- [`EmbeddedUseCaseRequest`](#embeddedusecaserequest)\n- [`EmbeddedUseCaseRequestBase`](#embeddedusecaserequestbase)\n- [`EmbeddedInboundUseCaseRequest`](#embeddedinboundusecaserequest)\n- [`EmbeddedOutboundUseCaseRequest`](#embeddedoutboundusecaserequest)\n- [`EmbeddedFileProxyUseCaseRequest`](#embeddedfileproxyusecaserequest)\n- [`EmbeddedManagedCallUseCaseRequest`](#embeddedmanagedcallusecaserequest)\n- [`EmbeddedSecureProxyUseCaseRequest`](#embeddedsecureproxyusecaserequest)\n- [`UseCaseBase`](#usecasebase)\n- [`InboundUseCase`](#inboundusecase)\n- [`OutboundUseCase`](#outboundusecase)\n- [`FileProxyUseCase`](#fileproxyusecase)\n- [`ManagedCallUseCase`](#managedcallusecase)\n- [`SecureProxyUseCase`](#secureproxyusecase)\n- [`UseCase`](#usecase)\n- [`CreateUseCaseRequest`](#createusecaserequest)\n- [`CreateUseCaseRequestBase`](#createusecaserequestbase)\n- [`CreateInboundUseCaseRequest`](#createinboundusecaserequest)\n- [`CreateOutboundUseCaseRequest`](#createoutboundusecaserequest)\n- [`CreateFileProxyUseCaseRequest`](#createfileproxyusecaserequest)\n- [`CreateManagedCallUseCaseRequest`](#createmanagedcallusecaserequest)\n- [`CreateSecureProxyUseCaseRequest`](#createsecureproxyusecaserequest)\n- [`UpdateUseCaseRequest`](#updateusecaserequest)\n- [`UpdateUseCaseRequestBase`](#updateusecaserequestbase)\n- [`UpdateInboundUseCaseRequest`](#updateinboundusecaserequest)\n- [`UpdateOutboundUseCaseRequest`](#updateoutboundusecaserequest)\n- [`UpdateFileProxyUseCaseRequest`](#updatefileproxyusecaserequest)\n- [`UpdateManagedCallUseCaseRequest`](#updatemanagedcallusecaserequest)\n- [`UpdateSecureProxyUseCaseRequest`](#updatesecureproxyusecaserequest)\n- [`UseCaseHistoryEntry`](#usecasehistoryentry)\n- [`UseCaseHistoryEntryBase`](#usecasehistoryentrybase)\n- [`InboundUseCaseHistoryEntry`](#inboundusecasehistoryentry)\n- [`OutboundUseCaseHistoryEntry`](#outboundusecasehistoryentry)\n- [`FileProxyUseCaseHistoryEntry`](#fileproxyusecasehistoryentry)\n- [`ManagedCallUseCaseHistoryEntry`](#managedcallusecasehistoryentry)\n- [`SecureProxyUseCaseHistoryEntry`](#secureproxyusecasehistoryentry)\n- [`SecureProxyUseCaseConfiguration`](#secureproxyusecaseconfiguration)\n- [`SecureProxyWhitelist`](#secureproxywhitelist)\n- [`SecureProxyWhitelistUpdate`](#secureproxywhitelistupdate)\n- [`SecureProxySummary`](#secureproxysummary)\n- [`SecureProxyRequest`](#secureproxyrequest)\n- [`SecureProxyResponse`](#secureproxyresponse)\n- [`ManagedCallOperationConfig`](#managedcalloperationconfig)\n- [`ManagedCallOperation`](#managedcalloperation)\n- [`ManagedCallExecuteRequest`](#managedcallexecuterequest)\n- [`ManagedCallExecuteResponse`](#managedcallexecuteresponse)\n- [`ManagedCallErrorResponse`](#managedcallerrorresponse)\n- [`TypeAnnotations`](#typeannotations)\n- [`TypeDescriptor`](#typedescriptor)\n- [`UseCaseTypePreview`](#usecasetypepreview)\n- [`GenerateTypesPreviewResponse`](#generatetypespreviewresponse)\n- [`GenerateTypesRequest`](#generatetypesrequest)\n- [`GenerateTypesResponse`](#generatetypesresponse)\n- [`CommitTypesRequest`](#committypesrequest)\n- [`CommitTypesResponse`](#committypesresponse)\n- [`FileProxyUseCaseConfiguration`](#fileproxyusecaseconfiguration)\n- [`FileProxySecureProxyAttachment`](#fileproxysecureproxyattachment)\n- [`FileProxyAuth`](#fileproxyauth)\n- [`FileProxyParam`](#fileproxyparam)\n- [`FileProxyStep`](#fileproxystep)\n- [`FileProxyResponseConfig`](#fileproxyresponseconfig)\n- [`MappingSimulationRequest`](#mappingsimulationrequest)\n- [`MappingSimulationV2Request`](#mappingsimulationv2request)\n- [`MappingSimulationResponse`](#mappingsimulationresponse)\n- [`MappingSimulationWarning`](#mappingsimulationwarning)\n- [`EntityUpdate`](#entityupdate)\n- [`MeterReadingUpdate`](#meterreadingupdate)\n- [`IntegrationConfigurationV1`](#integrationconfigurationv1)\n- [`IntegrationObjectV1`](#integrationobjectv1)\n- [`IntegrationFieldV1`](#integrationfieldv1)\n- [`IntegrationConfigurationV2`](#integrationconfigurationv2)\n- [`OutboundMapping`](#outboundmapping)\n- [`DeliveryConfig`](#deliveryconfig)\n- [`OutboundStatusResponse`](#outboundstatusresponse)\n- [`OutboundUseCaseStatus`](#outboundusecasestatus)\n- [`WebhookStatus`](#webhookstatus)\n- [`OutboundConflict`](#outboundconflict)\n- [`RelationConfig`](#relationconfig)\n- [`RelationItemConfig`](#relationitemconfig)\n- [`RelationUniqueIdField`](#relationuniqueidfield)\n- [`RelationRefsConfig`](#relationrefsconfig)\n- [`RelationRefItemConfig`](#relationrefitemconfig)\n- [`RelationRefValueConfig`](#relationrefvalueconfig)\n- [`RepeatableFieldType`](#repeatablefieldtype)\n- [`ReplayEventsRequest`](#replayeventsrequest)\n- [`QueryEventsRequest`](#queryeventsrequest)\n- [`QueryInboundMonitoringEventsRequest`](#queryinboundmonitoringeventsrequest)\n- [`QueryAccessLogsRequest`](#queryaccesslogsrequest)\n- [`AccessLogEntry`](#accesslogentry)\n- [`GetMonitoringStatsRequest`](#getmonitoringstatsrequest)\n- [`GetMonitoringTimeSeriesRequest`](#getmonitoringtimeseriesrequest)\n- [`TimeSeriesBucket`](#timeseriesbucket)\n- [`QueryOutboundMonitoringEventsRequest`](#queryoutboundmonitoringeventsrequest)\n- [`OutboundMonitoringEvent`](#outboundmonitoringevent)\n- [`MonitoringStats`](#monitoringstats)\n- [`InboundMonitoringEvent`](#inboundmonitoringevent)\n- [`QueryMonitoringEventsV2Request`](#querymonitoringeventsv2request)\n- [`MonitoringEventV2`](#monitoringeventv2)\n- [`GetMonitoringStatsV2Request`](#getmonitoringstatsv2request)\n- [`MonitoringStatsV2`](#monitoringstatsv2)\n- [`GetMonitoringTimeSeriesV2Request`](#getmonitoringtimeseriesv2request)\n- [`TimeSeriesBreakdownItemV2`](#timeseriesbreakdownitemv2)\n- [`TimeSeriesBucketV2`](#timeseriesbucketv2)\n\n### `acknowledgeTracking`\n\nAcknowledges an ERP tracking record by removing it from the tracking table, requires public authentication\n\n`POST /v1/erp/tracking/acknowledgement`\n\n```ts\nconst { data } = await client.acknowledgeTracking(\n null,\n {\n ack_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `triggerErp`\n\nTriggers the ERP integration process\n\n`POST /v1/erp/trigger`\n\n```ts\nconst { data } = await client.triggerErp(\n null,\n {\n execution_id: \'string\',\n org_id: \'string\',\n webhook_id: \'string\',\n flow_id: \'string\',\n created_at: \'1970-01-01T00:00:00.000Z\',\n action_id: \'string\',\n flow_action_id: \'string\',\n flow_name: \'string\',\n activity_id: \'string\',\n entity_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status_code": "string",\n "message": "string",\n "body": {},\n "code": "string",\n "status": "succeeded",\n "start_date": "string",\n "end_date": "string",\n "event_id": "string"\n}\n```\n\n</details>\n\n---\n\n### `processErpUpdatesEventsV3`\n\nHandles updates from ERP systems using integration_id directly.\nThis is the v3 version that removes the unused event_type field and renames object_type to event_name\nto align with the integration UI n\n\n`POST /v3/erp/updates/events`\n\n```ts\nconst { data } = await client.processErpUpdatesEventsV3(\n null,\n {\n integration_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n correlation_id: \'string\',\n group_id: \'customer-42\',\n events: [\n {},\n {}\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "event_id": "string",\n "status": "success",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `simulateMappingV2`\n\nTest v2.0 mapping configuration by transforming a payload using the provided mapping rules without persisting data.\n\n`POST /v2/erp/updates/mapping_simulation`\n\n```ts\nconst { data } = await client.simulateMappingV2(\n null,\n {\n event_configuration: {\n entities: [\n { /* ... */ }\n ],\n meter_readings: [\n { /* ... */ }\n ]\n },\n format: \'json\',\n payload: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_updates": [\n {\n "entity_slug": "string",\n "unique_identifiers": {},\n "attributes": {}\n }\n ],\n "meter_readings_updates": [\n {\n "meter": {\n "$entity_unique_ids": {}\n },\n "meter_counter": {\n "$entity_unique_ids": {}\n },\n "attributes": {}\n }\n ],\n "warnings": [\n {\n "entity_schema": "string",\n "field": "string",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `simulateMapping`\n\nTest mapping configuration by transforming a payload using the provided mapping rules without persisting data.\n\n`POST /v1/erp/updates/mapping_simulation`\n\n```ts\nconst { data } = await client.simulateMapping(\n null,\n {\n mapping_configuration: {\n version: \'1.0\',\n mapping: {\n objects: {}\n }\n },\n object_type: \'string\',\n format: \'json\',\n payload: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_updates": [\n {\n "entity_slug": "string",\n "unique_identifiers": {},\n "attributes": {}\n }\n ],\n "meter_readings_updates": [\n {\n "meter": {\n "$entity_unique_ids": {}\n },\n "meter_counter": {\n "$entity_unique_ids": {}\n },\n "attributes": {}\n }\n ],\n "warnings": [\n {\n "entity_schema": "string",\n "field": "string",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listIntegrations`\n\nRetrieve all integrations for the authenticated organization\n\n`GET /v1/integrations`\n\n```ts\nconst { data } = await client.listIntegrations()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "integrations": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "integration_type": "erp",\n "connector_config": {\n "base_url": "string",\n "auth": {\n "type": "oauth2_client_credentials",\n "token_url": "string",\n "client_id": "string",\n "client_secret": "string",\n "scope": "string",\n "audience": "string",\n "resource": "string",\n "body_params": {},\n "headers": {},\n "query_params": {},\n "api_key_header": "string",\n "api_key": "string",\n "token": "string"\n },\n "types_versions": [\n {\n "version": "string",\n "package_name": "string",\n "generated_at": "1970-01-01T00:00:00.000Z",\n "generated_by": "string",\n "status": "active"\n }\n ],\n "latest_types_version": "string",\n "latest_types_package_name": "string"\n },\n "protected": true,\n "_manifest": ["string"]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createIntegration`\n\nCreate a new integration configuration\n\n`POST /v1/integrations`\n\n```ts\nconst { data } = await client.createIntegration(\n null,\n {\n name: \'string\',\n description: \'string\',\n access_token_ids: [\'string\'],\n app_ids: [\'string\'],\n environment_config: [\n {\n key: \'string\',\n label: \'string\',\n type: \'String\',\n description: \'string\',\n required: false,\n order: 0\n }\n ],\n settings: {\n autoRefresh: {\n enabled: false,\n freshnessThresholdMinutes: 1\n }\n },\n integration_type: \'erp\',\n connector_config: {\n base_url: \'string\',\n auth: {\n type: \'oauth2_client_credentials\',\n token_url: \'string\',\n client_id: \'string\',\n client_secret: \'string\',\n scope: \'string\',\n audience: \'string\',\n resource: \'string\',\n body_params: {},\n headers: {},\n query_params: {},\n api_key_header: \'string\',\n api_key: \'string\',\n token: \'string\'\n },\n types_versions: [\n {\n version: \'string\',\n package_name: \'string\',\n generated_at: \'1970-01-01T00:00:00.000Z\',\n generated_by: \'string\',\n status: \'active\'\n }\n ],\n latest_types_version: \'string\',\n latest_types_package_name: \'string\'\n },\n protected: true,\n _manifest: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "integration_type": "erp",\n "connector_config": {\n "base_url": "string",\n "auth": {\n "type": "oauth2_client_credentials",\n "token_url": "string",\n "client_id": "string",\n "client_secret": "string",\n "scope": "string",\n "audience": "string",\n "resource": "string",\n "body_params": {},\n "headers": {},\n "query_params": {},\n "api_key_header": "string",\n "api_key": "string",\n "token": "string"\n },\n "types_versions": [\n {\n "version": "string",\n "package_name": "string",\n "generated_at": "1970-01-01T00:00:00.000Z",\n "generated_by": "string",\n "status": "active"\n }\n ],\n "latest_types_version": "string",\n "latest_types_package_name": "string"\n },\n "protected": true,\n "_manifest": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `getIntegration`\n\nRetrieve a specific integration by its ID\n\n`GET /v1/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.getIntegration({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "integration_type": "erp",\n "connector_config": {\n "base_url": "string",\n "auth": {\n "type": "oauth2_client_credentials",\n "token_url": "string",\n "client_id": "string",\n "client_secret": "string",\n "scope": "string",\n "audience": "string",\n "resource": "string",\n "body_params": {},\n "headers": {},\n "query_params": {},\n "api_key_header": "string",\n "api_key": "string",\n "token": "string"\n },\n "types_versions": [\n {\n "version": "string",\n "package_name": "string",\n "generated_at": "1970-01-01T00:00:00.000Z",\n "generated_by": "string",\n "status": "active"\n }\n ],\n "latest_types_version": "string",\n "latest_types_package_name": "string"\n },\n "protected": true,\n "_manifest": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `updateIntegration`\n\nUpdate an existing integration configuration\n\n`PUT /v1/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.updateIntegration(\n {\n integrationId: \'example\',\n },\n {},\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "integration_type": "erp",\n "connector_config": {\n "base_url": "string",\n "auth": {\n "type": "oauth2_client_credentials",\n "token_url": "string",\n "client_id": "string",\n "client_secret": "string",\n "scope": "string",\n "audience": "string",\n "resource": "string",\n "body_params": {},\n "headers": {},\n "query_params": {},\n "api_key_header": "string",\n "api_key": "string",\n "token": "string"\n },\n "types_versions": [\n {\n "version": "string",\n "package_name": "string",\n "generated_at": "1970-01-01T00:00:00.000Z",\n "generated_by": "string",\n "status": "active"\n }\n ],\n "latest_types_version": "string",\n "latest_types_package_name": "string"\n },\n "protected": true,\n "_manifest": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `deleteIntegration`\n\nDelete an integration and all its use cases\n\n`DELETE /v1/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.deleteIntegration({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `queryEvents`\n\nQuery events for a specific integration\n\n`POST /v1/integrations/{integrationId}/events`\n\n```ts\nconst { data } = await client.queryEvents(\n {\n integrationId: \'example\',\n },\n {\n event_id: \'string\',\n event_type: \'CREATE\',\n correlation_id: \'string\',\n object_type: \'string\',\n event_name: \'string\',\n use_case_id: \'string\',\n limit: 25,\n cursor: {\n event_time: \'2025-10-31T12:34:56Z\',\n event_id: \'evt_1234567890abcdef\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "event_type": "CREATE",\n "object_type": "string",\n "timestamp": "1970-01-01T00:00:00.000Z",\n "format": "json",\n "payload": "string",\n "deduplication_id": "evt-2025-05-01-12345-create-bp",\n "use_case_id": "string"\n }\n ],\n "next_cursor": {\n "event_time": "2025-10-31T12:34:56Z",\n "event_id": "evt_1234567890abcdef"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `replayEvents`\n\nReplay one or more events for a specific integration. Events will be re-processed with their original payloads but with a new correlation ID for traceability.\n\n`POST /v1/integrations/{integrationId}/events/replay`\n\n```ts\nconst { data } = await client.replayEvents(\n {\n integrationId: \'example\',\n },\n {\n event_ids: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_ids": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `listUseCases`\n\nRetrieve all use cases for a specific integration\n\n`GET /v1/integrations/{integrationId}/use-cases`\n\n```ts\nconst { data } = await client.listUseCases({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createUseCase`\n\nCreate a new use case for an integration\n\n`POST /v1/integrations/{integrationId}/use-cases`\n\n```ts\nconst { data } = await client.createUseCase(\n {\n integrationId: \'example\',\n },\n {\n name: \'string\',\n slug: \'string\',\n enabled: true,\n type: \'inbound\',\n configuration: {\n entities: [\n { /* ... */ }\n ],\n meter_readings: [\n { /* ... */ }\n ]\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {\n "entities": [\n {}\n ],\n "meter_readings": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `getUseCase`\n\nRetrieve a specific use case by its ID\n\n`GET /v1/integrations/{integrationId}/use-cases/{useCaseId}`\n\n```ts\nconst { data } = await client.getUseCase({\n integrationId: \'example\',\n useCaseId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {\n "entities": [\n {}\n ],\n "meter_readings": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `updateUseCase`\n\nUpdate an existing use case configuration\n\n`PUT /v1/integrations/{integrationId}/use-cases/{useCaseId}`\n\n```ts\nconst { data } = await client.updateUseCase(\n {\n integrationId: \'example\',\n useCaseId: \'example\',\n },\n {\n name: \'string\',\n slug: \'string\',\n enabled: true,\n change_description: \'string\',\n type: \'inbound\',\n configuration: {\n entities: [\n { /* ... */ }\n ],\n meter_readings: [\n { /* ... */ }\n ]\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {\n "entities": [\n {}\n ],\n "meter_readings": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `deleteUseCase`\n\nDelete a use case from an integration\n\n`DELETE /v1/integrations/{integrationId}/use-cases/{useCaseId}`\n\n```ts\nconst { data } = await client.deleteUseCase({\n integrationId: \'example\',\n useCaseId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `listUseCaseHistory`\n\nRetrieve historical versions of a use case\'s configuration.\nHistory entries are returned in reverse chronological order (newest first).\nUse the \'cursor\' parameter for pagination to fetch additional en\n\n`GET /v1/integrations/{integrationId}/use-cases/{useCaseId}/history`\n\n```ts\nconst { data } = await client.listUseCaseHistory({\n integrationId: \'example\',\n useCaseId: \'example\',\n cursor: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "history": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "useCaseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "enabled": true,\n "change_description": "string",\n "changed_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "history_created_at": "1970-01-01T00:00:00.000Z",\n "type": "inbound",\n "configuration": {}\n }\n ],\n "next_cursor": "string"\n}\n```\n\n</details>\n\n---\n\n### `listIntegrationsV2`\n\nRetrieve all integrations with embedded use cases for the authenticated organization\n\n`GET /v2/integrations`\n\n```ts\nconst { data } = await client.listIntegrationsV2()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "integrations": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [],\n "settings": {},\n "integration_type": "erp",\n "connector_config": {},\n "protected": true,\n "_manifest": ["string"],\n "use_cases": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createIntegrationV2`\n\nCreate a new integration with embedded use cases.\n\n`POST /v2/integrations`\n\n```ts\nconst { data } = await client.createIntegrationV2(\n null,\n {\n name: \'string\',\n description: \'string\',\n access_token_ids: [\'string\'],\n app_ids: [\'string\'],\n environment_config: [\n {\n key: \'string\',\n label: \'string\',\n type: \'String\',\n description: \'string\',\n required: false,\n order: 0\n }\n ],\n settings: {\n autoRefresh: {\n enabled: false,\n freshnessThresholdMinutes: 1\n }\n },\n integration_type: \'erp\',\n connector_config: {\n base_url: \'string\',\n auth: {\n type: \'oauth2_client_credentials\',\n token_url: \'string\',\n client_id: \'string\',\n client_secret: \'string\',\n scope: \'string\',\n audience: \'string\',\n resource: \'string\',\n body_params: {},\n headers: {},\n query_params: {},\n api_key_header: \'string\',\n api_key: \'string\',\n token: \'string\'\n },\n types_versions: [\n { /* ... */ }\n ],\n latest_types_version: \'string\',\n latest_types_package_name: \'string\'\n },\n protected: true,\n _manifest: [\'string\'],\n use_cases: [\n {\n id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n name: \'string\',\n slug: \'string\',\n enabled: true,\n change_description: \'string\',\n type: \'inbound\',\n configuration: { /* ... */ }\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "integration_type": "erp",\n "connector_config": {\n "base_url": "string",\n "auth": {\n "type": "oauth2_client_credentials",\n "token_url": "string",\n "client_id": "string",\n "client_secret": "string",\n "scope": "string",\n "audience": "string",\n "resource": "string",\n "body_params": {},\n "headers": {},\n "query_params": {},\n "api_key_header": "string",\n "api_key": "string",\n "token": "string"\n },\n "types_versions": [\n {}\n ],\n "latest_types_version": "string",\n "latest_types_package_name": "string"\n },\n "protected": true,\n "_manifest": ["string"],\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getIntegrationV2`\n\nRetrieve a specific integration with all its embedded use cases\n\n`GET /v2/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.getIntegrationV2({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "integration_type": "erp",\n "connector_config": {\n "base_url": "string",\n "auth": {\n "type": "oauth2_client_credentials",\n "token_url": "string",\n "client_id": "string",\n "client_secret": "string",\n "scope": "string",\n "audience": "string",\n "resource": "string",\n "body_params": {},\n "headers": {},\n "query_params": {},\n "api_key_header": "string",\n "api_key": "string",\n "token": "string"\n },\n "types_versions": [\n {}\n ],\n "latest_types_version": "string",\n "latest_types_package_name": "string"\n },\n "protected": true,\n "_manifest": ["string"],\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `updateIntegrationV2`\n\nUpdate an existing integration with embedded use cases.\nThe integration must already exist.\nUse cases are updated declaratively:\n- Use cases in the request with matching IDs are updated\n- Use cases in\n\n`PUT /v2/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.updateIntegrationV2(\n {\n integrationId: \'example\',\n },\n {\n name: \'string\',\n description: \'string\',\n access_token_ids: [\'string\'],\n app_ids: [\'string\'],\n environment_config: [\n {\n key: \'string\',\n label: \'string\',\n type: \'String\',\n description: \'string\',\n required: false,\n order: 0\n }\n ],\n settings: {\n autoRefresh: {\n enabled: false,\n freshnessThresholdMinutes: 1\n }\n },\n integration_type: \'erp\',\n connector_config: {\n base_url: \'string\',\n auth: {\n type: \'oauth2_client_credentials\',\n token_url: \'string\',\n client_id: \'string\',\n client_secret: \'string\',\n scope: \'string\',\n audience: \'string\',\n resource: \'string\',\n body_params: {},\n headers: {},\n query_params: {},\n api_key_header: \'string\',\n api_key: \'string\',\n token: \'string\'\n },\n types_versions: [\n { /* ... */ }\n ],\n latest_types_version: \'string\',\n latest_types_package_name: \'string\'\n },\n protected: true,\n _manifest: [\'string\'],\n use_cases: [\n {\n id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n name: \'string\',\n slug: \'string\',\n enabled: true,\n change_description: \'string\',\n type: \'inbound\',\n configuration: { /* ... */ }\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "orgId": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "name": "string",\n "description": "string",\n "access_token_ids": ["string"],\n "app_ids": ["string"],\n "environment_config": [\n {\n "key": "string",\n "label": "string",\n "type": "String",\n "description": "string",\n "required": false,\n "order": 0\n }\n ],\n "settings": {\n "autoRefresh": {\n "enabled": false,\n "freshnessThresholdMinutes": 1\n }\n },\n "integration_type": "erp",\n "connector_config": {\n "base_url": "string",\n "auth": {\n "type": "oauth2_client_credentials",\n "token_url": "string",\n "client_id": "string",\n "client_secret": "string",\n "scope": "string",\n "audience": "string",\n "resource": "string",\n "body_params": {},\n "headers": {},\n "query_params": {},\n "api_key_header": "string",\n "api_key": "string",\n "token": "string"\n },\n "types_versions": [\n {}\n ],\n "latest_types_version": "string",\n "latest_types_package_name": "string"\n },\n "protected": true,\n "_manifest": ["string"],\n "use_cases": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "type": "inbound",\n "enabled": true,\n "change_description": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "configuration": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `deleteIntegrationV2`\n\nDelete an integration and all its use cases\n\n`DELETE /v2/integrations/{integrationId}`\n\n```ts\nconst { data } = await client.deleteIntegrationV2({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `getSecureProxyWhitelist`\n\nGet secure_proxy whitelist (admin portal only)\n\n`GET /v2/integrations/{integrationId}/use-cases/{useCaseId}/secure-proxy-whitelist`\n\n```ts\nconst { data } = await client.getSecureProxyWhitelist({\n integrationId: \'example\',\n useCaseId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "vpc_mode": "static_ip",\n "allowed_domains": ["string"],\n "allowed_ips": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `updateSecureProxyWhitelist`\n\nUpdate secure_proxy whitelist (admin portal only)\n\n`PUT /v2/integrations/{integrationId}/use-cases/{useCaseId}/secure-proxy-whitelist`\n\n```ts\nconst { data } = await client.updateSecureProxyWhitelist(\n {\n integrationId: \'example\',\n useCaseId: \'example\',\n },\n {\n allowed_domains: [\'string\'],\n allowed_ips: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "vpc_mode": "static_ip",\n "allowed_domains": ["string"],\n "allowed_ips": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `listSecureProxyWhitelistHistory`\n\nList secure_proxy whitelist change history (admin portal only)\n\n`GET /v2/integrations/{integrationId}/use-cases/{useCaseId}/secure-proxy-whitelist/history`\n\n```ts\nconst { data } = await client.listSecureProxyWhitelistHistory({\n integrationId: \'example\',\n useCaseId: \'example\',\n limit: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "history": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "useCaseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "enabled": true,\n "change_description": "string",\n "changed_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "history_created_at": "1970-01-01T00:00:00.000Z",\n "type": "secure_proxy",\n "configuration": {\n "vpc_mode": "static_ip",\n "allowed_domains": ["string"],\n "allowed_ips": ["string"]\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `setIntegrationAppMapping`\n\nCreates or updates a mapping from an app/component to an integration.\nThis allows ERP updates sent via app_id and component_id to be associated\nwith a specific integration configuration.\n\n`PUT /v1/integrations/{integrationId}/app-mapping`\n\n```ts\nconst { data } = await client.setIntegrationAppMapping(\n {\n integrationId: \'example\',\n },\n {\n app_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n component_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n overwrite: false\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "integration_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"\n}\n```\n\n</details>\n\n---\n\n### `deleteIntegrationAppMapping`\n\nRemoves a mapping from an app/component to an integration.\n\n`DELETE /v1/integrations/{integrationId}/app-mapping`\n\n```ts\nconst { data } = await client.deleteIntegrationAppMapping(\n {\n integrationId: \'example\',\n },\n {\n app_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n component_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string"\n}\n```\n\n</details>\n\n---\n\n### `queryInboundMonitoringEvents`\n\nQuery inbound monitoring events for a specific integration.\nReturns detailed information about inbound sync events from ERP systems,\nincluding success rates, error breakdowns, and processing metrics.\n\n`POST /v1/integrations/{integrationId}/monitoring/inbound-events`\n\n```ts\nconst { data } = await client.queryInboundMonitoringEvents(\n {\n integrationId: \'example\',\n },\n {\n use_case_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n event_type: \'CREATE\',\n sync_type: \'entity\',\n status: \'success\',\n error_category: \'validation\',\n correlation_id: \'string\',\n object_type: \'string\',\n event_name: \'string\',\n event_id: \'string\',\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n limit: 50,\n cursor: {\n completed_at: \'1970-01-01T00:00:00.000Z\',\n event_id: \'string\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "org_id": "string",\n "event_id": "string",\n "correlation_id": "string",\n "integration_id": "string",\n "use_case_id": "string",\n "event_type": "CREATE",\n "object_type": "string",\n "sync_type": "entity",\n "status": "success",\n "error_code": "string",\n "error_message": "string",\n "error_category": "validation",\n "processing_duration_ms": 0,\n "received_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": {\n "completed_at": "1970-01-01T00:00:00.000Z",\n "event_id": "string"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `getMonitoringStats`\n\nGet aggregated statistics for both inbound and outbound monitoring events for a specific integration.\nReturns summary metrics for inbound (ERP sync) and outbound (webhook delivery) events,\nincluding s\n\n`POST /v1/integrations/{integrationId}/monitoring/stats`\n\n```ts\nconst { data } = await client.getMonitoringStats(\n {\n integrationId: \'example\',\n },\n {\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n inbound_group_by: [\'use_case_id\', \'status\'],\n outbound_group_by: [\'event_name\', \'status\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "inbound": {\n "total_events": 0,\n "total_correlations": 0,\n "success_count": 0,\n "error_count": 0,\n "skipped_count": 0,\n "warning_count": 0,\n "success_rate": 0,\n "last_error_at": "1970-01-01T00:00:00.000Z",\n "breakdown": [\n {}\n ]\n },\n "outbound": {\n "total_events": 0,\n "success_count": 0,\n "error_count": 0,\n "pending_count": 0,\n "success_rate": 0,\n "last_error_at": "1970-01-01T00:00:00.000Z",\n "breakdown": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `getMonitoringTimeSeries`\n\nGet time-series aggregated event counts for monitoring charts.\nReturns pre-bucketed counts at configurable intervals for both inbound and outbound events.\nMaximum of 200 buckets per request. Returns 4\n\n`POST /v1/integrations/{integrationId}/monitoring/timeseries`\n\n```ts\nconst { data } = await client.getMonitoringTimeSeries(\n {\n integrationId: \'example\',\n },\n {\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n interval: \'1h\',\n direction: \'both\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "interval": "5m",\n "from_date": "1970-01-01T00:00:00.000Z",\n "to_date": "1970-01-01T00:00:00.000Z",\n "buckets": [\n {\n "timestamp": "1970-01-01T00:00:00.000Z",\n "inbound": {\n "success_count": 0,\n "error_count": 0,\n "warning_count": 0,\n "skipped_count": 0,\n "total_count": 0\n },\n "outbound": {\n "success_count": 0,\n "error_count": 0,\n "pending_count": 0,\n "total_count": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getOutboundStatus`\n\nGet the status of all outbound use cases for a specific integration.\nReturns conflict information when events or webhooks are disabled but the use case is enabled.\n\n`GET /v1/integrations/{integrationId}/outbound-status`\n\n```ts\nconst { data } = await client.getOutboundStatus({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "useCases": [\n {\n "useCaseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "useCaseEnabled": true,\n "eventCatalogEvent": "contract.created",\n "eventEnabled": true,\n "webhooks": [\n {\n "webhookId": "string",\n "webhookName": "string",\n "enabled": true\n }\n ],\n "status": "ok",\n "conflicts": [\n {\n "type": "event_disabled",\n "webhookId": "string",\n "message": "string"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `queryAccessLogs`\n\nQuery API access logs for a specific integration\'s organization.\nReturns access token usage analytics filtered by user_id (access token).\nSupports infinite scroll pagination with cursor-based navigati\n\n`POST /v1/integrations/{integrationId}/monitoring/access-logs`\n\n```ts\nconst { data } = await client.queryAccessLogs(\n {\n integrationId: \'example\',\n },\n {\n token_id: \'api_5ZugdRXasLfWBypHi93Fk\',\n service: \'entity\',\n method: \'GET\',\n path: \'/v1/entity\',\n status: 200,\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n limit: 50,\n cursor: {\n timestamp: \'1970-01-01T00:00:00.000Z\',\n request_id: \'string\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "timestamp": "1970-01-01T00:00:00.000Z",\n "environment": "string",\n "service": "string",\n "request_id": "string",\n "method": "string",\n "path": "string",\n "status": 0,\n "response_latency_ms": 0,\n "response_length": 0,\n "token_id": "string",\n "org_id": "string",\n "origin": "string",\n "source_ip": "string"\n }\n ],\n "next_cursor": {\n "timestamp": "1970-01-01T00:00:00.000Z",\n "request_id": "string"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `queryOutboundMonitoringEvents`\n\nQuery outbound monitoring events for a specific integration.\nReturns detailed information about outbound event deliveries,\nfiltered by event_name (event_catalog_event) linked to the integration\'s outb\n\n`POST /v1/integrations/{integrationId}/monitoring/outbound-events`\n\n```ts\nconst { data } = await client.queryOutboundMonitoringEvents(\n {\n integrationId: \'example\',\n },\n {\n event_name: \'automation_flow_target\',\n status: \'succeeded\',\n webhook_config_id: \'string\',\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n limit: 50,\n cursor: {\n created_at: \'1970-01-01T00:00:00.000Z\',\n event_id: \'string\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "org_id": "string",\n "event_id": "string",\n "event_name": "string",\n "status": "succeeded",\n "url": "string",\n "http_method": "string",\n "http_response": {},\n "webhook_config_id": "string",\n "metadata": {},\n "execution_context": {},\n "payload": {},\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": {\n "created_at": "1970-01-01T00:00:00.000Z",\n "event_id": "string"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `queryMonitoringEventsV2`\n\nQuery monitoring events from the unified erp_monitoring_v2 table.\nReturns all event types (inbound, outbound, file_proxy, etc.) in a single list.\nReplaces the separate v1 inbound-events and outbound-e\n\n`POST /v2/integrations/{integrationId}/monitoring/events`\n\n```ts\nconst { data } = await client.queryMonitoringEventsV2(\n {\n integrationId: \'example\',\n },\n {\n use_case_id: \'string\',\n use_case_type: \'inbound\',\n level: \'success\',\n code: \'string\',\n event_id: \'string\',\n correlation_id: \'string\',\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n limit: 50,\n cursor: {\n created_at: \'1970-01-01T00:00:00.000Z\',\n id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "data": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "org_id": "string",\n "integration_id": "string",\n "event_id": "string",\n "correlation_id": "string",\n "use_case_id": "string",\n "use_case_type": "inbound",\n "level": "success",\n "code": "string",\n "message": "string",\n "detail": {},\n "created_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": {\n "created_at": "1970-01-01T00:00:00.000Z",\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"\n },\n "has_more": true\n}\n```\n\n</details>\n\n---\n\n### `getMonitoringStatsV2`\n\nGet aggregated statistics from the unified erp_monitoring_v2 table.\nReturns combined metrics for all event types with optional breakdowns.\n\n`POST /v2/integrations/{integrationId}/monitoring/stats`\n\n```ts\nconst { data } = await client.getMonitoringStatsV2(\n {\n integrationId: \'example\',\n },\n {\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n use_case_type: \'inbound\',\n group_by: \'use_case_id\',\n source: \'monitoring\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "total_events": 0,\n "success_count": 0,\n "error_count": 0,\n "warning_count": 0,\n "skipped_count": 0,\n "ack_timeout_count": 0,\n "success_rate": 0,\n "last_error_at": "1970-01-01T00:00:00.000Z",\n "breakdown": [\n {}\n ]\n}\n```\n\n</details>\n\n---\n\n### `getMonitoringTimeSeriesV2`\n\nGet time-series aggregated event counts from the unified erp_monitoring_v2 table.\nReturns bucketed counts for chart rendering.\n\n`POST /v2/integrations/{integrationId}/monitoring/time-series`\n\n```ts\nconst { data } = await client.getMonitoringTimeSeriesV2(\n {\n integrationId: \'example\',\n },\n {\n from_date: \'2025-01-01T00:00:00Z\',\n to_date: \'2025-01-31T23:59:59Z\',\n interval: \'5m\',\n use_case_type: \'inbound\',\n group_by: \'use_case_type\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "interval": "5m",\n "from_date": "1970-01-01T00:00:00.000Z",\n "to_date": "1970-01-01T00:00:00.000Z",\n "buckets": [\n {\n "timestamp": "1970-01-01T00:00:00.000Z",\n "success_count": 0,\n "error_count": 0,\n "warning_count": 0,\n "skipped_count": 0,\n "total_count": 0,\n "breakdown": [\n {\n "use_case_type": "inbound",\n "use_case_id": "string",\n "success_count": 0,\n "error_count": 0,\n "warning_count": 0,\n "skipped_count": 0,\n "total_count": 0\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getAssociatedMonitoringEvents`\n\nReturns all monitoring events sharing the same event_id, ordered chronologically.\nAlso includes the original inbound event payload from erp_incoming_events if available.\nUsed to display a full event t\n\n`GET /v2/integrations/{integrationId}/monitoring/events/{eventId}/associated`\n\n```ts\nconst { data } = await client.getAssociatedMonitoringEvents({\n integrationId: \'example\',\n eventId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "monitoring_events": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "org_id": "string",\n "integration_id": "string",\n "event_id": "string",\n "correlation_id": "string",\n "use_case_id": "string",\n "use_case_type": "inbound",\n "level": "success",\n "code": "string",\n "message": "string",\n "detail": {},\n "created_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "inbound_event": {}\n}\n```\n\n</details>\n\n---\n\n### `listSecureProxies`\n\nList all secure proxy use cases\n\n`GET /v1/integrations/secure-proxies`\n\n```ts\nconst { data } = await client.listSecureProxies()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "secure_proxies": [\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "string",\n "slug": "string",\n "enabled": true,\n "vpc_mode": "static_ip",\n "allowed_domains": ["string"],\n "allowed_ips": ["string"],\n "integration_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "integration_name": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `secureProxy`\n\nProxy HTTP request through secure VPC\n\n`POST /v1/secure-proxy`\n\n```ts\nconst { data } = await client.secureProxy(\n null,\n {\n integration_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n use_case_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n use_case_slug: \'string\',\n url: \'https://example.com/path\',\n method: \'GET\',\n headers: {},\n body: {},\n response_type: \'json\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status_code": 0,\n "headers": {},\n "body": {}\n}\n```\n\n</details>\n\n---\n\n### `managedCallExecute`\n\nExecute a managed call operation\n\n`POST /v1/managed-call/{slug}/execute`\n\n```ts\nconst { data } = await client.managedCallExecute(\n {\n slug: \'example\',\n },\n {\n integration_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n payload: {},\n correlation_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{}\n```\n\n</details>\n\n---\n\n### `generateTypesPreview`\n\nPreview scaffolded types for a connector integration\n\n`POST /v1/integrations/{integrationId}/generate-types-preview`\n\n```ts\nconst { data } = await client.generateTypesPreview({\n integrationId: \'example\',\n})\n```\n\n---\n\n### `generateTypes`\n\nGenerate a TypeScript npm package for a connector integration\n\n`POST /v1/integrations/{integrationId}/generate-types`\n\n```ts\nconst { data } = await client.generateTypes(\n {\n integrationId: \'example\',\n },\n {\n package_name: \'@epilot/hems-cleverpv\',\n version: \'1.0.0\',\n description: \'string\',\n domain_package: \'@epilot/hems\',\n domain_map_name: \'HemsUseCaseMap\',\n annotations: {}\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "package_name": "string",\n "version": "string",\n "files": {},\n "warnings": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `commitTypes`\n\nCommit generated types and lock use case configurations\n\n`POST /v1/integrations/{integrationId}/commit-types`\n\n```ts\nconst { data } = await client.commitTypes(\n {\n integrationId: \'example\',\n },\n {\n package_name: \'@epilot/hems-cleverpv\',\n version: \'1.0.0\',\n annotations: {}\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "committed": true,\n "warnings": ["string"]\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `ErrorResponseBase`\n\n```ts\ntype ErrorResponseBase = {\n code?: string\n message?: string\n}\n```\n\n### `ErpEvent`\n\n```ts\ntype ErpEvent = {\n event_type: "CREATE" | "UPDATE" | "DELETE"\n object_type: string\n timestamp: string // date-time\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n deduplication_id?: string\n use_case_id?: string\n}\n```\n\n### `ErpUpdatesEventsV2Request`\n\n```ts\ntype ErpUpdatesEventsV2Request = {\n integration_id: string // uuid\n correlation_id?: string\n events: Array<{\n event_type: "CREATE" | "UPDATE" | "DELETE"\n object_type: string\n timestamp: string // date-time\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n deduplication_id?: string\n use_case_id?: string\n }>\n}\n```\n\n### `ErpEventV3`\n\n```ts\ntype ErpEventV3 = unknown | unknown\n```\n\n### `ErpUpdatesEventsV3Request`\n\n```ts\ntype ErpUpdatesEventsV3Request = {\n integration_id: string // uuid\n correlation_id?: string\n group_id?: string\n events: unknown | unknown[]\n}\n```\n\n### `TriggerErpActionRequest`\n\n```ts\ntype TriggerErpActionRequest = {\n execution_id: string\n org_id: string\n webhook_id: string\n flow_id: string\n created_at: string // date-time\n action_id: string\n flow_action_id: string\n flow_name: string\n activity_id: string\n entity_id: string\n}\n```\n\n### `TriggerWebhookResp`\n\n```ts\ntype TriggerWebhookResp = {\n status_code?: string\n message?: string\n body?: object\n code?: string\n status?: "succeeded" | "failed"\n start_date?: string\n end_date?: string\n event_id?: string\n}\n```\n\n### `IntegrationEditableFields`\n\n```ts\ntype IntegrationEditableFields = {\n name?: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n integration_type?: "erp" | "connector"\n connector_config?: {\n base_url?: string\n auth?: {\n type?: { ... }\n token_url?: { ... }\n client_id?: { ... }\n client_secret?: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n api_key_header?: { ... }\n api_key?: { ... }\n token?: { ... }\n }\n types_versions?: Array<{\n version: { ... }\n package_name: { ... }\n generated_at: { ... }\n generated_by: { ... }\n status: { ... }\n }>\n latest_types_version?: string\n latest_types_package_name?: string\n }\n protected?: boolean\n _manifest?: string[]\n}\n```\n\n### `ConnectorConfig`\n\nShared configuration for connector-type integrations\n\n```ts\ntype ConnectorConfig = {\n base_url?: string\n auth?: {\n type?: "oauth2_client_credentials" | "api_key" | "bearer"\n token_url?: string\n client_id?: string\n client_secret?: string\n scope?: string\n audience?: string\n resource?: string\n body_params?: Record<string, string>\n headers?: Record<string, string>\n query_params?: Record<string, string>\n api_key_header?: string\n api_key?: string\n token?: string\n }\n types_versions?: Array<{\n version: string\n package_name: string\n generated_at: string // date-time\n generated_by: string\n status: "active" | "deprecated"\n }>\n latest_types_version?: string\n latest_types_package_name?: string\n}\n```\n\n### `ManagedCallAuth`\n\nAuthentication configuration for managed call requests\n\n```ts\ntype ManagedCallAuth = {\n type?: "oauth2_client_credentials" | "api_key" | "bearer"\n token_url?: string\n client_id?: string\n client_secret?: string\n scope?: string\n audience?: string\n resource?: string\n body_params?: Record<string, string>\n headers?: Record<string, string>\n query_params?: Record<string, string>\n api_key_header?: string\n api_key?: string\n token?: string\n}\n```\n\n### `Integration`\n\n```ts\ntype Integration = {\n id: string // uuid\n orgId: string\n created_at: string // date-time\n updated_at: string // date-time\n name: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n integration_type?: "erp" | "connector"\n connector_config?: {\n base_url?: string\n auth?: {\n type?: { ... }\n token_url?: { ... }\n client_id?: { ... }\n client_secret?: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n api_key_header?: { ... }\n api_key?: { ... }\n token?: { ... }\n }\n types_versions?: Array<{\n version: { ... }\n package_name: { ... }\n generated_at: { ... }\n generated_by: { ... }\n status: { ... }\n }>\n latest_types_version?: string\n latest_types_package_name?: string\n }\n protected?: boolean\n _manifest?: string[]\n}\n```\n\n### `CreateIntegrationRequest`\n\n```ts\ntype CreateIntegrationRequest = {\n name: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n integration_type?: "erp" | "connector"\n connector_config?: {\n base_url?: string\n auth?: {\n type?: { ... }\n token_url?: { ... }\n client_id?: { ... }\n client_secret?: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n api_key_header?: { ... }\n api_key?: { ... }\n token?: { ... }\n }\n types_versions?: Array<{\n version: { ... }\n package_name: { ... }\n generated_at: { ... }\n generated_by: { ... }\n status: { ... }\n }>\n latest_types_version?: string\n latest_types_package_name?: string\n }\n protected?: boolean\n _manifest?: string[]\n}\n```\n\n### `UpdateIntegrationRequest`\n\n```ts\ntype UpdateIntegrationRequest = {\n name?: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n integration_type?: "erp" | "connector"\n connector_config?: {\n base_url?: string\n auth?: {\n type?: { ... }\n token_url?: { ... }\n client_id?: { ... }\n client_secret?: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n api_key_header?: { ... }\n api_key?: { ... }\n token?: { ... }\n }\n types_versions?: Array<{\n version: { ... }\n package_name: { ... }\n generated_at: { ... }\n generated_by: { ... }\n status: { ... }\n }>\n latest_types_version?: string\n latest_types_package_name?: string\n }\n protected?: boolean\n _manifest?: string[]\n}\n```\n\n### `EnvironmentFieldConfig`\n\n```ts\ntype EnvironmentFieldConfig = {\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n}\n```\n\n### `IntegrationSettings`\n\nSettings for the integration\n\n```ts\ntype IntegrationSettings = {\n autoRefresh?: {\n enabled?: boolean\n freshnessThresholdMinutes?: number\n }\n}\n```\n\n### `AutoRefreshSettings`\n\nAuto-refresh settings for keeping integration data fresh\n\n```ts\ntype AutoRefreshSettings = {\n enabled?: boolean\n freshnessThresholdMinutes?: number\n}\n```\n\n### `SetIntegrationAppMappingRequest`\n\n```ts\ntype SetIntegrationAppMappingRequest = {\n app_id: string // uuid\n component_id: string // uuid\n overwrite?: boolean\n}\n```\n\n### `DeleteIntegrationAppMappingRequest`\n\n```ts\ntype DeleteIntegrationAppMappingRequest = {\n app_id: string // uuid\n component_id: string // uuid\n}\n```\n\n### `IntegrationAppMapping`\n\n```ts\ntype IntegrationAppMapping = {\n integration_id: string // uuid\n}\n```\n\n### `IntegrationWithUseCases`\n\n```ts\ntype IntegrationWithUseCases = {\n use_cases: Array<{\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n entities?: { ... }\n meter_readings?: { ... }\n }\n } | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "outbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n event_catalog_event: { ... }\n mappings: { ... }\n }\n } | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "file_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n secure_proxy?: { ... }\n auth?: { ... }\n params?: { ... }\n allowed_origins?: { ... }\n steps: { ... }\n response: { ... }\n }\n } | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "managed_call"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n operation: { ... }\n request_mapping?: { ... }\n response_mapping?: { ... }\n inbound_use_case_slug?: { ... }\n }\n type_annotations?: {\n request?: { ... }\n response?: { ... }\n }\n types_locked?: boolean\n } | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "secure_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n vpc_mode: { ... }\n allowed_domains?: { ... }\n allowed_ips?: { ... }\n }\n }>\n}\n```\n\n### `UpsertIntegrationWithUseCasesRequest`\n\n```ts\ntype UpsertIntegrationWithUseCasesRequest = {\n name: string\n description?: string\n access_token_ids?: string[]\n app_ids?: string[]\n environment_config?: Array<{\n key: string\n label: string\n type: "String" | "SecretString"\n description?: string\n required?: boolean\n order?: number\n }>\n settings?: {\n autoRefresh?: {\n enabled?: { ... }\n freshnessThresholdMinutes?: { ... }\n }\n }\n integration_type?: "erp" | "connector"\n connector_config?: {\n base_url?: string\n auth?: {\n type?: { ... }\n token_url?: { ... }\n client_id?: { ... }\n client_secret?: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n api_key_header?: { ... }\n api_key?: { ... }\n token?: { ... }\n }\n types_versions?: Array<{\n version: { ... }\n package_name: { ... }\n generated_at: { ... }\n generated_by: { ... }\n status: { ... }\n }>\n latest_types_version?: string\n latest_types_package_name?: string\n }\n protected?: boolean\n _manifest?: string[]\n use_cases?: Array<{\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "inbound"\n configuration?: {\n entities?: { ... }\n meter_readings?: { ... }\n }\n } | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "outbound"\n configuration?: {\n event_catalog_event: { ... }\n mappings: { ... }\n }\n } | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "file_proxy"\n configuration?: {\n secure_proxy?: { ... }\n auth?: { ... }\n params?: { ... }\n allowed_origins?: { ... }\n steps: { ... }\n response: { ... }\n }\n } | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "managed_call"\n configuration?: {\n operation: { ... }\n request_mapping?: { ... }\n response_mapping?: { ... }\n inbound_use_case_slug?: { ... }\n }\n } | {\n // ...\n}\n```\n\n### `InboundIntegrationEventConfiguration`\n\nConfiguration for inbound use cases (ERP to epilot)\n\n```ts\ntype InboundIntegrationEventConfiguration = {\n entities?: Array<{\n entity_schema: string\n unique_ids: string[]\n jsonataExpression?: string\n enabled?: boolean | string\n mode?: "upsert" | "delete" | "purge" | "upsert-prune-scope-purge" | "upsert-prune-scope-delete"\n scope?: {\n scope_mode: { ... }\n schema?: { ... }\n unique_ids?: { ... }\n query?: { ... }\n }\n fields: Array<{\n attribute: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n _type?: { ... }\n enabled?: { ... }\n relations?: { ... }\n relation_refs?: { ... }\n file_proxy_url?: { ... }\n portal_ref?: { ... }\n env_var_ref?: { ... }\n }>\n }>\n meter_readings?: Array<{\n jsonataExpression?: string\n reading_matching?: "external_id" | "strict-date"\n mode?: "upsert" | "delete" | "upsert-prune-scope"\n scope?: {\n source?: { ... }\n }\n meter: {\n unique_ids: { ... }\n }\n meter_counter?: {\n unique_ids: { ... }\n }\n fields: Array<{\n attribute: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n _type?: { ... }\n enabled?: { ... }\n relations?: { ... }\n relation_refs?: { ... }\n file_proxy_url?: { ... }\n portal_ref?: { ... }\n env_var_ref?: { ... }\n }>\n }>\n}\n```\n\n### `OutboundIntegrationEventConfiguration`\n\nConfiguration for outbound use cases. Defines the event that triggers the flow and the webhook mappings.\n\n```ts\ntype OutboundIntegrationEventConfiguration = {\n event_catalog_event: string\n mappings: Array<{\n id?: string // uuid\n name: string\n jsonata_expression: string\n enabled: boolean\n delivery: {\n type: { ... }\n webhook_id: { ... }\n webhook_name?: { ... }\n webhook_url?: { ... }\n }\n created_at?: string // date-time\n updated_at?: string // date-time\n }>\n}\n```\n\n### `IntegrationEntity`\n\n```ts\ntype IntegrationEntity = {\n entity_schema: string\n unique_ids: string[]\n jsonataExpression?: string\n enabled?: boolean | string\n mode?: "upsert" | "delete" | "purge" | "upsert-prune-scope-purge" | "upsert-prune-scope-delete"\n scope?: {\n scope_mode: "relations" | "query"\n schema?: string\n unique_ids?: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n query?: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }\n fields: Array<{\n attribute: string\n field?: string\n jsonataExpression?: string\n constant?: unknown\n _type?: "email" | "phone"\n enabled?: boolean | string\n relations?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n relation_refs?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n file_proxy_url?: {\n use_case_slug: { ... }\n params?: { ... }\n } | {\n use_case_id: { ... }\n params?: { ... }\n }\n portal_ref?: {\n filter?: { ... }\n select?: { ... }\n return?: { ... }\n } | {\n filter?: { ... }\n select?: { ... }\n return: { ... }\n jsonataExpression: { ... }\n }\n env_var_ref?: {\n key: { ... }\n default?: { ... }\n return?: { ... }\n } | {\n key: { ... }\n default?: { ... }\n return: { ... }\n jsonataExpression: { ... }\n }\n }>\n}\n```\n\n### `IntegrationMeterReading`\n\n```ts\ntype IntegrationMeterReading = {\n jsonataExpression?: string\n reading_matching?: "external_id" | "strict-date"\n mode?: "upsert" | "delete" | "upsert-prune-scope"\n scope?: {\n source?: string\n }\n meter: {\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }\n meter_counter?: {\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }\n fields: Array<{\n attribute: string\n field?: string\n jsonataExpression?: string\n constant?: unknown\n _type?: "email" | "phone"\n enabled?: boolean | string\n relations?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n relation_refs?: {\n operation: { ... }\n items?: { ... }\n jsonataExpression?: { ... }\n }\n file_proxy_url?: {\n use_case_slug: { ... }\n params?: { ... }\n } | {\n use_case_id: { ... }\n params?: { ... }\n }\n portal_ref?: {\n filter?: { ... }\n select?: { ... }\n return?: { ... }\n } | {\n filter?: { ... }\n select?: { ... }\n return: { ... }\n jsonataExpression: { ... }\n }\n env_var_ref?: {\n key: { ... }\n default?: { ... }\n return?: { ... }\n } | {\n key: { ... }\n default?: { ... }\n return: { ... }\n jsonataExpression: { ... }\n }\n }>\n}\n```\n\n### `PruneScopeConfig`\n\nScope configuration for upsert-prune-scope modes.\nDefines how to find entities that should be pruned if not in the upsert payload.\nThe scope is resolved against the original event payload (not individual array items).\n\n\n```ts\ntype PruneScopeConfig = {\n scope_mode: "relations" | "query"\n schema?: string\n unique_ids?: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n query?: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n}\n```\n\n### `MeterReadingPruneScopeConfig`\n\nScope configuration for meter reading upsert-prune-scope mode.\nThe scope is all readings for the same meter + counter.\n\n\n```ts\ntype MeterReadingPruneScopeConfig = {\n source?: string\n}\n```\n\n### `MeterUniqueIdsConfig`\n\n```ts\ntype MeterUniqueIdsConfig = {\n unique_ids: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n}\n```\n\n### `IntegrationEntityField`\n\n```ts\ntype IntegrationEntityField = {\n attribute: string\n field?: string\n jsonataExpression?: string\n constant?: unknown\n _type?: "email" | "phone"\n enabled?: boolean | string\n relations?: {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: { ... }\n _tags?: { ... }\n unique_ids: { ... }\n }>\n jsonataExpression?: string\n }\n relation_refs?: {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n path: { ... }\n value: { ... }\n }>\n jsonataExpression?: string\n }\n file_proxy_url?: {\n use_case_slug: string\n params?: Record<string, {\n field: { ... }\n } | {\n constant: { ... }\n } | {\n jsonataExpression: { ... }\n }>\n } | {\n use_case_id: string\n params?: Record<string, {\n field: { ... }\n } | {\n constant: { ... }\n } | {\n jsonataExpression: { ... }\n }>\n }\n portal_ref?: {\n filter?: {\n origin?: { ... }\n enabled?: { ... }\n is_dummy?: { ... }\n is_epilot_domain?: { ... }\n name?: { ... }\n domain?: { ... }\n }\n select?: "single" | "all"\n return?: "portal_id" | "origin" | "domain" | "name"\n } | {\n filter?: {\n origin?: { ... }\n enabled?: { ... }\n is_dummy?: { ... }\n is_epilot_domain?: { ... }\n name?: { ... }\n domain?: { ... }\n }\n select?: "single" | "all"\n return: "jsonata"\n jsonataExpression: string\n }\n env_var_ref?: {\n key: string\n default?: string\n return?: "value"\n } | {\n key: string\n default?: string\n return: "jsonata"\n jsonataExpression: string\n }\n}\n```\n\n### `FileProxyUrlParam`\n\nParameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set.\n\n```ts\ntype FileProxyUrlParam = {\n field: string\n} | {\n constant: unknown\n} | {\n jsonataExpression: string\n}\n```\n\n### `FileProxyUrlParams`\n\nCustom query parameters. Keys become URL param names, values resolved from payload.\n\n```ts\ntype FileProxyUrlParams = Record<string, {\n field: string\n} | {\n constant: unknown\n} | {\n jsonataExpression: string\n}>\n```\n\n### `FileProxyUrlConfig`\n\nAuto-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\n\n```ts\ntype FileProxyUrlConfig = {\n use_case_slug: string\n params?: Record<string, {\n field: string\n } | {\n constant: unknown\n } | {\n jsonataExpression: string\n }>\n} | {\n use_case_id: string\n params?: Record<string, {\n field: string\n } | {\n constant: unknown\n } | {\n jsonataExpression: string\n }>\n}\n```\n\n### `PortalOrigin`\n\nOrigin/type of an epilot portal configuration.\n\n```ts\ntype PortalOrigin = "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL" | "B2B_PORTAL" | "ADDITIONAL_PORTAL"\n```\n\n### `PortalRefFilter`\n\nFilter 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.\n\n\n```ts\ntype PortalRefFilter = {\n origin?: "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL" | "B2B_PORTAL" | "ADDITIONAL_PORTAL" | "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL" | "B2B_PORTAL" | "ADDITIONAL_PORTAL"[]\n enabled?: boolean\n is_dummy?: boolean\n is_epilot_domain?: boolean\n name?: string\n domain?: string\n}\n```\n\n### `PortalRefConfig`\n\nResolves 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 ol\n\n```ts\ntype PortalRefConfig = {\n filter?: {\n origin?: "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL" | "B2B_PORTAL" | "ADDITIONAL_PORTAL" | "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL" | "B2B_PORTAL" | "ADDITIONAL_PORTAL"[]\n enabled?: boolean\n is_dummy?: boolean\n is_epilot_domain?: boolean\n name?: string\n domain?: string\n }\n select?: "single" | "all"\n return?: "portal_id" | "origin" | "domain" | "name"\n} | {\n filter?: {\n origin?: "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL" | "B2B_PORTAL" | "ADDITIONAL_PORTAL" | "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL" | "B2B_PORTAL" | "ADDITIONAL_PORTAL"[]\n enabled?: boolean\n is_dummy?: boolean\n is_epilot_domain?: boolean\n name?: string\n domain?: string\n }\n select?: "single" | "all"\n return: "jsonata"\n jsonataExpression: string\n}\n```\n\n### `EnvVarRefConfig`\n\nResolves 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\n\n```ts\ntype EnvVarRefConfig = {\n key: string\n default?: string\n return?: "value"\n} | {\n key: string\n default?: string\n return: "jsonata"\n jsonataExpression: string\n}\n```\n\n### `EmbeddedUseCaseRequest`\n\n```ts\ntype EmbeddedUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "managed_call"\n configuration?: {\n operation: {\n // ...\n}\n```\n\n### `EmbeddedUseCaseRequestBase`\n\n```ts\ntype EmbeddedUseCaseRequestBase = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n}\n```\n\n### `EmbeddedInboundUseCaseRequest`\n\n```ts\ntype EmbeddedInboundUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `EmbeddedOutboundUseCaseRequest`\n\n```ts\ntype EmbeddedOutboundUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `EmbeddedFileProxyUseCaseRequest`\n\n```ts\ntype EmbeddedFileProxyUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `EmbeddedManagedCallUseCaseRequest`\n\n```ts\ntype EmbeddedManagedCallUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "managed_call"\n configuration?: {\n operation: {\n method: { ... }\n path: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n request_mapping?: string\n response_mapping?: string\n inbound_use_case_slug?: string\n }\n}\n```\n\n### `EmbeddedSecureProxyUseCaseRequest`\n\n```ts\ntype EmbeddedSecureProxyUseCaseRequest = {\n id?: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n allowed_ips?: string[]\n }\n}\n```\n\n### `UseCaseBase`\n\n```ts\ntype UseCaseBase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound" | "outbound" | "file_proxy" | "managed_call" | "secure_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n}\n```\n\n### `InboundUseCase`\n\n```ts\ntype InboundUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `OutboundUseCase`\n\n```ts\ntype OutboundUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "outbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `FileProxyUseCase`\n\n```ts\ntype FileProxyUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "file_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `ManagedCallUseCase`\n\n```ts\ntype ManagedCallUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "managed_call"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n operation: {\n method: { ... }\n path: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n request_mapping?: string\n response_mapping?: string\n inbound_use_case_slug?: string\n }\n type_annotations?: {\n request?: Record<string, string>\n response?: Record<string, string>\n }\n types_locked?: boolean\n}\n```\n\n### `SecureProxyUseCase`\n\n```ts\ntype SecureProxyUseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "secure_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n allowed_ips?: string[]\n }\n}\n```\n\n### `UseCase`\n\n```ts\ntype UseCase = {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "inbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "outbound"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n id: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n type: "file_proxy"\n enabled: boolean\n change_description?: string\n created_at: string // date-time\n updated_at: string // date-time\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n // ...\n}\n```\n\n### `CreateUseCaseRequest`\n\n```ts\ntype CreateUseCaseRequest = {\n name: string\n slug: string\n enabled: boolean\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n name: string\n slug: string\n enabled: boolean\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n name: string\n slug: string\n enabled: boolean\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n name: string\n slug: string\n enabled: boolean\n type: "managed_call"\n configuration?: {\n operation: {\n method: { ... }\n path: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n request_mapping?: string\n response_mapping?: string\n inbound_use_case_slug?: string\n // ...\n}\n```\n\n### `CreateUseCaseRequestBase`\n\n```ts\ntype CreateUseCaseRequestBase = {\n name: string\n slug: string\n enabled: boolean\n}\n```\n\n### `CreateInboundUseCaseRequest`\n\n```ts\ntype CreateInboundUseCaseRequest = {\n name: string\n slug: string\n enabled: boolean\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `CreateOutboundUseCaseRequest`\n\n```ts\ntype CreateOutboundUseCaseRequest = {\n name: string\n slug: string\n enabled: boolean\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `CreateFileProxyUseCaseRequest`\n\n```ts\ntype CreateFileProxyUseCaseRequest = {\n name: string\n slug: string\n enabled: boolean\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `CreateManagedCallUseCaseRequest`\n\n```ts\ntype CreateManagedCallUseCaseRequest = {\n name: string\n slug: string\n enabled: boolean\n type: "managed_call"\n configuration?: {\n operation: {\n method: { ... }\n path: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n request_mapping?: string\n response_mapping?: string\n inbound_use_case_slug?: string\n }\n}\n```\n\n### `CreateSecureProxyUseCaseRequest`\n\n```ts\ntype CreateSecureProxyUseCaseRequest = {\n name: string\n slug: string\n enabled: boolean\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n allowed_ips?: string[]\n }\n}\n```\n\n### `UpdateUseCaseRequest`\n\n```ts\ntype UpdateUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n} | {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "managed_call"\n configuration?: {\n operation: {\n method: { ... }\n path: { ... }\n headers?: { ... }\n query_params?: { ... }\n // ...\n}\n```\n\n### `UpdateUseCaseRequestBase`\n\n```ts\ntype UpdateUseCaseRequestBase = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n}\n```\n\n### `UpdateInboundUseCaseRequest`\n\n```ts\ntype UpdateInboundUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `UpdateOutboundUseCaseRequest`\n\n```ts\ntype UpdateOutboundUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `UpdateFileProxyUseCaseRequest`\n\n```ts\ntype UpdateFileProxyUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `UpdateManagedCallUseCaseRequest`\n\n```ts\ntype UpdateManagedCallUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "managed_call"\n configuration?: {\n operation: {\n method: { ... }\n path: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n request_mapping?: string\n response_mapping?: string\n inbound_use_case_slug?: string\n }\n type_annotations?: {\n request?: Record<string, string>\n response?: Record<string, string>\n }\n}\n```\n\n### `UpdateSecureProxyUseCaseRequest`\n\n```ts\ntype UpdateSecureProxyUseCaseRequest = {\n name?: string\n slug?: string\n enabled?: boolean\n change_description?: string\n type?: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n allowed_ips?: string[]\n }\n}\n```\n\n### `UseCaseHistoryEntry`\n\n```ts\ntype UseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n changed_by?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n} | {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n changed_by?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n} | {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n changed_by?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n // ...\n}\n```\n\n### `UseCaseHistoryEntryBase`\n\n```ts\ntype UseCaseHistoryEntryBase = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n changed_by?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n}\n```\n\n### `InboundUseCaseHistoryEntry`\n\n```ts\ntype InboundUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n changed_by?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "inbound"\n configuration?: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `OutboundUseCaseHistoryEntry`\n\n```ts\ntype OutboundUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n changed_by?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "outbound"\n configuration?: {\n event_catalog_event: string\n mappings: Array<{\n id?: { ... }\n name: { ... }\n jsonata_expression: { ... }\n enabled: { ... }\n delivery: { ... }\n created_at?: { ... }\n updated_at?: { ... }\n }>\n }\n}\n```\n\n### `FileProxyUseCaseHistoryEntry`\n\n```ts\ntype FileProxyUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n changed_by?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "file_proxy"\n configuration?: {\n secure_proxy?: {\n use_case_slug: { ... }\n }\n auth?: {\n type: { ... }\n token_url: { ... }\n client_id: { ... }\n client_secret: { ... }\n scope?: { ... }\n audience?: { ... }\n resource?: { ... }\n username?: { ... }\n password?: { ... }\n body_params?: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n params?: Array<{\n name: { ... }\n required: { ... }\n description?: { ... }\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: { ... }\n method: { ... }\n headers?: { ... }\n body?: { ... }\n response_type: { ... }\n }>\n response: {\n body: { ... }\n encoding: { ... }\n filename?: { ... }\n content_type?: { ... }\n }\n }\n}\n```\n\n### `ManagedCallUseCaseHistoryEntry`\n\n```ts\ntype ManagedCallUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n changed_by?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "managed_call"\n configuration?: {\n operation: {\n method: { ... }\n path: { ... }\n headers?: { ... }\n query_params?: { ... }\n }\n request_mapping?: string\n response_mapping?: string\n inbound_use_case_slug?: string\n }\n type_annotations?: {\n request?: Record<string, string>\n response?: Record<string, string>\n }\n types_locked?: boolean\n}\n```\n\n### `SecureProxyUseCaseHistoryEntry`\n\n```ts\ntype SecureProxyUseCaseHistoryEntry = {\n id: string // uuid\n useCaseId: string // uuid\n integrationId: string // uuid\n name: string\n slug?: string\n enabled: boolean\n change_description?: string\n changed_by?: string\n created_at: string // date-time\n updated_at: string // date-time\n history_created_at: string // date-time\n type: "secure_proxy"\n configuration?: {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n allowed_ips?: string[]\n }\n}\n```\n\n### `SecureProxyUseCaseConfiguration`\n\nConfiguration for secure_proxy use cases. Defines how to route requests through a secure VPC.\n\n\n```ts\ntype SecureProxyUseCaseConfiguration = {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n allowed_ips?: string[]\n}\n```\n\n### `SecureProxyWhitelist`\n\nCurrent whitelist state for a secure_proxy use case. vpc_mode is read-only\ncontext so the UI can show the user what mode the pool is in.\n\n\n```ts\ntype SecureProxyWhitelist = {\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains: string[]\n allowed_ips: string[]\n}\n```\n\n### `SecureProxyWhitelistUpdate`\n\nPartial update for a secure_proxy whitelist. At least one of\n`allowed_domains` or `allowed_ips` must be provided.\n\nPer-field semantics:\n - **omitted** \u2014 the field is not modified; the stored value is preserved.\n - **non-empty array** \u2014 the stored value is replaced with the supplied list.\n - **emp\n\n```ts\ntype SecureProxyWhitelistUpdate = {\n allowed_domains?: string[]\n allowed_ips?: string[]\n}\n```\n\n### `SecureProxySummary`\n\n```ts\ntype SecureProxySummary = {\n id: string // uuid\n name: string\n slug?: string\n enabled: boolean\n vpc_mode: "static_ip" | "secure_link"\n allowed_domains?: string[]\n allowed_ips?: string[]\n integration_id: string // uuid\n integration_name: string\n}\n```\n\n### `SecureProxyRequest`\n\n```ts\ntype SecureProxyRequest = {\n integration_id: string // uuid\n use_case_id?: string // uuid\n use_case_slug?: string\n url: string // uri\n method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"\n headers?: Record<string, string>\n body?: unknown\n response_type?: "json" | "binary"\n}\n```\n\n### `SecureProxyResponse`\n\n```ts\ntype SecureProxyResponse = {\n status_code?: number\n headers?: Record<string, string>\n body?: unknown\n}\n```\n\n### `ManagedCallOperationConfig`\n\nConfiguration for managed_call use cases. Defines a single API operation with JSONata mapping.\n\n```ts\ntype ManagedCallOperationConfig = {\n operation: {\n method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"\n path: string\n headers?: Record<string, string>\n query_params?: Record<string, string>\n }\n request_mapping?: string\n response_mapping?: string\n inbound_use_case_slug?: string\n}\n```\n\n### `ManagedCallOperation`\n\nHTTP operation configuration for managed calls\n\n```ts\ntype ManagedCallOperation = {\n method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"\n path: string\n headers?: Record<string, string>\n query_params?: Record<string, string>\n}\n```\n\n### `ManagedCallExecuteRequest`\n\n```ts\ntype ManagedCallExecuteRequest = {\n integration_id: string // uuid\n payload?: Record<string, unknown>\n correlation_id?: string\n}\n```\n\n### `ManagedCallExecuteResponse`\n\nThe response from a managed call execution.\nOn success, returns the JSONata-mapped response data directly (no wrapper).\nThe shape is entirely defined by your response_mapping JSONata expression.\nIf no response_mapping is configured, returns the raw external API response.\nCheck the X-Inbound-Event-Id\n\n```ts\ntype ManagedCallExecuteResponse = unknown\n```\n\n### `ManagedCallErrorResponse`\n\n```ts\ntype ManagedCallErrorResponse = {\n error: {\n code: string\n message: string\n details?: Record<string, unknown>\n }\n}\n```\n\n### `TypeAnnotations`\n\nDeveloper-provided type annotations for a use case\'s request and response fields\n\n```ts\ntype TypeAnnotations = {\n request?: Record<string, string>\n response?: Record<string, string>\n}\n```\n\n### `TypeDescriptor`\n\nDescribes the inferred type shape of a JSONata expression\n\n```ts\ntype TypeDescriptor = {\n kind: "object" | "array" | "string" | "number" | "boolean" | "null" | "unknown" | "union"\n properties?: Record<string, {\n kind: "object" | "array" | "string" | "number" | "boolean" | "null" | "unknown" | "union"\n properties?: Record<string, {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }>\n items?: {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }\n source?: string\n variants?: Array<{\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }>\n }>\n items?: {\n kind: "object" | "array" | "string" | "number" | "boolean" | "null" | "unknown" | "union"\n properties?: Record<string, {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }>\n items?: {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }\n source?: string\n variants?: Array<{\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }>\n }\n source?: string\n variants?: Array<{\n kind: "object" | "array" | "string" | "number" | "boolean" | "null" | "unknown" | "union"\n properties?: Record<string, {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }>\n items?: {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }\n source?: string\n variants?: Array<{\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }>\n }>\n}\n```\n\n### `UseCaseTypePreview`\n\nScaffolded type descriptors for a single use case\n\n```ts\ntype UseCaseTypePreview = {\n slug: string\n name?: string\n request_shape: {\n kind: "object" | "array" | "string" | "number" | "boolean" | "null" | "unknown" | "union"\n properties?: Record<string, {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }>\n items?: {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }\n source?: string\n variants?: Array<{\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }>\n }\n response_shape: {\n kind: "object" | "array" | "string" | "number" | "boolean" | "null" | "unknown" | "union"\n properties?: Record<string, {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }>\n items?: {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }\n source?: string\n variants?: Array<{\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }>\n }\n existing_annotations?: {\n request?: Record<string, string>\n response?: Record<string, string>\n }\n}\n```\n\n### `GenerateTypesPreviewResponse`\n\n```ts\ntype GenerateTypesPreviewResponse = {\n integration_name?: string\n use_cases: Array<{\n slug: string\n name?: string\n request_shape: {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }\n response_shape: {\n kind: { ... }\n properties?: { ... }\n items?: { ... }\n source?: { ... }\n variants?: { ... }\n }\n existing_annotations?: {\n request?: { ... }\n response?: { ... }\n }\n }>\n previous_version?: string\n suggested_version?: string\n suggested_bump?: "major" | "minor"\n detected_changes?: Array<{\n slug: string\n field: string\n type: "breaking" | "non-breaking"\n description: string\n }>\n}\n```\n\n### `GenerateTypesRequest`\n\n```ts\ntype GenerateTypesRequest = {\n package_name: string\n version: string\n description?: string\n domain_package?: string\n domain_map_name?: string\n annotations?: Record<string, {\n request?: Record<string, string>\n response?: Record<string, string>\n }>\n}\n```\n\n### `GenerateTypesResponse`\n\n```ts\ntype GenerateTypesResponse = {\n package_name: string\n version: string\n files: Record<string, string>\n warnings?: string[]\n}\n```\n\n### `CommitTypesRequest`\n\n```ts\ntype CommitTypesRequest = {\n package_name: string\n version: string\n annotations?: Record<string, {\n request?: Record<string, string>\n response?: Record<string, string>\n }>\n}\n```\n\n### `CommitTypesResponse`\n\n```ts\ntype CommitTypesResponse = {\n committed: boolean\n warnings?: string[]\n}\n```\n\n### `FileProxyUseCaseConfiguration`\n\nConfiguration 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 \n\n```ts\ntype FileProxyUseCaseConfiguration = {\n secure_proxy?: {\n use_case_slug: string\n }\n auth?: {\n type: "oauth2_client_credentials" | "oauth2_password"\n token_url: string\n client_id: string\n client_secret: string\n scope?: string\n audience?: string\n resource?: string\n username?: string\n password?: string\n body_params?: Record<string, string>\n headers?: Record<string, string>\n query_params?: Record<string, string>\n }\n params?: Array<{\n name: string\n required: boolean\n description?: string\n }>\n allowed_origins?: string // uri[]\n steps: Array<{\n url: string\n method: "GET" | "POST"\n headers?: Record<string, string>\n body?: string\n response_type: "json" | "binary"\n }>\n response: {\n body: string\n encoding: "base64" | "binary"\n filename?: string\n content_type?: string\n }\n}\n```\n\n### `FileProxySecureProxyAttachment`\n\n```ts\ntype FileProxySecureProxyAttachment = {\n use_case_slug: string\n}\n```\n\n### `FileProxyAuth`\n\n```ts\ntype FileProxyAuth = {\n type: "oauth2_client_credentials" | "oauth2_password"\n token_url: string\n client_id: string\n client_secret: string\n scope?: string\n audience?: string\n resource?: string\n username?: string\n password?: string\n body_params?: Record<string, string>\n headers?: Record<string, string>\n query_params?: Record<string, string>\n}\n```\n\n### `FileProxyParam`\n\n```ts\ntype FileProxyParam = {\n name: string\n required: boolean\n description?: string\n}\n```\n\n### `FileProxyStep`\n\n```ts\ntype FileProxyStep = {\n url: string\n method: "GET" | "POST"\n headers?: Record<string, string>\n body?: string\n response_type: "json" | "binary"\n}\n```\n\n### `FileProxyResponseConfig`\n\n```ts\ntype FileProxyResponseConfig = {\n body: string\n encoding: "base64" | "binary"\n filename?: string\n content_type?: string\n}\n```\n\n### `MappingSimulationRequest`\n\n```ts\ntype MappingSimulationRequest = {\n mapping_configuration: {\n version?: "1.0"\n mapping: {\n objects: { ... }\n }\n } | {\n version: "2.0"\n mapping: {\n events: { ... }\n }\n }\n object_type: string\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n}\n```\n\n### `MappingSimulationV2Request`\n\nRequest for v2 mapping simulation. Uses the same configuration format stored in integration use case resources,\nmaking it easier to test configurations before saving them.\n\n\n```ts\ntype MappingSimulationV2Request = {\n event_configuration: {\n entities?: Array<{\n entity_schema: { ... }\n unique_ids: { ... }\n jsonataExpression?: { ... }\n enabled?: { ... }\n mode?: { ... }\n scope?: { ... }\n fields: { ... }\n }>\n meter_readings?: Array<{\n jsonataExpression?: { ... }\n reading_matching?: { ... }\n mode?: { ... }\n scope?: { ... }\n meter: { ... }\n meter_counter?: { ... }\n fields: { ... }\n }>\n }\n format: "json" | "xml"\n payload: string | Record<string, unknown>\n}\n```\n\n### `MappingSimulationResponse`\n\n```ts\ntype MappingSimulationResponse = {\n entity_updates: Array<{\n entity_slug: string\n unique_identifiers: Record<string, unknown>\n attributes: Record<string, unknown>\n }>\n meter_readings_updates?: Array<{\n meter: {\n $entity_unique_ids: { ... }\n }\n meter_counter?: {\n $entity_unique_ids?: { ... }\n }\n attributes: Record<string, unknown>\n }>\n warnings?: Array<{\n entity_schema: string\n field: string\n message: string\n }>\n}\n```\n\n### `MappingSimulationWarning`\n\n```ts\ntype MappingSimulationWarning = {\n entity_schema: string\n field: string\n message: string\n}\n```\n\n### `EntityUpdate`\n\n```ts\ntype EntityUpdate = {\n entity_slug: string\n unique_identifiers: Record<string, unknown>\n attributes: Record<string, unknown>\n}\n```\n\n### `MeterReadingUpdate`\n\n```ts\ntype MeterReadingUpdate = {\n meter: {\n $entity_unique_ids: Record<string, unknown>\n }\n meter_counter?: {\n $entity_unique_ids?: Record<string, unknown>\n }\n attributes: Record<string, unknown>\n}\n```\n\n### `IntegrationConfigurationV1`\n\n```ts\ntype IntegrationConfigurationV1 = {\n version?: "1.0"\n mapping: {\n objects: Record<string, {\n unique_ids: { ... }\n fields: { ... }\n }>\n }\n}\n```\n\n### `IntegrationObjectV1`\n\n```ts\ntype IntegrationObjectV1 = {\n unique_ids: Record<string, string[] | Record<string, string>>\n fields: Array<{\n entity: string\n attribute: string\n field?: string\n jsonataExpression?: string\n }>\n}\n```\n\n### `IntegrationFieldV1`\n\n```ts\ntype IntegrationFieldV1 = {\n entity: string\n attribute: string\n field?: string\n jsonataExpression?: string\n}\n```\n\n### `IntegrationConfigurationV2`\n\n```ts\ntype IntegrationConfigurationV2 = {\n version: "2.0"\n mapping: {\n events: Record<string, {\n entities?: { ... }\n meter_readings?: { ... }\n }>\n }\n}\n```\n\n### `OutboundMapping`\n\nA mapping that transforms an event and delivers it to a webhook\n\n```ts\ntype OutboundMapping = {\n id?: string // uuid\n name: string\n jsonata_expression: string\n enabled: boolean\n delivery: {\n type: "webhook"\n webhook_id: string\n webhook_name?: string\n webhook_url?: string\n }\n created_at?: string // date-time\n updated_at?: string // date-time\n}\n```\n\n### `DeliveryConfig`\n\nConfiguration for how the transformed event should be delivered\n\n```ts\ntype DeliveryConfig = {\n type: "webhook"\n webhook_id: string\n webhook_name?: string\n webhook_url?: string\n}\n```\n\n### `OutboundStatusResponse`\n\n```ts\ntype OutboundStatusResponse = {\n useCases: Array<{\n useCaseId: string // uuid\n name: string\n useCaseEnabled: boolean\n eventCatalogEvent?: string\n eventEnabled?: boolean\n webhooks?: Array<{\n webhookId: { ... }\n webhookName?: { ... }\n enabled?: { ... }\n }>\n status: "ok" | "conflict" | "disabled"\n conflicts?: Array<{\n type: { ... }\n webhookId?: { ... }\n message: { ... }\n }>\n }>\n}\n```\n\n### `OutboundUseCaseStatus`\n\n```ts\ntype OutboundUseCaseStatus = {\n useCaseId: string // uuid\n name: string\n useCaseEnabled: boolean\n eventCatalogEvent?: string\n eventEnabled?: boolean\n webhooks?: Array<{\n webhookId: string\n webhookName?: string\n enabled?: boolean\n }>\n status: "ok" | "conflict" | "disabled"\n conflicts?: Array<{\n type: "event_disabled" | "all_webhooks_disabled" | "event_enabled_while_disabled" | "webhook_enabled_while_disabled"\n webhookId?: string\n message: string\n }>\n}\n```\n\n### `WebhookStatus`\n\n```ts\ntype WebhookStatus = {\n webhookId: string\n webhookName?: string\n enabled?: boolean\n}\n```\n\n### `OutboundConflict`\n\n```ts\ntype OutboundConflict = {\n type: "event_disabled" | "all_webhooks_disabled" | "event_enabled_while_disabled" | "webhook_enabled_while_disabled"\n webhookId?: string\n message: string\n}\n```\n\n### `RelationConfig`\n\n```ts\ntype RelationConfig = {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: string\n _tags?: string[]\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n }>\n jsonataExpression?: string\n}\n```\n\n### `RelationItemConfig`\n\n```ts\ntype RelationItemConfig = {\n entity_schema: string\n _tags?: string[]\n unique_ids: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n}\n```\n\n### `RelationUniqueIdField`\n\n```ts\ntype RelationUniqueIdField = {\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n}\n```\n\n### `RelationRefsConfig`\n\nConfiguration for relation references ($relation_ref).\nRelation references link to a specific item within a repeatable attribute on a related entity.\nCommon use case: referencing a specific address within a contact\'s address list.\n\n\n```ts\ntype RelationRefsConfig = {\n operation: "_set" | "_append" | "_append_all"\n items?: Array<{\n entity_schema: string\n unique_ids: Array<{\n attribute: { ... }\n _type?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }>\n path: string\n value: {\n attribute: { ... }\n operation?: { ... }\n field?: { ... }\n jsonataExpression?: { ... }\n constant?: { ... }\n }\n }>\n jsonataExpression?: string\n}\n```\n\n### `RelationRefItemConfig`\n\nConfiguration for a single relation reference item\n\n```ts\ntype RelationRefItemConfig = {\n entity_schema: string\n unique_ids: Array<{\n attribute: string\n _type?: "email" | "phone"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }>\n path: string\n value: {\n attribute: string\n operation?: "_set" | "_append" | "_append_all"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n }\n}\n```\n\n### `RelationRefValueConfig`\n\nConfiguration for the value to set on the related entity\'s attribute\n\n```ts\ntype RelationRefValueConfig = {\n attribute: string\n operation?: "_set" | "_append" | "_append_all"\n field?: string\n jsonataExpression?: string\n constant?: unknown\n}\n```\n\n### `RepeatableFieldType`\n\nType hint for repeatable fields that require special search handling.\nThese fields are stored as arrays of objects (e.g., email: [{ email: "value" }]).\n\n\n```ts\ntype RepeatableFieldType = "email" | "phone"\n```\n\n### `ReplayEventsRequest`\n\n```ts\ntype ReplayEventsRequest = {\n event_ids: string[]\n}\n```\n\n### `QueryEventsRequest`\n\n```ts\ntype QueryEventsRequest = {\n event_id?: string\n event_type?: "CREATE" | "UPDATE" | "DELETE"\n correlation_id?: string\n object_type?: string\n event_name?: string\n use_case_id?: string\n limit?: number\n cursor?: {\n event_time?: string // date-time\n event_id?: string\n }\n}\n```\n\n### `QueryInboundMonitoringEventsRequest`\n\n```ts\ntype QueryInboundMonitoringEventsRequest = {\n use_case_id?: string // uuid\n event_type?: "CREATE" | "UPDATE" | "DELETE" | "TRIGGER"\n sync_type?: "entity" | "meter_reading" | "webhook" | "api_deprecation"\n status?: "success" | "error" | "skipped" | "warning"\n error_category?: "validation" | "configuration" | "downstream_api" | "timeout" | "system"\n correlation_id?: string\n object_type?: string\n event_name?: string\n event_id?: string\n from_date?: string // date-time\n to_date?: string // date-time\n limit?: number\n cursor?: {\n completed_at?: string // date-time\n event_id?: string\n }\n}\n```\n\n### `QueryAccessLogsRequest`\n\n```ts\ntype QueryAccessLogsRequest = {\n token_id?: string\n service?: string\n method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD"\n path?: string\n status?: number\n from_date?: string // date-time\n to_date?: string // date-time\n limit?: number\n cursor?: {\n timestamp?: string // date-time\n request_id?: string\n }\n}\n```\n\n### `AccessLogEntry`\n\n```ts\ntype AccessLogEntry = {\n timestamp?: string // date-time\n environment?: string\n service?: string\n request_id?: string\n method?: string\n path?: string\n status?: number\n response_latency_ms?: number\n response_length?: number\n token_id?: string\n org_id?: string\n origin?: string\n source_ip?: string\n}\n```\n\n### `GetMonitoringStatsRequest`\n\n```ts\ntype GetMonitoringStatsRequest = {\n from_date?: string // date-time\n to_date?: string // date-time\n inbound_group_by?: "use_case_id" | "sync_type" | "status" | "error_category" | "object_type" | "event_name" | "date"[]\n outbound_group_by?: "event_name" | "status" | "webhook_config_id" | "date"[]\n}\n```\n\n### `GetMonitoringTimeSeriesRequest`\n\n```ts\ntype GetMonitoringTimeSeriesRequest = {\n from_date: string // date-time\n to_date?: string // date-time\n interval: "5m" | "10m" | "30m" | "1h" | "3h" | "1d"\n direction?: "inbound" | "outbound" | "both"\n}\n```\n\n### `TimeSeriesBucket`\n\n```ts\ntype TimeSeriesBucket = {\n timestamp: string // date-time\n inbound?: {\n success_count?: number\n error_count?: number\n warning_count?: number\n skipped_count?: number\n total_count?: number\n }\n outbound?: {\n success_count?: number\n error_count?: number\n pending_count?: number\n total_count?: number\n }\n}\n```\n\n### `QueryOutboundMonitoringEventsRequest`\n\n```ts\ntype QueryOutboundMonitoringEventsRequest = {\n event_name?: string\n status?: "succeeded" | "failed" | "pending"\n webhook_config_id?: string\n from_date?: string // date-time\n to_date?: string // date-time\n limit?: number\n cursor?: {\n created_at?: string // date-time\n event_id?: string\n }\n}\n```\n\n### `OutboundMonitoringEvent`\n\n```ts\ntype OutboundMonitoringEvent = {\n org_id: string\n event_id: string\n event_name: string\n status: "succeeded" | "failed" | "pending"\n url?: string\n http_method?: string\n http_response?: Record<string, unknown>\n webhook_config_id?: string\n metadata?: Record<string, unknown>\n execution_context?: Record<string, unknown>\n payload?: Record<string, unknown>\n created_at: string // date-time\n updated_at?: string // date-time\n}\n```\n\n### `MonitoringStats`\n\n```ts\ntype MonitoringStats = {\n inbound: {\n total_events: number\n total_correlations?: number\n success_count: number\n error_count: number\n skipped_count: number\n warning_count?: number\n success_rate?: number\n last_error_at?: string // date-time\n breakdown?: Record<string, unknown>[]\n }\n outbound: {\n total_events: number\n success_count: number\n error_count: number\n pending_count?: number\n success_rate?: number\n last_error_at?: string // date-time\n breakdown?: Record<string, unknown>[]\n }\n}\n```\n\n### `InboundMonitoringEvent`\n\n```ts\ntype InboundMonitoringEvent = {\n org_id: string\n event_id: string\n correlation_id?: string\n integration_id?: string\n use_case_id?: string\n event_type?: "CREATE" | "UPDATE" | "DELETE" | "TRIGGER"\n object_type: string\n sync_type: "entity" | "meter_reading" | "webhook" | "api_deprecation"\n status: "success" | "error" | "skipped" | "warning"\n error_code?: string\n error_message?: string\n error_category?: "validation" | "configuration" | "downstream_api" | "timeout" | "system"\n processing_duration_ms?: number\n received_at: string // date-time\n completed_at: string // date-time\n}\n```\n\n### `QueryMonitoringEventsV2Request`\n\n```ts\ntype QueryMonitoringEventsV2Request = {\n use_case_id?: string\n use_case_type?: "inbound" | "outbound" | "file_proxy" | "managed_call" | "secure_proxy"\n level?: "success" | "error" | "skipped" | "warning"\n code?: string\n event_id?: string\n correlation_id?: string\n from_date?: string // date-time\n to_date?: string // date-time\n limit?: number\n cursor?: {\n created_at?: string // date-time\n id?: string // uuid\n }\n}\n```\n\n### `MonitoringEventV2`\n\n```ts\ntype MonitoringEventV2 = {\n id: string // uuid\n org_id: string\n integration_id: string\n event_id: string\n correlation_id?: string\n use_case_id?: string\n use_case_type: "inbound" | "outbound" | "file_proxy" | "managed_call" | "secure_proxy" | ""\n level: "success" | "error" | "skipped" | "warning"\n code?: string\n message?: string\n detail?: Record<string, unknown>\n created_at: string // date-time\n}\n```\n\n### `GetMonitoringStatsV2Request`\n\n```ts\ntype GetMonitoringStatsV2Request = {\n from_date?: string // date-time\n to_date?: string // date-time\n use_case_type?: "inbound" | "outbound" | "file_proxy" | "managed_call" | "secure_proxy"\n group_by?: "use_case_id" | "use_case_type" | "level" | "code" | "date"\n source?: "monitoring" | "incoming"\n}\n```\n\n### `MonitoringStatsV2`\n\n```ts\ntype MonitoringStatsV2 = {\n total_events: number\n success_count: number\n error_count: number\n warning_count: number\n skipped_count: number\n ack_timeout_count?: number\n success_rate?: number\n last_error_at?: string // date-time\n breakdown?: Record<string, unknown>[]\n}\n```\n\n### `GetMonitoringTimeSeriesV2Request`\n\n```ts\ntype GetMonitoringTimeSeriesV2Request = {\n from_date: string // date-time\n to_date?: string // date-time\n interval: "5m" | "10m" | "30m" | "1h" | "3h" | "1d"\n use_case_type?: "inbound" | "outbound" | "file_proxy" | "managed_call" | "secure_proxy"\n group_by?: "use_case_type" | "use_case"\n}\n```\n\n### `TimeSeriesBreakdownItemV2`\n\n```ts\ntype TimeSeriesBreakdownItemV2 = {\n use_case_type?: "inbound" | "outbound" | "file_proxy" | "managed_call" | "secure_proxy"\n use_case_id?: string\n success_count: number\n error_count: number\n warning_count: number\n skipped_count: number\n total_count: number\n}\n```\n\n### `TimeSeriesBucketV2`\n\n```ts\ntype TimeSeriesBucketV2 = {\n timestamp: string // date-time\n success_count?: number\n error_count?: number\n warning_count?: number\n skipped_count?: number\n total_count: number\n breakdown?: Array<{\n use_case_type?: "inbound" | "outbound" | "file_proxy" | "managed_call" | "secure_proxy"\n use_case_id?: string\n success_count: number\n error_count: number\n warning_count: number\n skipped_count: number\n total_count: number\n }>\n}\n```\n';
5
+ export {
6
+ integration_toolkit_default as default
7
+ };
@@ -794,6 +794,11 @@ declare namespace Components {
794
794
  * evt-2025-05-01-12345-create-bp
795
795
  */
796
796
  deduplication_id?: string; // ^[a-zA-Z0-9_-]+$
797
+ /**
798
+ * 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.
799
+ *
800
+ */
801
+ use_case_id?: string | null;
797
802
  }
798
803
  export type ErpEventV3 = {
799
804
  /**
@@ -1378,6 +1383,11 @@ declare namespace Components {
1378
1383
  * Field to group the breakdown by
1379
1384
  */
1380
1385
  group_by?: "use_case_id" | "use_case_type" | "level" | "code" | "date";
1386
+ /**
1387
+ * Data source for the stats. "monitoring" (default) aggregates processed events from erp_monitoring_v2 — this counts every event produced throughout the processing tree (fan-out children, post-actions, relation resolutions, etc.). "incoming" counts only the initial inbound events actually received (distinct event_id from erp_incoming_events); only group_by=use_case_id is supported and status/level breakdown is not available for this source (success/error/warning/skipped counts are returned as 0).
1388
+ *
1389
+ */
1390
+ source?: "monitoring" | "incoming";
1381
1391
  }
1382
1392
  export interface GetMonitoringTimeSeriesRequest {
1383
1393
  /**
@@ -2926,6 +2936,10 @@ declare namespace Components {
2926
2936
  * Filter by event name (alias for object_type)
2927
2937
  */
2928
2938
  event_name?: string;
2939
+ /**
2940
+ * Filter by use case ID
2941
+ */
2942
+ use_case_id?: string;
2929
2943
  /**
2930
2944
  * Maximum number of results to return
2931
2945
  * example:
@@ -794,6 +794,11 @@ declare namespace Components {
794
794
  * evt-2025-05-01-12345-create-bp
795
795
  */
796
796
  deduplication_id?: string; // ^[a-zA-Z0-9_-]+$
797
+ /**
798
+ * 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.
799
+ *
800
+ */
801
+ use_case_id?: string | null;
797
802
  }
798
803
  export type ErpEventV3 = {
799
804
  /**
@@ -1378,6 +1383,11 @@ declare namespace Components {
1378
1383
  * Field to group the breakdown by
1379
1384
  */
1380
1385
  group_by?: "use_case_id" | "use_case_type" | "level" | "code" | "date";
1386
+ /**
1387
+ * Data source for the stats. "monitoring" (default) aggregates processed events from erp_monitoring_v2 — this counts every event produced throughout the processing tree (fan-out children, post-actions, relation resolutions, etc.). "incoming" counts only the initial inbound events actually received (distinct event_id from erp_incoming_events); only group_by=use_case_id is supported and status/level breakdown is not available for this source (success/error/warning/skipped counts are returned as 0).
1388
+ *
1389
+ */
1390
+ source?: "monitoring" | "incoming";
1381
1391
  }
1382
1392
  export interface GetMonitoringTimeSeriesRequest {
1383
1393
  /**
@@ -2926,6 +2936,10 @@ declare namespace Components {
2926
2936
  * Filter by event name (alias for object_type)
2927
2937
  */
2928
2938
  event_name?: string;
2939
+ /**
2940
+ * Filter by use case ID
2941
+ */
2942
+ use_case_id?: string;
2929
2943
  /**
2930
2944
  * Maximum number of results to return
2931
2945
  * example:
File without changes
@@ -874,6 +874,7 @@ const { data } = await client.queryEvents(
874
874
  correlation_id: 'string',
875
875
  object_type: 'string',
876
876
  event_name: 'string',
877
+ use_case_id: 'string',
877
878
  limit: 25,
878
879
  cursor: {
879
880
  event_time: '2025-10-31T12:34:56Z',
@@ -895,7 +896,8 @@ const { data } = await client.queryEvents(
895
896
  "timestamp": "1970-01-01T00:00:00.000Z",
896
897
  "format": "json",
897
898
  "payload": "string",
898
- "deduplication_id": "evt-2025-05-01-12345-create-bp"
899
+ "deduplication_id": "evt-2025-05-01-12345-create-bp",
900
+ "use_case_id": "string"
899
901
  }
900
902
  ],
901
903
  "next_cursor": {
@@ -2274,7 +2276,8 @@ const { data } = await client.getMonitoringStatsV2(
2274
2276
  from_date: '2025-01-01T00:00:00Z',
2275
2277
  to_date: '2025-01-31T23:59:59Z',
2276
2278
  use_case_type: 'inbound',
2277
- group_by: 'use_case_id'
2279
+ group_by: 'use_case_id',
2280
+ source: 'monitoring'
2278
2281
  },
2279
2282
  )
2280
2283
  ```
@@ -2612,6 +2615,7 @@ type ErpEvent = {
2612
2615
  format: "json" | "xml"
2613
2616
  payload: string | Record<string, unknown>
2614
2617
  deduplication_id?: string
2618
+ use_case_id?: string
2615
2619
  }
2616
2620
  ```
2617
2621
 
@@ -2628,6 +2632,7 @@ type ErpUpdatesEventsV2Request = {
2628
2632
  format: "json" | "xml"
2629
2633
  payload: string | Record<string, unknown>
2630
2634
  deduplication_id?: string
2635
+ use_case_id?: string
2631
2636
  }>
2632
2637
  }
2633
2638
  ```
@@ -6049,6 +6054,7 @@ type QueryEventsRequest = {
6049
6054
  correlation_id?: string
6050
6055
  object_type?: string
6051
6056
  event_name?: string
6057
+ use_case_id?: string
6052
6058
  limit?: number
6053
6059
  cursor?: {
6054
6060
  event_time?: string // date-time
@@ -6295,6 +6301,7 @@ type GetMonitoringStatsV2Request = {
6295
6301
  to_date?: string // date-time
6296
6302
  use_case_type?: "inbound" | "outbound" | "file_proxy" | "managed_call" | "secure_proxy"
6297
6303
  group_by?: "use_case_id" | "use_case_type" | "level" | "code" | "date"
6304
+ source?: "monitoring" | "incoming"
6298
6305
  }
6299
6306
  ```
6300
6307
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/sdk",
3
- "version": "2.7.8",
3
+ "version": "2.7.10",
4
4
  "description": "JavaScript/TypeScript SDK for epilot APIs",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -316,6 +316,16 @@
316
316
  },
317
317
  "./workflow-definition/openapi.json": "./definitions/workflow-definition.json"
318
318
  },
319
+ "scripts": {
320
+ "generate": "tsx ../../scripts/generate-sdk-v2.ts && pnpm lint:fix",
321
+ "build": "tsup",
322
+ "build:watch": "tsup --watch",
323
+ "test": "vitest run",
324
+ "test:watch": "vitest",
325
+ "lint": "biome check src",
326
+ "lint:fix": "biome check src --fix",
327
+ "prepublishOnly": "npm run build"
328
+ },
319
329
  "keywords": [
320
330
  "epilot",
321
331
  "sdk",
@@ -506,14 +516,5 @@
506
516
  "./dist/apis/workflow-definition.d.ts"
507
517
  ]
508
518
  }
509
- },
510
- "scripts": {
511
- "generate": "tsx ../../scripts/generate-sdk-v2.ts && pnpm lint:fix",
512
- "build": "tsup",
513
- "build:watch": "tsup --watch",
514
- "test": "vitest run",
515
- "test:watch": "vitest",
516
- "lint": "biome check src",
517
- "lint:fix": "biome check src --fix"
518
519
  }
519
- }
520
+ }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2026 epilot GmbH
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.