@epilot/cli 0.1.10 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -21
- package/definitions/app.json +56 -6
- package/definitions/automation.json +214 -1
- package/definitions/blueprint-manifest.json +1303 -60
- package/definitions/customer-portal.json +757 -81
- package/definitions/data-governance.json +1126 -0
- package/definitions/deduplication.json +135 -4
- package/definitions/design.json +103 -57
- package/definitions/email-settings.json +150 -0
- package/definitions/email-template.json +25 -3
- package/definitions/entity.json +405 -5
- package/definitions/erp-integration.json +3140 -1049
- package/definitions/integration-toolkit.json +7998 -0
- package/definitions/journey.json +18 -1
- package/definitions/kanban.json +25 -1
- package/definitions/message.json +202 -0
- package/definitions/organization.json +35 -1
- package/definitions/partner-directory.json +795 -229
- package/definitions/permissions.json +41 -6
- package/definitions/sharing.json +956 -0
- package/definitions/template-variables.json +12 -4
- package/definitions/webhooks.json +111 -2
- package/definitions/workflow-definition.json +87 -202
- package/definitions/workflow.json +142 -0
- package/dist/{access-token-PTTCRMGK.js → access-token-CIM4RLBP.js} +1 -1
- package/dist/add-component-AAVQVPKK.js +296 -0
- package/dist/{address-2FDPEPR6.js → address-EDRTUWTP.js} +1 -1
- package/dist/{address-suggestions-XBEK5DDQ.js → address-suggestions-S5WEST2N.js} +1 -1
- package/dist/{ai-agents-ZY5BNVTN.js → ai-agents-RXDDJDAR.js} +1 -1
- package/dist/{app-IT5FWGUK.js → api-36XROHLK.js} +5 -5
- package/dist/app-I3XXHZLD.js +24 -0
- package/dist/{audit-logs-FB4TE4TI.js → audit-logs-PXGDGJGV.js} +1 -1
- package/dist/{automation-JE5LDKJM.js → automation-LS6MVLP2.js} +1 -1
- package/dist/{billing-GOFCP5T3.js → billing-KVYFUKZK.js} +1 -1
- package/dist/bin/epilot.js +53 -52
- package/dist/{blueprint-manifest-WJIQKFYK.js → blueprint-manifest-W4ZGJD2Z.js} +1 -1
- package/dist/{chunk-P5IZZW4Y.js → chunk-BYAEI4Z2.js} +1 -1
- package/dist/chunk-CEP7S7X3.js +366 -0
- package/dist/{chunk-MNSG22DM.js → chunk-F6KWKTQJ.js} +124 -63
- package/dist/{completion-HZNPHJI4.js → completion-QP4IYMVI.js} +1 -1
- package/dist/{consent-DSMWWHUL.js → consent-M4QB2HPM.js} +1 -1
- package/dist/{customer-portal-IJYTJYUZ.js → customer-portal-SVO2YCXA.js} +1 -1
- package/dist/{dashboard-DOAX6XDG.js → dashboard-CYCXIX74.js} +1 -1
- package/dist/{data-management-C4JPPUPD.js → data-governance-DJAAIE6F.js} +6 -6
- package/dist/{deduplication-7OGLZLAC.js → deduplication-M3KEVJRG.js} +1 -1
- package/dist/deploy-4XDFWOEV.js +214 -0
- package/dist/{design-3CAYTWFY.js → design-UVJJ2KO2.js} +1 -1
- package/dist/{document-NT5JOJQV.js → document-5HB632XE.js} +1 -1
- package/dist/{email-settings-2M3WJTQS.js → email-settings-H7HQTDYE.js} +1 -1
- package/dist/{email-template-F4PLBPPC.js → email-template-2DHZ3VKF.js} +1 -1
- package/dist/{entity-32LKMZAU.js → entity-HED6QHG7.js} +1 -1
- package/dist/{entity-mapping-OBCZDYQJ.js → entity-mapping-QP22B65Z.js} +1 -1
- package/dist/{environments-H3TBCDQE.js → environments-6LLEIGWV.js} +1 -1
- package/dist/{event-catalog-NVAPTZ4M.js → event-catalog-2ZCZTATY.js} +1 -1
- package/dist/export-JA5N4JCJ.js +44 -0
- package/dist/{file-US2HR4SV.js → file-R6IIXOIZ.js} +1 -1
- package/dist/{iban-7QUCOULB.js → iban-EQD2VROZ.js} +1 -1
- package/dist/init-5KGNJEWF.js +524 -0
- package/dist/integration-toolkit-4CLQDSK7.js +54 -0
- package/dist/{journey-E5T4BZZX.js → journey-V7X2KUKH.js} +1 -1
- package/dist/{kanban-7UHU5VE6.js → kanban-EPI6C3FR.js} +1 -1
- package/dist/{message-7KY33RJE.js → message-477EJ5JO.js} +1 -1
- package/dist/{metering-P7BZGMY7.js → metering-5EAEKRSL.js} +1 -1
- package/dist/{notes-TNJ7FPA3.js → notes-CVXNRULU.js} +1 -1
- package/dist/{notification-6KXEFVO5.js → notification-6HXS76XP.js} +1 -1
- package/dist/{organization-FF4Y3PBO.js → organization-O33CZQKD.js} +1 -1
- package/dist/{partner-directory-VH2SBAS2.js → partner-directory-NZWGCKSB.js} +2 -2
- package/dist/{permissions-KENZ4HNY.js → permissions-6QEOBJ6M.js} +1 -1
- package/dist/{pricing-P6QZ77VJ.js → pricing-KNYSULCW.js} +1 -1
- package/dist/{pricing-tier-2IRJMTM6.js → pricing-tier-OCHP6SHT.js} +1 -1
- package/dist/{purpose-IHROR6LQ.js → purpose-NGM42XWB.js} +1 -1
- package/dist/remove-component-LXSRR23E.js +89 -0
- package/dist/review-HFOO3NXE.js +69 -0
- package/dist/{sandbox-62XQPOU6.js → sandbox-YX3VVAQG.js} +1 -1
- package/dist/sharing-X5U53KSU.js +54 -0
- package/dist/{submission-PUWGOYQB.js → submission-YOWVSZNA.js} +1 -1
- package/dist/{targeting-QB3DFYNI.js → targeting-BMZCOG72.js} +1 -1
- package/dist/{template-variables-IPKRUJ4E.js → template-variables-YTABZL3E.js} +1 -1
- package/dist/{upgrade-TNDH4WGQ.js → upgrade-SYSSIAQC.js} +1 -1
- package/dist/{user-2CP75TFC.js → user-3N5ZOUYS.js} +1 -1
- package/dist/validate-TUMXW56Y.js +53 -0
- package/dist/{validation-rules-GNI4EEG5.js → validation-rules-QVS7LKEP.js} +1 -1
- package/dist/versions-ZTWQAGXY.js +109 -0
- package/dist/{webhooks-2OWUX7UL.js → webhooks-6WMWACOW.js} +1 -1
- package/dist/{workflow-WSLERVJI.js → workflow-ZO2MKDBS.js} +1 -1
- package/dist/{workflow-definition-FP3WKHGG.js → workflow-definition-RCWKIPYI.js} +1 -1
- package/package.json +2 -1
- package/definitions/data-management.json +0 -962
- package/dist/erp-integration-UW6H55EK.js +0 -54
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.0.3",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "ERP Integration API",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.58.0",
|
|
6
6
|
"description": "API for integrating with ERP systems, handling tracking acknowledgments, triggering ERP processes, and processing ERP updates."
|
|
7
7
|
},
|
|
8
8
|
"tags": [
|
|
@@ -21,6 +21,14 @@
|
|
|
21
21
|
{
|
|
22
22
|
"name": "monitoring",
|
|
23
23
|
"description": "Monitoring and analytics endpoints"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "managed-call",
|
|
27
|
+
"description": "Managed call endpoints for synchronous external API calls"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "proxy",
|
|
31
|
+
"description": "Secure proxy endpoints"
|
|
24
32
|
}
|
|
25
33
|
],
|
|
26
34
|
"servers": [
|
|
@@ -2248,944 +2256,2282 @@
|
|
|
2248
2256
|
}
|
|
2249
2257
|
}
|
|
2250
2258
|
}
|
|
2251
|
-
}
|
|
2252
|
-
},
|
|
2253
|
-
"components": {
|
|
2254
|
-
"securitySchemes": {
|
|
2255
|
-
"EpilotAuth": {
|
|
2256
|
-
"type": "http",
|
|
2257
|
-
"scheme": "bearer",
|
|
2258
|
-
"description": "Authorization header with epilot OAuth2 bearer token",
|
|
2259
|
-
"bearerFormat": "JWT"
|
|
2260
|
-
}
|
|
2261
2259
|
},
|
|
2262
|
-
"
|
|
2263
|
-
"
|
|
2264
|
-
"
|
|
2265
|
-
"
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2260
|
+
"/v2/integrations/{integrationId}/monitoring/events": {
|
|
2261
|
+
"post": {
|
|
2262
|
+
"operationId": "queryMonitoringEventsV2",
|
|
2263
|
+
"summary": "queryMonitoringEventsV2",
|
|
2264
|
+
"description": "Query 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-events endpoints.\n",
|
|
2265
|
+
"tags": [
|
|
2266
|
+
"monitoring",
|
|
2267
|
+
"integrations"
|
|
2268
|
+
],
|
|
2269
|
+
"parameters": [
|
|
2270
|
+
{
|
|
2271
|
+
"name": "integrationId",
|
|
2272
|
+
"in": "path",
|
|
2273
|
+
"required": true,
|
|
2274
|
+
"description": "The integration ID",
|
|
2275
|
+
"schema": {
|
|
2276
|
+
"type": "string",
|
|
2277
|
+
"format": "uuid"
|
|
2278
|
+
}
|
|
2273
2279
|
}
|
|
2274
|
-
}
|
|
2275
|
-
},
|
|
2276
|
-
"ErpEvent": {
|
|
2277
|
-
"type": "object",
|
|
2278
|
-
"required": [
|
|
2279
|
-
"event_type",
|
|
2280
|
-
"object_type",
|
|
2281
|
-
"timestamp",
|
|
2282
|
-
"format",
|
|
2283
|
-
"payload"
|
|
2284
2280
|
],
|
|
2285
|
-
"
|
|
2286
|
-
"
|
|
2287
|
-
|
|
2288
|
-
"
|
|
2289
|
-
"
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2281
|
+
"requestBody": {
|
|
2282
|
+
"required": true,
|
|
2283
|
+
"content": {
|
|
2284
|
+
"application/json": {
|
|
2285
|
+
"schema": {
|
|
2286
|
+
"$ref": "#/components/schemas/QueryMonitoringEventsV2Request"
|
|
2287
|
+
}
|
|
2288
|
+
}
|
|
2289
|
+
}
|
|
2290
|
+
},
|
|
2291
|
+
"responses": {
|
|
2292
|
+
"200": {
|
|
2293
|
+
"$ref": "#/components/responses/QueryMonitoringEventsV2Response"
|
|
2294
2294
|
},
|
|
2295
|
-
"
|
|
2296
|
-
"
|
|
2297
|
-
"description": "Type of the object being updated (business_partner, contract_account, etc.). Corresponds to \"Event Name\" from the integration UI."
|
|
2295
|
+
"400": {
|
|
2296
|
+
"$ref": "#/components/responses/BadRequest"
|
|
2298
2297
|
},
|
|
2299
|
-
"
|
|
2300
|
-
"
|
|
2301
|
-
"format": "date-time",
|
|
2302
|
-
"description": "Timestamp when the event occurred"
|
|
2298
|
+
"401": {
|
|
2299
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
2303
2300
|
},
|
|
2304
|
-
"
|
|
2305
|
-
"
|
|
2306
|
-
"enum": [
|
|
2307
|
-
"json",
|
|
2308
|
-
"xml"
|
|
2309
|
-
],
|
|
2310
|
-
"default": "json",
|
|
2311
|
-
"description": "Format of the payload data"
|
|
2301
|
+
"404": {
|
|
2302
|
+
"$ref": "#/components/responses/NotFound"
|
|
2312
2303
|
},
|
|
2313
|
-
"
|
|
2314
|
-
"
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2304
|
+
"500": {
|
|
2305
|
+
"$ref": "#/components/responses/InternalServerError"
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2308
|
+
}
|
|
2309
|
+
},
|
|
2310
|
+
"/v2/integrations/{integrationId}/monitoring/stats": {
|
|
2311
|
+
"post": {
|
|
2312
|
+
"operationId": "getMonitoringStatsV2",
|
|
2313
|
+
"summary": "getMonitoringStatsV2",
|
|
2314
|
+
"description": "Get aggregated statistics from the unified erp_monitoring_v2 table.\nReturns combined metrics for all event types with optional breakdowns.\n",
|
|
2315
|
+
"tags": [
|
|
2316
|
+
"monitoring",
|
|
2317
|
+
"integrations"
|
|
2318
|
+
],
|
|
2319
|
+
"parameters": [
|
|
2320
|
+
{
|
|
2321
|
+
"name": "integrationId",
|
|
2322
|
+
"in": "path",
|
|
2323
|
+
"required": true,
|
|
2324
|
+
"description": "The integration ID",
|
|
2325
|
+
"schema": {
|
|
2326
|
+
"type": "string",
|
|
2327
|
+
"format": "uuid"
|
|
2328
|
+
}
|
|
2329
|
+
}
|
|
2330
|
+
],
|
|
2331
|
+
"requestBody": {
|
|
2332
|
+
"required": true,
|
|
2333
|
+
"content": {
|
|
2334
|
+
"application/json": {
|
|
2335
|
+
"schema": {
|
|
2336
|
+
"$ref": "#/components/schemas/GetMonitoringStatsV2Request"
|
|
2325
2337
|
}
|
|
2326
|
-
|
|
2327
|
-
|
|
2338
|
+
}
|
|
2339
|
+
}
|
|
2340
|
+
},
|
|
2341
|
+
"responses": {
|
|
2342
|
+
"200": {
|
|
2343
|
+
"$ref": "#/components/responses/GetMonitoringStatsV2Response"
|
|
2328
2344
|
},
|
|
2329
|
-
"
|
|
2330
|
-
"
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
"
|
|
2334
|
-
|
|
2335
|
-
|
|
2345
|
+
"400": {
|
|
2346
|
+
"$ref": "#/components/responses/BadRequest"
|
|
2347
|
+
},
|
|
2348
|
+
"401": {
|
|
2349
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
2350
|
+
},
|
|
2351
|
+
"404": {
|
|
2352
|
+
"$ref": "#/components/responses/NotFound"
|
|
2353
|
+
},
|
|
2354
|
+
"500": {
|
|
2355
|
+
"$ref": "#/components/responses/InternalServerError"
|
|
2336
2356
|
}
|
|
2337
2357
|
}
|
|
2338
|
-
}
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2358
|
+
}
|
|
2359
|
+
},
|
|
2360
|
+
"/v2/integrations/{integrationId}/monitoring/time-series": {
|
|
2361
|
+
"post": {
|
|
2362
|
+
"operationId": "getMonitoringTimeSeriesV2",
|
|
2363
|
+
"summary": "getMonitoringTimeSeriesV2",
|
|
2364
|
+
"description": "Get time-series aggregated event counts from the unified erp_monitoring_v2 table.\nReturns bucketed counts for chart rendering.\n",
|
|
2365
|
+
"tags": [
|
|
2366
|
+
"monitoring",
|
|
2367
|
+
"integrations"
|
|
2344
2368
|
],
|
|
2345
|
-
"
|
|
2346
|
-
|
|
2347
|
-
"
|
|
2348
|
-
"
|
|
2349
|
-
"
|
|
2369
|
+
"parameters": [
|
|
2370
|
+
{
|
|
2371
|
+
"name": "integrationId",
|
|
2372
|
+
"in": "path",
|
|
2373
|
+
"required": true,
|
|
2374
|
+
"description": "The integration ID",
|
|
2375
|
+
"schema": {
|
|
2376
|
+
"type": "string",
|
|
2377
|
+
"format": "uuid"
|
|
2378
|
+
}
|
|
2379
|
+
}
|
|
2380
|
+
],
|
|
2381
|
+
"requestBody": {
|
|
2382
|
+
"required": true,
|
|
2383
|
+
"content": {
|
|
2384
|
+
"application/json": {
|
|
2385
|
+
"schema": {
|
|
2386
|
+
"$ref": "#/components/schemas/GetMonitoringTimeSeriesV2Request"
|
|
2387
|
+
}
|
|
2388
|
+
}
|
|
2389
|
+
}
|
|
2390
|
+
},
|
|
2391
|
+
"responses": {
|
|
2392
|
+
"200": {
|
|
2393
|
+
"$ref": "#/components/responses/GetMonitoringTimeSeriesV2Response"
|
|
2350
2394
|
},
|
|
2351
|
-
"
|
|
2352
|
-
"
|
|
2353
|
-
"description": "Optional ID that identifies the specific request for debugging purposes"
|
|
2395
|
+
"400": {
|
|
2396
|
+
"$ref": "#/components/responses/BadRequest"
|
|
2354
2397
|
},
|
|
2355
|
-
"
|
|
2356
|
-
"
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2398
|
+
"401": {
|
|
2399
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
2400
|
+
},
|
|
2401
|
+
"404": {
|
|
2402
|
+
"$ref": "#/components/responses/NotFound"
|
|
2403
|
+
},
|
|
2404
|
+
"500": {
|
|
2405
|
+
"$ref": "#/components/responses/InternalServerError"
|
|
2361
2406
|
}
|
|
2362
2407
|
}
|
|
2363
|
-
}
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2408
|
+
}
|
|
2409
|
+
},
|
|
2410
|
+
"/v2/integrations/{integrationId}/monitoring/events/{eventId}/associated": {
|
|
2411
|
+
"get": {
|
|
2412
|
+
"operationId": "getAssociatedMonitoringEvents",
|
|
2413
|
+
"summary": "getAssociatedMonitoringEvents",
|
|
2414
|
+
"description": "Returns 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 trace/timeline.\n",
|
|
2415
|
+
"tags": [
|
|
2416
|
+
"monitoring",
|
|
2417
|
+
"integrations"
|
|
2370
2418
|
],
|
|
2371
|
-
"
|
|
2419
|
+
"parameters": [
|
|
2372
2420
|
{
|
|
2373
|
-
"
|
|
2374
|
-
|
|
2375
|
-
|
|
2421
|
+
"name": "integrationId",
|
|
2422
|
+
"in": "path",
|
|
2423
|
+
"required": true,
|
|
2424
|
+
"description": "The integration ID",
|
|
2425
|
+
"schema": {
|
|
2426
|
+
"type": "string",
|
|
2427
|
+
"format": "uuid"
|
|
2428
|
+
}
|
|
2376
2429
|
},
|
|
2377
2430
|
{
|
|
2378
|
-
"
|
|
2379
|
-
|
|
2380
|
-
|
|
2431
|
+
"name": "eventId",
|
|
2432
|
+
"in": "path",
|
|
2433
|
+
"required": true,
|
|
2434
|
+
"description": "The event ID to get associated events for",
|
|
2435
|
+
"schema": {
|
|
2436
|
+
"type": "string"
|
|
2437
|
+
}
|
|
2381
2438
|
}
|
|
2382
2439
|
],
|
|
2383
|
-
"
|
|
2384
|
-
"
|
|
2385
|
-
"
|
|
2386
|
-
"description": "Event name from integration mapping (e.g., business_partner, contract_account). Required when use_case_slug is not provided.\n"
|
|
2440
|
+
"responses": {
|
|
2441
|
+
"200": {
|
|
2442
|
+
"$ref": "#/components/responses/GetAssociatedMonitoringEventsResponse"
|
|
2387
2443
|
},
|
|
2388
|
-
"
|
|
2389
|
-
"
|
|
2444
|
+
"400": {
|
|
2445
|
+
"$ref": "#/components/responses/BadRequest"
|
|
2446
|
+
},
|
|
2447
|
+
"401": {
|
|
2448
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
2449
|
+
},
|
|
2450
|
+
"500": {
|
|
2451
|
+
"$ref": "#/components/responses/InternalServerError"
|
|
2452
|
+
}
|
|
2453
|
+
}
|
|
2454
|
+
}
|
|
2455
|
+
},
|
|
2456
|
+
"/v1/integrations/secure-proxies": {
|
|
2457
|
+
"get": {
|
|
2458
|
+
"operationId": "listSecureProxies",
|
|
2459
|
+
"summary": "List all secure proxy use cases",
|
|
2460
|
+
"description": "Lists all secure_proxy use cases across all integrations for the authenticated organization.\nReturns minimal data suitable for dropdowns and selection UIs.\n",
|
|
2461
|
+
"tags": [
|
|
2462
|
+
"integrations"
|
|
2463
|
+
],
|
|
2464
|
+
"security": [
|
|
2465
|
+
{
|
|
2466
|
+
"EpilotAuth": []
|
|
2467
|
+
}
|
|
2468
|
+
],
|
|
2469
|
+
"responses": {
|
|
2470
|
+
"200": {
|
|
2471
|
+
"description": "Successfully retrieved secure proxy use cases",
|
|
2472
|
+
"content": {
|
|
2473
|
+
"application/json": {
|
|
2474
|
+
"schema": {
|
|
2475
|
+
"type": "object",
|
|
2476
|
+
"required": [
|
|
2477
|
+
"secure_proxies"
|
|
2478
|
+
],
|
|
2479
|
+
"properties": {
|
|
2480
|
+
"secure_proxies": {
|
|
2481
|
+
"type": "array",
|
|
2482
|
+
"items": {
|
|
2483
|
+
"$ref": "#/components/schemas/SecureProxySummary"
|
|
2484
|
+
}
|
|
2485
|
+
}
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2488
|
+
}
|
|
2489
|
+
}
|
|
2490
|
+
},
|
|
2491
|
+
"401": {
|
|
2492
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
2493
|
+
},
|
|
2494
|
+
"500": {
|
|
2495
|
+
"$ref": "#/components/responses/InternalServerError"
|
|
2496
|
+
}
|
|
2497
|
+
}
|
|
2498
|
+
}
|
|
2499
|
+
},
|
|
2500
|
+
"/v1/secure-proxy": {
|
|
2501
|
+
"post": {
|
|
2502
|
+
"operationId": "secureProxy",
|
|
2503
|
+
"summary": "Proxy HTTP request through secure VPC",
|
|
2504
|
+
"description": "Routes an HTTP request through a VPC with either static IP egress or VPN secure link access.\nThe VPC mode is determined by the referenced secure_proxy use case configuration.\nFor secure_link mode, the target URL must match the use case's allowed_domains whitelist.\n",
|
|
2505
|
+
"tags": [
|
|
2506
|
+
"proxy"
|
|
2507
|
+
],
|
|
2508
|
+
"security": [
|
|
2509
|
+
{
|
|
2510
|
+
"EpilotAuth": []
|
|
2511
|
+
}
|
|
2512
|
+
],
|
|
2513
|
+
"requestBody": {
|
|
2514
|
+
"required": true,
|
|
2515
|
+
"content": {
|
|
2516
|
+
"application/json": {
|
|
2517
|
+
"schema": {
|
|
2518
|
+
"$ref": "#/components/schemas/SecureProxyRequest"
|
|
2519
|
+
}
|
|
2520
|
+
}
|
|
2521
|
+
}
|
|
2522
|
+
},
|
|
2523
|
+
"responses": {
|
|
2524
|
+
"200": {
|
|
2525
|
+
"description": "Proxied response from the target URL",
|
|
2526
|
+
"content": {
|
|
2527
|
+
"application/json": {
|
|
2528
|
+
"schema": {
|
|
2529
|
+
"$ref": "#/components/schemas/SecureProxyResponse"
|
|
2530
|
+
}
|
|
2531
|
+
}
|
|
2532
|
+
}
|
|
2533
|
+
},
|
|
2534
|
+
"400": {
|
|
2535
|
+
"$ref": "#/components/responses/BadRequest"
|
|
2536
|
+
},
|
|
2537
|
+
"401": {
|
|
2538
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
2539
|
+
},
|
|
2540
|
+
"403": {
|
|
2541
|
+
"description": "Forbidden - insufficient permissions or target domain not whitelisted",
|
|
2542
|
+
"content": {
|
|
2543
|
+
"application/json": {
|
|
2544
|
+
"schema": {
|
|
2545
|
+
"$ref": "#/components/schemas/ErrorResponseBase"
|
|
2546
|
+
}
|
|
2547
|
+
}
|
|
2548
|
+
}
|
|
2549
|
+
},
|
|
2550
|
+
"502": {
|
|
2551
|
+
"description": "Upstream error from the proxied target",
|
|
2552
|
+
"content": {
|
|
2553
|
+
"application/json": {
|
|
2554
|
+
"schema": {
|
|
2555
|
+
"$ref": "#/components/schemas/ErrorResponseBase"
|
|
2556
|
+
}
|
|
2557
|
+
}
|
|
2558
|
+
}
|
|
2559
|
+
},
|
|
2560
|
+
"503": {
|
|
2561
|
+
"description": "VPC proxy not available for the requested mode",
|
|
2562
|
+
"content": {
|
|
2563
|
+
"application/json": {
|
|
2564
|
+
"schema": {
|
|
2565
|
+
"$ref": "#/components/schemas/ErrorResponseBase"
|
|
2566
|
+
}
|
|
2567
|
+
}
|
|
2568
|
+
}
|
|
2569
|
+
},
|
|
2570
|
+
"504": {
|
|
2571
|
+
"description": "Upstream timeout",
|
|
2572
|
+
"content": {
|
|
2573
|
+
"application/json": {
|
|
2574
|
+
"schema": {
|
|
2575
|
+
"$ref": "#/components/schemas/ErrorResponseBase"
|
|
2576
|
+
}
|
|
2577
|
+
}
|
|
2578
|
+
}
|
|
2579
|
+
}
|
|
2580
|
+
}
|
|
2581
|
+
}
|
|
2582
|
+
},
|
|
2583
|
+
"/v1/managed-call/{slug}/execute": {
|
|
2584
|
+
"post": {
|
|
2585
|
+
"operationId": "managedCallExecute",
|
|
2586
|
+
"summary": "Execute a managed call operation",
|
|
2587
|
+
"description": "Execute a managed call operation synchronously. The slug in the path acts as the RPC method name.\nCalls an external partner API with JSONata mapping on both request and response.\n",
|
|
2588
|
+
"tags": [
|
|
2589
|
+
"managed-call"
|
|
2590
|
+
],
|
|
2591
|
+
"security": [
|
|
2592
|
+
{
|
|
2593
|
+
"EpilotAuth": []
|
|
2594
|
+
}
|
|
2595
|
+
],
|
|
2596
|
+
"parameters": [
|
|
2597
|
+
{
|
|
2598
|
+
"name": "slug",
|
|
2599
|
+
"in": "path",
|
|
2600
|
+
"required": true,
|
|
2601
|
+
"schema": {
|
|
2602
|
+
"type": "string",
|
|
2603
|
+
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
2604
|
+
},
|
|
2605
|
+
"description": "Use case slug (acts as the RPC method name)"
|
|
2606
|
+
}
|
|
2607
|
+
],
|
|
2608
|
+
"requestBody": {
|
|
2609
|
+
"required": true,
|
|
2610
|
+
"content": {
|
|
2611
|
+
"application/json": {
|
|
2612
|
+
"schema": {
|
|
2613
|
+
"$ref": "#/components/schemas/ManagedCallExecuteRequest"
|
|
2614
|
+
}
|
|
2615
|
+
}
|
|
2616
|
+
}
|
|
2617
|
+
},
|
|
2618
|
+
"responses": {
|
|
2619
|
+
"200": {
|
|
2620
|
+
"description": "Managed call executed successfully.\nThe response body is the JSONata-mapped result (or raw external API response if no mapping).\nIf inbound routing is configured, check X-Inbound-Event-Id header for tracking.\n",
|
|
2621
|
+
"headers": {
|
|
2622
|
+
"X-Inbound-Event-Id": {
|
|
2623
|
+
"description": "Event ID for tracking inbound pipeline processing (only present when inbound routing is configured)",
|
|
2624
|
+
"schema": {
|
|
2625
|
+
"type": "string"
|
|
2626
|
+
}
|
|
2627
|
+
}
|
|
2628
|
+
},
|
|
2629
|
+
"content": {
|
|
2630
|
+
"application/json": {
|
|
2631
|
+
"schema": {
|
|
2632
|
+
"$ref": "#/components/schemas/ManagedCallExecuteResponse"
|
|
2633
|
+
}
|
|
2634
|
+
}
|
|
2635
|
+
}
|
|
2636
|
+
},
|
|
2637
|
+
"400": {
|
|
2638
|
+
"description": "Bad request (e.g., invalid URL blocked by SSRF protection)",
|
|
2639
|
+
"content": {
|
|
2640
|
+
"application/json": {
|
|
2641
|
+
"schema": {
|
|
2642
|
+
"$ref": "#/components/schemas/ManagedCallErrorResponse"
|
|
2643
|
+
}
|
|
2644
|
+
}
|
|
2645
|
+
}
|
|
2646
|
+
},
|
|
2647
|
+
"401": {
|
|
2648
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
2649
|
+
},
|
|
2650
|
+
"403": {
|
|
2651
|
+
"$ref": "#/components/responses/Forbidden"
|
|
2652
|
+
},
|
|
2653
|
+
"404": {
|
|
2654
|
+
"$ref": "#/components/responses/NotFound"
|
|
2655
|
+
},
|
|
2656
|
+
"500": {
|
|
2657
|
+
"$ref": "#/components/responses/InternalServerError"
|
|
2658
|
+
},
|
|
2659
|
+
"502": {
|
|
2660
|
+
"description": "External API error (upstream service returned an error)",
|
|
2661
|
+
"content": {
|
|
2662
|
+
"application/json": {
|
|
2663
|
+
"schema": {
|
|
2664
|
+
"$ref": "#/components/schemas/ManagedCallErrorResponse"
|
|
2665
|
+
}
|
|
2666
|
+
}
|
|
2667
|
+
}
|
|
2668
|
+
}
|
|
2669
|
+
}
|
|
2670
|
+
}
|
|
2671
|
+
},
|
|
2672
|
+
"/v1/integrations/{integrationId}/generate-types-preview": {
|
|
2673
|
+
"post": {
|
|
2674
|
+
"operationId": "generateTypesPreview",
|
|
2675
|
+
"summary": "Preview scaffolded types for a connector integration",
|
|
2676
|
+
"description": "Analyses the JSONata mappings of all managed-call use cases in the integration and returns scaffolded type descriptors. The frontend uses these to show the type editor modal where developers fill in leaf types.\n",
|
|
2677
|
+
"tags": [
|
|
2678
|
+
"integrations"
|
|
2679
|
+
],
|
|
2680
|
+
"security": [
|
|
2681
|
+
{
|
|
2682
|
+
"EpilotAuth": []
|
|
2683
|
+
}
|
|
2684
|
+
],
|
|
2685
|
+
"parameters": [
|
|
2686
|
+
{
|
|
2687
|
+
"name": "integrationId",
|
|
2688
|
+
"in": "path",
|
|
2689
|
+
"required": true,
|
|
2690
|
+
"schema": {
|
|
2691
|
+
"type": "string",
|
|
2692
|
+
"format": "uuid"
|
|
2693
|
+
}
|
|
2694
|
+
}
|
|
2695
|
+
],
|
|
2696
|
+
"responses": {
|
|
2697
|
+
"200": {
|
|
2698
|
+
"description": "Scaffolded type preview",
|
|
2699
|
+
"content": {
|
|
2700
|
+
"application/json": {
|
|
2701
|
+
"schema": {
|
|
2702
|
+
"$ref": "#/components/schemas/GenerateTypesPreviewResponse"
|
|
2703
|
+
}
|
|
2704
|
+
}
|
|
2705
|
+
}
|
|
2706
|
+
},
|
|
2707
|
+
"400": {
|
|
2708
|
+
"$ref": "#/components/responses/BadRequest"
|
|
2709
|
+
},
|
|
2710
|
+
"403": {
|
|
2711
|
+
"$ref": "#/components/responses/Forbidden"
|
|
2712
|
+
},
|
|
2713
|
+
"404": {
|
|
2714
|
+
"$ref": "#/components/responses/NotFound"
|
|
2715
|
+
},
|
|
2716
|
+
"500": {
|
|
2717
|
+
"$ref": "#/components/responses/InternalServerError"
|
|
2718
|
+
}
|
|
2719
|
+
}
|
|
2720
|
+
}
|
|
2721
|
+
},
|
|
2722
|
+
"/v1/integrations/{integrationId}/generate-types": {
|
|
2723
|
+
"post": {
|
|
2724
|
+
"operationId": "generateTypes",
|
|
2725
|
+
"summary": "Generate a TypeScript npm package for a connector integration",
|
|
2726
|
+
"description": "Generates a complete TypeScript npm package with typed interfaces for all managed-call use cases. This is a stateless operation that does not persist any changes. Use the commit-types endpoint to lock configurations after review.\n",
|
|
2727
|
+
"tags": [
|
|
2728
|
+
"integrations"
|
|
2729
|
+
],
|
|
2730
|
+
"security": [
|
|
2731
|
+
{
|
|
2732
|
+
"EpilotAuth": []
|
|
2733
|
+
}
|
|
2734
|
+
],
|
|
2735
|
+
"parameters": [
|
|
2736
|
+
{
|
|
2737
|
+
"name": "integrationId",
|
|
2738
|
+
"in": "path",
|
|
2739
|
+
"required": true,
|
|
2740
|
+
"schema": {
|
|
2741
|
+
"type": "string",
|
|
2742
|
+
"format": "uuid"
|
|
2743
|
+
}
|
|
2744
|
+
}
|
|
2745
|
+
],
|
|
2746
|
+
"requestBody": {
|
|
2747
|
+
"required": true,
|
|
2748
|
+
"content": {
|
|
2749
|
+
"application/json": {
|
|
2750
|
+
"schema": {
|
|
2751
|
+
"$ref": "#/components/schemas/GenerateTypesRequest"
|
|
2752
|
+
}
|
|
2753
|
+
}
|
|
2754
|
+
}
|
|
2755
|
+
},
|
|
2756
|
+
"responses": {
|
|
2757
|
+
"200": {
|
|
2758
|
+
"description": "Generated package",
|
|
2759
|
+
"content": {
|
|
2760
|
+
"application/json": {
|
|
2761
|
+
"schema": {
|
|
2762
|
+
"$ref": "#/components/schemas/GenerateTypesResponse"
|
|
2763
|
+
}
|
|
2764
|
+
}
|
|
2765
|
+
}
|
|
2766
|
+
},
|
|
2767
|
+
"400": {
|
|
2768
|
+
"$ref": "#/components/responses/BadRequest"
|
|
2769
|
+
},
|
|
2770
|
+
"403": {
|
|
2771
|
+
"$ref": "#/components/responses/Forbidden"
|
|
2772
|
+
},
|
|
2773
|
+
"404": {
|
|
2774
|
+
"$ref": "#/components/responses/NotFound"
|
|
2775
|
+
},
|
|
2776
|
+
"500": {
|
|
2777
|
+
"$ref": "#/components/responses/InternalServerError"
|
|
2778
|
+
}
|
|
2779
|
+
}
|
|
2780
|
+
}
|
|
2781
|
+
},
|
|
2782
|
+
"/v1/integrations/{integrationId}/commit-types": {
|
|
2783
|
+
"post": {
|
|
2784
|
+
"operationId": "commitTypes",
|
|
2785
|
+
"summary": "Commit generated types and lock use case configurations",
|
|
2786
|
+
"description": "Commits the generated types by locking use case configurations and updating version tracking. Should be called after the user reviews and downloads the generated package.\n",
|
|
2787
|
+
"tags": [
|
|
2788
|
+
"integrations"
|
|
2789
|
+
],
|
|
2790
|
+
"security": [
|
|
2791
|
+
{
|
|
2792
|
+
"EpilotAuth": []
|
|
2793
|
+
}
|
|
2794
|
+
],
|
|
2795
|
+
"parameters": [
|
|
2796
|
+
{
|
|
2797
|
+
"name": "integrationId",
|
|
2798
|
+
"in": "path",
|
|
2799
|
+
"required": true,
|
|
2800
|
+
"schema": {
|
|
2801
|
+
"type": "string",
|
|
2802
|
+
"format": "uuid"
|
|
2803
|
+
}
|
|
2804
|
+
}
|
|
2805
|
+
],
|
|
2806
|
+
"requestBody": {
|
|
2807
|
+
"required": true,
|
|
2808
|
+
"content": {
|
|
2809
|
+
"application/json": {
|
|
2810
|
+
"schema": {
|
|
2811
|
+
"$ref": "#/components/schemas/CommitTypesRequest"
|
|
2812
|
+
}
|
|
2813
|
+
}
|
|
2814
|
+
}
|
|
2815
|
+
},
|
|
2816
|
+
"responses": {
|
|
2817
|
+
"200": {
|
|
2818
|
+
"description": "Types committed successfully",
|
|
2819
|
+
"content": {
|
|
2820
|
+
"application/json": {
|
|
2821
|
+
"schema": {
|
|
2822
|
+
"$ref": "#/components/schemas/CommitTypesResponse"
|
|
2823
|
+
}
|
|
2824
|
+
}
|
|
2825
|
+
}
|
|
2826
|
+
},
|
|
2827
|
+
"400": {
|
|
2828
|
+
"$ref": "#/components/responses/BadRequest"
|
|
2829
|
+
},
|
|
2830
|
+
"403": {
|
|
2831
|
+
"$ref": "#/components/responses/Forbidden"
|
|
2832
|
+
},
|
|
2833
|
+
"404": {
|
|
2834
|
+
"$ref": "#/components/responses/NotFound"
|
|
2835
|
+
},
|
|
2836
|
+
"500": {
|
|
2837
|
+
"$ref": "#/components/responses/InternalServerError"
|
|
2838
|
+
}
|
|
2839
|
+
}
|
|
2840
|
+
}
|
|
2841
|
+
}
|
|
2842
|
+
},
|
|
2843
|
+
"components": {
|
|
2844
|
+
"securitySchemes": {
|
|
2845
|
+
"EpilotAuth": {
|
|
2846
|
+
"type": "http",
|
|
2847
|
+
"scheme": "bearer",
|
|
2848
|
+
"description": "Authorization header with epilot OAuth2 bearer token",
|
|
2849
|
+
"bearerFormat": "JWT"
|
|
2850
|
+
}
|
|
2851
|
+
},
|
|
2852
|
+
"schemas": {
|
|
2853
|
+
"ErrorResponseBase": {
|
|
2854
|
+
"type": "object",
|
|
2855
|
+
"properties": {
|
|
2856
|
+
"code": {
|
|
2857
|
+
"type": "string",
|
|
2858
|
+
"description": "Computer-readable error code"
|
|
2859
|
+
},
|
|
2860
|
+
"message": {
|
|
2861
|
+
"type": "string",
|
|
2862
|
+
"description": "Error message"
|
|
2863
|
+
}
|
|
2864
|
+
}
|
|
2865
|
+
},
|
|
2866
|
+
"ErpEvent": {
|
|
2867
|
+
"type": "object",
|
|
2868
|
+
"required": [
|
|
2869
|
+
"event_type",
|
|
2870
|
+
"object_type",
|
|
2871
|
+
"timestamp",
|
|
2872
|
+
"format",
|
|
2873
|
+
"payload"
|
|
2874
|
+
],
|
|
2875
|
+
"properties": {
|
|
2876
|
+
"event_type": {
|
|
2877
|
+
"type": "string",
|
|
2878
|
+
"enum": [
|
|
2879
|
+
"CREATE",
|
|
2880
|
+
"UPDATE",
|
|
2881
|
+
"DELETE"
|
|
2882
|
+
],
|
|
2883
|
+
"description": "Type of event (create, update, delete)"
|
|
2884
|
+
},
|
|
2885
|
+
"object_type": {
|
|
2886
|
+
"type": "string",
|
|
2887
|
+
"description": "Type of the object being updated (business_partner, contract_account, etc.). Corresponds to \"Event Name\" from the integration UI."
|
|
2888
|
+
},
|
|
2889
|
+
"timestamp": {
|
|
2890
|
+
"type": "string",
|
|
2891
|
+
"format": "date-time",
|
|
2892
|
+
"description": "Timestamp when the event occurred"
|
|
2893
|
+
},
|
|
2894
|
+
"format": {
|
|
2895
|
+
"type": "string",
|
|
2896
|
+
"enum": [
|
|
2897
|
+
"json",
|
|
2898
|
+
"xml"
|
|
2899
|
+
],
|
|
2900
|
+
"default": "json",
|
|
2901
|
+
"description": "Format of the payload data"
|
|
2902
|
+
},
|
|
2903
|
+
"payload": {
|
|
2904
|
+
"oneOf": [
|
|
2905
|
+
{
|
|
2906
|
+
"type": "string",
|
|
2907
|
+
"minLength": 2,
|
|
2908
|
+
"description": "The serialized object data payload (JSON, XML, etc.) as a string"
|
|
2909
|
+
},
|
|
2910
|
+
{
|
|
2911
|
+
"type": "object",
|
|
2912
|
+
"minProperties": 1,
|
|
2913
|
+
"description": "Direct JSON object (will be automatically serialized)",
|
|
2914
|
+
"additionalProperties": true
|
|
2915
|
+
}
|
|
2916
|
+
],
|
|
2917
|
+
"description": "The object data payload - can be either a serialized string or a direct JSON object"
|
|
2918
|
+
},
|
|
2919
|
+
"deduplication_id": {
|
|
2920
|
+
"type": "string",
|
|
2921
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
2922
|
+
"minLength": 1,
|
|
2923
|
+
"maxLength": 255,
|
|
2924
|
+
"description": "Optional unique identifier for idempotency - prevents duplicate processing of the same event within 24 hours in context of the same integration. Must contain only alphanumeric characters, hyphens, and underscores.\n",
|
|
2925
|
+
"example": "evt-2025-05-01-12345-create-bp"
|
|
2926
|
+
}
|
|
2927
|
+
}
|
|
2928
|
+
},
|
|
2929
|
+
"ErpUpdatesEventsV2Request": {
|
|
2930
|
+
"type": "object",
|
|
2931
|
+
"required": [
|
|
2932
|
+
"integration_id",
|
|
2933
|
+
"events"
|
|
2934
|
+
],
|
|
2935
|
+
"properties": {
|
|
2936
|
+
"integration_id": {
|
|
2937
|
+
"type": "string",
|
|
2938
|
+
"format": "uuid",
|
|
2939
|
+
"description": "UUID that identifies the integration configuration to use"
|
|
2940
|
+
},
|
|
2941
|
+
"correlation_id": {
|
|
2942
|
+
"type": "string",
|
|
2943
|
+
"description": "Optional ID that identifies the specific request for debugging purposes"
|
|
2944
|
+
},
|
|
2945
|
+
"events": {
|
|
2946
|
+
"type": "array",
|
|
2947
|
+
"description": "List of ERP events to process",
|
|
2948
|
+
"items": {
|
|
2949
|
+
"$ref": "#/components/schemas/ErpEvent"
|
|
2950
|
+
}
|
|
2951
|
+
}
|
|
2952
|
+
}
|
|
2953
|
+
},
|
|
2954
|
+
"ErpEventV3": {
|
|
2955
|
+
"type": "object",
|
|
2956
|
+
"required": [
|
|
2957
|
+
"timestamp",
|
|
2958
|
+
"format",
|
|
2959
|
+
"payload"
|
|
2960
|
+
],
|
|
2961
|
+
"anyOf": [
|
|
2962
|
+
{
|
|
2963
|
+
"required": [
|
|
2964
|
+
"event_name"
|
|
2965
|
+
]
|
|
2966
|
+
},
|
|
2967
|
+
{
|
|
2968
|
+
"required": [
|
|
2969
|
+
"use_case_slug"
|
|
2970
|
+
]
|
|
2971
|
+
}
|
|
2972
|
+
],
|
|
2973
|
+
"properties": {
|
|
2974
|
+
"event_name": {
|
|
2975
|
+
"type": "string",
|
|
2976
|
+
"description": "Event name from integration mapping (e.g., business_partner, contract_account). Required when use_case_slug is not provided.\n",
|
|
2977
|
+
"example": "business_partner"
|
|
2978
|
+
},
|
|
2979
|
+
"timestamp": {
|
|
2980
|
+
"type": "string",
|
|
2981
|
+
"format": "date-time",
|
|
2982
|
+
"description": "Timestamp when the event occurred",
|
|
2983
|
+
"example": "2025-05-01T08:30:00Z"
|
|
2984
|
+
},
|
|
2985
|
+
"format": {
|
|
2986
|
+
"type": "string",
|
|
2987
|
+
"enum": [
|
|
2988
|
+
"json",
|
|
2989
|
+
"xml"
|
|
2990
|
+
],
|
|
2991
|
+
"default": "json",
|
|
2992
|
+
"description": "Format of the payload data",
|
|
2993
|
+
"example": "json"
|
|
2994
|
+
},
|
|
2995
|
+
"payload": {
|
|
2996
|
+
"oneOf": [
|
|
2997
|
+
{
|
|
2998
|
+
"type": "string",
|
|
2999
|
+
"minLength": 2,
|
|
3000
|
+
"description": "The serialized object data payload (JSON, XML, etc.) as a string"
|
|
3001
|
+
},
|
|
3002
|
+
{
|
|
3003
|
+
"type": "object",
|
|
3004
|
+
"minProperties": 1,
|
|
3005
|
+
"description": "Direct JSON object (will be automatically serialized)",
|
|
3006
|
+
"additionalProperties": true
|
|
3007
|
+
}
|
|
3008
|
+
],
|
|
3009
|
+
"description": "The object data payload - can be either a serialized string or a direct JSON object",
|
|
3010
|
+
"example": "{\"id\":\"BP10001\",\"name\":\"Acme Corporation\",\"type\":\"organization\",\"tax_id\":\"DE123456789\",\"status\":\"active\"}"
|
|
3011
|
+
},
|
|
3012
|
+
"use_case_slug": {
|
|
3013
|
+
"type": "string",
|
|
3014
|
+
"pattern": "^[a-z0-9][a-z0-9_-]*$",
|
|
3015
|
+
"minLength": 1,
|
|
3016
|
+
"maxLength": 255,
|
|
3017
|
+
"description": "Recommended. Use case slug for routing this event to the correct use case configuration. If provided, takes precedence over event_name for use case lookup. Preferred over event_name-based routing as slugs are portable across environments.\n",
|
|
3018
|
+
"example": "business_partner"
|
|
3019
|
+
},
|
|
3020
|
+
"deduplication_id": {
|
|
3021
|
+
"type": "string",
|
|
3022
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
3023
|
+
"minLength": 1,
|
|
3024
|
+
"maxLength": 255,
|
|
3025
|
+
"description": "Optional unique identifier for idempotency - prevents duplicate processing of the same event within 24 hours in context of the same integration. Must contain only alphanumeric characters, hyphens, and underscores.\n",
|
|
3026
|
+
"example": "evt-2025-05-01-12345-bp"
|
|
3027
|
+
}
|
|
3028
|
+
}
|
|
3029
|
+
},
|
|
3030
|
+
"ErpUpdatesEventsV3Request": {
|
|
3031
|
+
"type": "object",
|
|
3032
|
+
"required": [
|
|
3033
|
+
"integration_id",
|
|
3034
|
+
"events"
|
|
3035
|
+
],
|
|
3036
|
+
"properties": {
|
|
3037
|
+
"integration_id": {
|
|
3038
|
+
"type": "string",
|
|
3039
|
+
"format": "uuid",
|
|
3040
|
+
"description": "UUID that identifies the integration configuration to use"
|
|
3041
|
+
},
|
|
3042
|
+
"correlation_id": {
|
|
3043
|
+
"type": "string",
|
|
3044
|
+
"description": "Optional ID that identifies the specific request for debugging purposes"
|
|
3045
|
+
},
|
|
3046
|
+
"events": {
|
|
3047
|
+
"type": "array",
|
|
3048
|
+
"description": "List of ERP events to process",
|
|
3049
|
+
"items": {
|
|
3050
|
+
"$ref": "#/components/schemas/ErpEventV3"
|
|
3051
|
+
}
|
|
3052
|
+
}
|
|
3053
|
+
}
|
|
3054
|
+
},
|
|
3055
|
+
"TriggerErpActionRequest": {
|
|
3056
|
+
"type": "object",
|
|
3057
|
+
"required": [
|
|
3058
|
+
"execution_id",
|
|
3059
|
+
"org_id",
|
|
3060
|
+
"webhook_id",
|
|
3061
|
+
"flow_id",
|
|
3062
|
+
"created_at",
|
|
3063
|
+
"action_id",
|
|
3064
|
+
"flow_action_id",
|
|
3065
|
+
"flow_name",
|
|
3066
|
+
"activity_id",
|
|
3067
|
+
"entity_id"
|
|
3068
|
+
],
|
|
3069
|
+
"properties": {
|
|
3070
|
+
"execution_id": {
|
|
3071
|
+
"type": "string",
|
|
3072
|
+
"description": "Unique identifier of the current automation execution"
|
|
3073
|
+
},
|
|
3074
|
+
"org_id": {
|
|
3075
|
+
"type": "string",
|
|
3076
|
+
"description": "Identifier of the organization where the automation is executed"
|
|
3077
|
+
},
|
|
3078
|
+
"webhook_id": {
|
|
3079
|
+
"type": "string",
|
|
3080
|
+
"description": "Identifier of the self-service webhook configuration"
|
|
3081
|
+
},
|
|
3082
|
+
"flow_id": {
|
|
3083
|
+
"type": "string",
|
|
3084
|
+
"description": "Identifier of the automation flow that triggered the action"
|
|
3085
|
+
},
|
|
3086
|
+
"created_at": {
|
|
3087
|
+
"type": "string",
|
|
2390
3088
|
"format": "date-time",
|
|
2391
|
-
"description": "
|
|
3089
|
+
"description": "ISO-8601 timestamp when the webhook event was created"
|
|
3090
|
+
},
|
|
3091
|
+
"action_id": {
|
|
3092
|
+
"type": "string",
|
|
3093
|
+
"description": "Identifier of the automation action being executed"
|
|
3094
|
+
},
|
|
3095
|
+
"flow_action_id": {
|
|
3096
|
+
"type": "string",
|
|
3097
|
+
"description": "Identifier of the specific automation flow action instance"
|
|
3098
|
+
},
|
|
3099
|
+
"flow_name": {
|
|
3100
|
+
"type": "string",
|
|
3101
|
+
"description": "Human readable name of the automation flow"
|
|
3102
|
+
},
|
|
3103
|
+
"activity_id": {
|
|
3104
|
+
"type": "string",
|
|
3105
|
+
"description": "Identifier of the entity activity related to this trigger"
|
|
3106
|
+
},
|
|
3107
|
+
"entity_id": {
|
|
3108
|
+
"type": "string",
|
|
3109
|
+
"description": "Identifier of the entity referenced by the activity"
|
|
3110
|
+
}
|
|
3111
|
+
}
|
|
3112
|
+
},
|
|
3113
|
+
"TriggerWebhookResp": {
|
|
3114
|
+
"type": "object",
|
|
3115
|
+
"properties": {
|
|
3116
|
+
"status_code": {
|
|
3117
|
+
"type": "string"
|
|
3118
|
+
},
|
|
3119
|
+
"message": {
|
|
3120
|
+
"type": "string"
|
|
3121
|
+
},
|
|
3122
|
+
"body": {
|
|
3123
|
+
"type": "object"
|
|
3124
|
+
},
|
|
3125
|
+
"code": {
|
|
3126
|
+
"type": "string"
|
|
3127
|
+
},
|
|
3128
|
+
"status": {
|
|
3129
|
+
"type": "string",
|
|
3130
|
+
"enum": [
|
|
3131
|
+
"succeeded",
|
|
3132
|
+
"failed"
|
|
3133
|
+
]
|
|
3134
|
+
},
|
|
3135
|
+
"start_date": {
|
|
3136
|
+
"type": "string"
|
|
3137
|
+
},
|
|
3138
|
+
"end_date": {
|
|
3139
|
+
"type": "string"
|
|
3140
|
+
},
|
|
3141
|
+
"event_id": {
|
|
3142
|
+
"type": "string"
|
|
3143
|
+
}
|
|
3144
|
+
}
|
|
3145
|
+
},
|
|
3146
|
+
"IntegrationEditableFields": {
|
|
3147
|
+
"type": "object",
|
|
3148
|
+
"properties": {
|
|
3149
|
+
"name": {
|
|
3150
|
+
"type": "string",
|
|
3151
|
+
"minLength": 1,
|
|
3152
|
+
"maxLength": 255,
|
|
3153
|
+
"description": "Integration name"
|
|
3154
|
+
},
|
|
3155
|
+
"description": {
|
|
3156
|
+
"type": "string",
|
|
3157
|
+
"maxLength": 1000,
|
|
3158
|
+
"description": "Optional description of the integration"
|
|
3159
|
+
},
|
|
3160
|
+
"access_token_ids": {
|
|
3161
|
+
"type": "array",
|
|
3162
|
+
"description": "List of access token IDs associated with this integration",
|
|
3163
|
+
"items": {
|
|
3164
|
+
"type": "string"
|
|
3165
|
+
}
|
|
3166
|
+
},
|
|
3167
|
+
"app_ids": {
|
|
3168
|
+
"type": "array",
|
|
3169
|
+
"description": "List of app IDs associated with this integration",
|
|
3170
|
+
"items": {
|
|
3171
|
+
"type": "string"
|
|
3172
|
+
}
|
|
3173
|
+
},
|
|
3174
|
+
"environment_config": {
|
|
3175
|
+
"type": "array",
|
|
3176
|
+
"items": {
|
|
3177
|
+
"$ref": "#/components/schemas/EnvironmentFieldConfig"
|
|
3178
|
+
},
|
|
3179
|
+
"description": "Configuration defining environment variables needed by this integration. Values are stored in the Environments API."
|
|
3180
|
+
},
|
|
3181
|
+
"settings": {
|
|
3182
|
+
"$ref": "#/components/schemas/IntegrationSettings"
|
|
3183
|
+
},
|
|
3184
|
+
"integration_type": {
|
|
3185
|
+
"type": "string",
|
|
3186
|
+
"enum": [
|
|
3187
|
+
"erp",
|
|
3188
|
+
"connector"
|
|
3189
|
+
],
|
|
3190
|
+
"default": "erp",
|
|
3191
|
+
"description": "Type of integration. \"erp\" is the ERP integration with inbound/outbound use cases. \"connector\" is for complex proxy integrations with external APIs.\n"
|
|
3192
|
+
},
|
|
3193
|
+
"connector_config": {
|
|
3194
|
+
"$ref": "#/components/schemas/ConnectorConfig"
|
|
3195
|
+
},
|
|
3196
|
+
"protected": {
|
|
3197
|
+
"type": "boolean",
|
|
3198
|
+
"description": "If true, integration is displayed in read-only mode in the UI to discourage changes"
|
|
3199
|
+
},
|
|
3200
|
+
"_manifest": {
|
|
3201
|
+
"type": "array",
|
|
3202
|
+
"description": "The manifest IDs associated with this integration",
|
|
3203
|
+
"items": {
|
|
3204
|
+
"type": "string"
|
|
3205
|
+
}
|
|
3206
|
+
}
|
|
3207
|
+
}
|
|
3208
|
+
},
|
|
3209
|
+
"ConnectorConfig": {
|
|
3210
|
+
"type": "object",
|
|
3211
|
+
"description": "Shared configuration for connector-type integrations",
|
|
3212
|
+
"properties": {
|
|
3213
|
+
"base_url": {
|
|
3214
|
+
"type": "string",
|
|
3215
|
+
"description": "Base URL for the partner API"
|
|
3216
|
+
},
|
|
3217
|
+
"auth": {
|
|
3218
|
+
"$ref": "#/components/schemas/ManagedCallAuth"
|
|
3219
|
+
},
|
|
3220
|
+
"types_versions": {
|
|
3221
|
+
"type": "array",
|
|
3222
|
+
"description": "History of generated type package versions",
|
|
3223
|
+
"items": {
|
|
3224
|
+
"type": "object",
|
|
3225
|
+
"required": [
|
|
3226
|
+
"version",
|
|
3227
|
+
"package_name",
|
|
3228
|
+
"generated_at",
|
|
3229
|
+
"generated_by",
|
|
3230
|
+
"status"
|
|
3231
|
+
],
|
|
3232
|
+
"properties": {
|
|
3233
|
+
"version": {
|
|
3234
|
+
"type": "string"
|
|
3235
|
+
},
|
|
3236
|
+
"package_name": {
|
|
3237
|
+
"type": "string"
|
|
3238
|
+
},
|
|
3239
|
+
"generated_at": {
|
|
3240
|
+
"type": "string",
|
|
3241
|
+
"format": "date-time"
|
|
3242
|
+
},
|
|
3243
|
+
"generated_by": {
|
|
3244
|
+
"type": "string"
|
|
3245
|
+
},
|
|
3246
|
+
"status": {
|
|
3247
|
+
"type": "string",
|
|
3248
|
+
"enum": [
|
|
3249
|
+
"active",
|
|
3250
|
+
"deprecated"
|
|
3251
|
+
]
|
|
3252
|
+
}
|
|
3253
|
+
}
|
|
3254
|
+
}
|
|
3255
|
+
},
|
|
3256
|
+
"latest_types_version": {
|
|
3257
|
+
"type": "string",
|
|
3258
|
+
"description": "Latest active types package version"
|
|
3259
|
+
},
|
|
3260
|
+
"latest_types_package_name": {
|
|
3261
|
+
"type": "string",
|
|
3262
|
+
"description": "Latest active types package name"
|
|
3263
|
+
}
|
|
3264
|
+
}
|
|
3265
|
+
},
|
|
3266
|
+
"ManagedCallAuth": {
|
|
3267
|
+
"type": "object",
|
|
3268
|
+
"description": "Authentication configuration for managed call requests",
|
|
3269
|
+
"properties": {
|
|
3270
|
+
"type": {
|
|
3271
|
+
"type": "string",
|
|
3272
|
+
"enum": [
|
|
3273
|
+
"oauth2_client_credentials",
|
|
3274
|
+
"api_key",
|
|
3275
|
+
"bearer"
|
|
3276
|
+
],
|
|
3277
|
+
"description": "Authentication type"
|
|
3278
|
+
},
|
|
3279
|
+
"token_url": {
|
|
3280
|
+
"type": "string",
|
|
3281
|
+
"description": "OAuth2 token URL. Can be plain text or {{env.key}} reference."
|
|
3282
|
+
},
|
|
3283
|
+
"client_id": {
|
|
3284
|
+
"type": "string",
|
|
3285
|
+
"description": "OAuth2 client ID. Can be plain text or {{env.key}} reference."
|
|
3286
|
+
},
|
|
3287
|
+
"client_secret": {
|
|
3288
|
+
"type": "string",
|
|
3289
|
+
"description": "OAuth2 client secret. Must be an {{env.key}} reference (secret)."
|
|
3290
|
+
},
|
|
3291
|
+
"scope": {
|
|
3292
|
+
"type": "string",
|
|
3293
|
+
"description": "OAuth2 scope"
|
|
3294
|
+
},
|
|
3295
|
+
"audience": {
|
|
3296
|
+
"type": "string",
|
|
3297
|
+
"description": "OAuth2 audience parameter (e.g. for Auth0, Azure AD). Can be plain text or {{env.key}} reference."
|
|
3298
|
+
},
|
|
3299
|
+
"resource": {
|
|
3300
|
+
"type": "string",
|
|
3301
|
+
"description": "OAuth2 resource parameter (e.g. for Azure AD). Can be plain text or {{env.key}} reference."
|
|
3302
|
+
},
|
|
3303
|
+
"body_params": {
|
|
3304
|
+
"type": "object",
|
|
3305
|
+
"additionalProperties": {
|
|
3306
|
+
"type": "string"
|
|
3307
|
+
},
|
|
3308
|
+
"description": "Additional key-value pairs for the OAuth2 token request body. Values can be {{env.key}} references."
|
|
3309
|
+
},
|
|
3310
|
+
"headers": {
|
|
3311
|
+
"type": "object",
|
|
3312
|
+
"additionalProperties": {
|
|
3313
|
+
"type": "string"
|
|
3314
|
+
},
|
|
3315
|
+
"description": "Additional headers for the OAuth2 token request. Values can be {{env.key}} references."
|
|
3316
|
+
},
|
|
3317
|
+
"query_params": {
|
|
3318
|
+
"type": "object",
|
|
3319
|
+
"additionalProperties": {
|
|
3320
|
+
"type": "string"
|
|
3321
|
+
},
|
|
3322
|
+
"description": "Additional query parameters for the OAuth2 token URL. Values can be {{env.key}} references."
|
|
3323
|
+
},
|
|
3324
|
+
"api_key_header": {
|
|
3325
|
+
"type": "string",
|
|
3326
|
+
"description": "Header name for API key auth (default X-API-Key)"
|
|
3327
|
+
},
|
|
3328
|
+
"api_key": {
|
|
3329
|
+
"type": "string",
|
|
3330
|
+
"description": "API key value. Must be an {{env.key}} reference (secret)."
|
|
3331
|
+
},
|
|
3332
|
+
"token": {
|
|
3333
|
+
"type": "string",
|
|
3334
|
+
"description": "Bearer token value. Must be an {{env.key}} reference (secret)."
|
|
3335
|
+
}
|
|
3336
|
+
}
|
|
3337
|
+
},
|
|
3338
|
+
"Integration": {
|
|
3339
|
+
"allOf": [
|
|
3340
|
+
{
|
|
3341
|
+
"type": "object",
|
|
3342
|
+
"required": [
|
|
3343
|
+
"id",
|
|
3344
|
+
"orgId",
|
|
3345
|
+
"name",
|
|
3346
|
+
"created_at",
|
|
3347
|
+
"updated_at"
|
|
3348
|
+
],
|
|
3349
|
+
"properties": {
|
|
3350
|
+
"id": {
|
|
3351
|
+
"type": "string",
|
|
3352
|
+
"format": "uuid",
|
|
3353
|
+
"readOnly": true,
|
|
3354
|
+
"description": "Unique identifier for the integration"
|
|
3355
|
+
},
|
|
3356
|
+
"orgId": {
|
|
3357
|
+
"type": "string",
|
|
3358
|
+
"readOnly": true,
|
|
3359
|
+
"description": "Organization ID"
|
|
3360
|
+
},
|
|
3361
|
+
"created_at": {
|
|
3362
|
+
"type": "string",
|
|
3363
|
+
"format": "date-time",
|
|
3364
|
+
"readOnly": true,
|
|
3365
|
+
"description": "ISO-8601 timestamp when the integration was created"
|
|
3366
|
+
},
|
|
3367
|
+
"updated_at": {
|
|
3368
|
+
"type": "string",
|
|
3369
|
+
"format": "date-time",
|
|
3370
|
+
"readOnly": true,
|
|
3371
|
+
"description": "ISO-8601 timestamp when the integration was last updated"
|
|
3372
|
+
}
|
|
3373
|
+
}
|
|
3374
|
+
},
|
|
3375
|
+
{
|
|
3376
|
+
"$ref": "#/components/schemas/IntegrationEditableFields"
|
|
3377
|
+
}
|
|
3378
|
+
]
|
|
3379
|
+
},
|
|
3380
|
+
"CreateIntegrationRequest": {
|
|
3381
|
+
"allOf": [
|
|
3382
|
+
{
|
|
3383
|
+
"$ref": "#/components/schemas/IntegrationEditableFields"
|
|
3384
|
+
},
|
|
3385
|
+
{
|
|
3386
|
+
"type": "object",
|
|
3387
|
+
"required": [
|
|
3388
|
+
"name"
|
|
3389
|
+
]
|
|
3390
|
+
}
|
|
3391
|
+
]
|
|
3392
|
+
},
|
|
3393
|
+
"UpdateIntegrationRequest": {
|
|
3394
|
+
"$ref": "#/components/schemas/IntegrationEditableFields"
|
|
3395
|
+
},
|
|
3396
|
+
"EnvironmentFieldConfig": {
|
|
3397
|
+
"type": "object",
|
|
3398
|
+
"required": [
|
|
3399
|
+
"key",
|
|
3400
|
+
"label",
|
|
3401
|
+
"type"
|
|
3402
|
+
],
|
|
3403
|
+
"properties": {
|
|
3404
|
+
"key": {
|
|
3405
|
+
"type": "string",
|
|
3406
|
+
"description": "Environment variable key, used to look up the value in the Environments API.",
|
|
3407
|
+
"pattern": "^[a-z0-9][a-z0-9_.\\-]{0,127}$"
|
|
2392
3408
|
},
|
|
2393
|
-
"
|
|
3409
|
+
"label": {
|
|
3410
|
+
"type": "string",
|
|
3411
|
+
"description": "Display label for the field in the UI",
|
|
3412
|
+
"minLength": 1,
|
|
3413
|
+
"maxLength": 255
|
|
3414
|
+
},
|
|
3415
|
+
"type": {
|
|
2394
3416
|
"type": "string",
|
|
2395
3417
|
"enum": [
|
|
2396
|
-
"
|
|
2397
|
-
"
|
|
3418
|
+
"String",
|
|
3419
|
+
"SecretString"
|
|
2398
3420
|
],
|
|
2399
|
-
"
|
|
2400
|
-
"description": "Format of the payload data"
|
|
3421
|
+
"description": "Whether the value is a plain string or an encrypted secret"
|
|
2401
3422
|
},
|
|
2402
|
-
"
|
|
2403
|
-
"
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
"minLength": 2,
|
|
2407
|
-
"description": "The serialized object data payload (JSON, XML, etc.) as a string"
|
|
2408
|
-
},
|
|
2409
|
-
{
|
|
2410
|
-
"type": "object",
|
|
2411
|
-
"minProperties": 1,
|
|
2412
|
-
"description": "Direct JSON object (will be automatically serialized)",
|
|
2413
|
-
"additionalProperties": true
|
|
2414
|
-
}
|
|
2415
|
-
],
|
|
2416
|
-
"description": "The object data payload - can be either a serialized string or a direct JSON object"
|
|
3423
|
+
"description": {
|
|
3424
|
+
"type": "string",
|
|
3425
|
+
"description": "Help text shown below the field",
|
|
3426
|
+
"maxLength": 1000
|
|
2417
3427
|
},
|
|
2418
|
-
"
|
|
3428
|
+
"required": {
|
|
3429
|
+
"type": "boolean",
|
|
3430
|
+
"default": false,
|
|
3431
|
+
"description": "Whether this field must be filled before the integration can be used"
|
|
3432
|
+
},
|
|
3433
|
+
"order": {
|
|
3434
|
+
"type": "integer",
|
|
3435
|
+
"minimum": 0,
|
|
3436
|
+
"description": "Sort order for display and drag-to-reorder"
|
|
3437
|
+
}
|
|
3438
|
+
}
|
|
3439
|
+
},
|
|
3440
|
+
"IntegrationSettings": {
|
|
3441
|
+
"type": "object",
|
|
3442
|
+
"description": "Settings for the integration",
|
|
3443
|
+
"properties": {
|
|
3444
|
+
"autoRefresh": {
|
|
3445
|
+
"$ref": "#/components/schemas/AutoRefreshSettings"
|
|
3446
|
+
}
|
|
3447
|
+
}
|
|
3448
|
+
},
|
|
3449
|
+
"AutoRefreshSettings": {
|
|
3450
|
+
"type": "object",
|
|
3451
|
+
"description": "Auto-refresh settings for keeping integration data fresh",
|
|
3452
|
+
"properties": {
|
|
3453
|
+
"enabled": {
|
|
3454
|
+
"type": "boolean",
|
|
3455
|
+
"default": false,
|
|
3456
|
+
"description": "Whether auto-refresh is enabled"
|
|
3457
|
+
},
|
|
3458
|
+
"freshnessThresholdMinutes": {
|
|
3459
|
+
"type": "integer",
|
|
3460
|
+
"minimum": 1,
|
|
3461
|
+
"description": "Maximum age (in minutes) of data before it is considered stale and eligible for refresh"
|
|
3462
|
+
}
|
|
3463
|
+
}
|
|
3464
|
+
},
|
|
3465
|
+
"SetIntegrationAppMappingRequest": {
|
|
3466
|
+
"type": "object",
|
|
3467
|
+
"required": [
|
|
3468
|
+
"app_id",
|
|
3469
|
+
"component_id"
|
|
3470
|
+
],
|
|
3471
|
+
"properties": {
|
|
3472
|
+
"app_id": {
|
|
2419
3473
|
"type": "string",
|
|
2420
|
-
"
|
|
2421
|
-
"
|
|
2422
|
-
"maxLength": 255,
|
|
2423
|
-
"description": "Recommended. Use case slug for routing this event to the correct use case configuration. If provided, takes precedence over event_name for use case lookup. Preferred over event_name-based routing as slugs are portable across environments.\n"
|
|
3474
|
+
"format": "uuid",
|
|
3475
|
+
"description": "UUID of the integration app instance"
|
|
2424
3476
|
},
|
|
2425
|
-
"
|
|
3477
|
+
"component_id": {
|
|
2426
3478
|
"type": "string",
|
|
2427
|
-
"
|
|
2428
|
-
"
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
"
|
|
3479
|
+
"format": "uuid",
|
|
3480
|
+
"description": "UUID of the integration app component instance"
|
|
3481
|
+
},
|
|
3482
|
+
"overwrite": {
|
|
3483
|
+
"type": "boolean",
|
|
3484
|
+
"default": false,
|
|
3485
|
+
"description": "If true, overwrites existing mapping. If false and mapping exists, returns 409 Conflict."
|
|
2432
3486
|
}
|
|
2433
3487
|
}
|
|
2434
3488
|
},
|
|
2435
|
-
"
|
|
3489
|
+
"DeleteIntegrationAppMappingRequest": {
|
|
2436
3490
|
"type": "object",
|
|
2437
3491
|
"required": [
|
|
2438
|
-
"
|
|
2439
|
-
"
|
|
3492
|
+
"app_id",
|
|
3493
|
+
"component_id"
|
|
3494
|
+
],
|
|
3495
|
+
"properties": {
|
|
3496
|
+
"app_id": {
|
|
3497
|
+
"type": "string",
|
|
3498
|
+
"format": "uuid",
|
|
3499
|
+
"description": "UUID of the integration app instance"
|
|
3500
|
+
},
|
|
3501
|
+
"component_id": {
|
|
3502
|
+
"type": "string",
|
|
3503
|
+
"format": "uuid",
|
|
3504
|
+
"description": "UUID of the integration app component instance"
|
|
3505
|
+
}
|
|
3506
|
+
}
|
|
3507
|
+
},
|
|
3508
|
+
"IntegrationAppMapping": {
|
|
3509
|
+
"type": "object",
|
|
3510
|
+
"required": [
|
|
3511
|
+
"integration_id"
|
|
2440
3512
|
],
|
|
2441
3513
|
"properties": {
|
|
2442
3514
|
"integration_id": {
|
|
2443
3515
|
"type": "string",
|
|
2444
3516
|
"format": "uuid",
|
|
2445
|
-
"description": "
|
|
3517
|
+
"description": "The integration ID this app/component is mapped to"
|
|
3518
|
+
}
|
|
3519
|
+
}
|
|
3520
|
+
},
|
|
3521
|
+
"IntegrationWithUseCases": {
|
|
3522
|
+
"allOf": [
|
|
3523
|
+
{
|
|
3524
|
+
"$ref": "#/components/schemas/Integration"
|
|
3525
|
+
},
|
|
3526
|
+
{
|
|
3527
|
+
"type": "object",
|
|
3528
|
+
"description": "Integration with embedded use cases for atomic CRUD operations",
|
|
3529
|
+
"required": [
|
|
3530
|
+
"use_cases"
|
|
3531
|
+
],
|
|
3532
|
+
"properties": {
|
|
3533
|
+
"use_cases": {
|
|
3534
|
+
"type": "array",
|
|
3535
|
+
"description": "All use cases belonging to this integration",
|
|
3536
|
+
"items": {
|
|
3537
|
+
"$ref": "#/components/schemas/UseCase"
|
|
3538
|
+
}
|
|
3539
|
+
}
|
|
3540
|
+
}
|
|
3541
|
+
}
|
|
3542
|
+
]
|
|
3543
|
+
},
|
|
3544
|
+
"UpsertIntegrationWithUseCasesRequest": {
|
|
3545
|
+
"allOf": [
|
|
3546
|
+
{
|
|
3547
|
+
"$ref": "#/components/schemas/IntegrationEditableFields"
|
|
3548
|
+
},
|
|
3549
|
+
{
|
|
3550
|
+
"type": "object",
|
|
3551
|
+
"description": "Request to create or update an integration with embedded use cases (upsert).\nThis is a declarative operation - the request represents the desired state.\n",
|
|
3552
|
+
"required": [
|
|
3553
|
+
"name"
|
|
3554
|
+
],
|
|
3555
|
+
"properties": {
|
|
3556
|
+
"use_cases": {
|
|
3557
|
+
"type": "array",
|
|
3558
|
+
"description": "Full list of use cases (declarative). This replaces ALL existing use cases.\n- Use cases with an `id` field matching an existing use case will be updated\n- Use cases without an `id` or with a non-matching `id` will be created\n- Existing use cases not in this list will be deleted\n",
|
|
3559
|
+
"items": {
|
|
3560
|
+
"$ref": "#/components/schemas/EmbeddedUseCaseRequest"
|
|
3561
|
+
}
|
|
3562
|
+
}
|
|
3563
|
+
}
|
|
3564
|
+
}
|
|
3565
|
+
]
|
|
3566
|
+
},
|
|
3567
|
+
"InboundIntegrationEventConfiguration": {
|
|
3568
|
+
"type": "object",
|
|
3569
|
+
"description": "Configuration for inbound use cases (ERP to epilot)",
|
|
3570
|
+
"properties": {
|
|
3571
|
+
"entities": {
|
|
3572
|
+
"type": "array",
|
|
3573
|
+
"description": "Array of entity configurations for this event",
|
|
3574
|
+
"items": {
|
|
3575
|
+
"$ref": "#/components/schemas/IntegrationEntity"
|
|
3576
|
+
}
|
|
3577
|
+
},
|
|
3578
|
+
"meter_readings": {
|
|
3579
|
+
"type": "array",
|
|
3580
|
+
"description": "Array of meter reading configurations for this event",
|
|
3581
|
+
"items": {
|
|
3582
|
+
"$ref": "#/components/schemas/IntegrationMeterReading"
|
|
3583
|
+
}
|
|
3584
|
+
}
|
|
3585
|
+
}
|
|
3586
|
+
},
|
|
3587
|
+
"OutboundIntegrationEventConfiguration": {
|
|
3588
|
+
"type": "object",
|
|
3589
|
+
"required": [
|
|
3590
|
+
"event_catalog_event",
|
|
3591
|
+
"mappings"
|
|
3592
|
+
],
|
|
3593
|
+
"description": "Configuration for outbound use cases. Defines the event that triggers the flow and the webhook mappings.",
|
|
3594
|
+
"properties": {
|
|
3595
|
+
"event_catalog_event": {
|
|
3596
|
+
"type": "string",
|
|
3597
|
+
"description": "The Event Catalog event name that triggers this outbound flow",
|
|
3598
|
+
"example": "contract.created"
|
|
3599
|
+
},
|
|
3600
|
+
"mappings": {
|
|
3601
|
+
"type": "array",
|
|
3602
|
+
"minItems": 1,
|
|
3603
|
+
"items": {
|
|
3604
|
+
"$ref": "#/components/schemas/OutboundMapping"
|
|
3605
|
+
},
|
|
3606
|
+
"description": "List of mappings that transform and deliver the event"
|
|
3607
|
+
}
|
|
3608
|
+
}
|
|
3609
|
+
},
|
|
3610
|
+
"IntegrationEntity": {
|
|
3611
|
+
"type": "object",
|
|
3612
|
+
"required": [
|
|
3613
|
+
"entity_schema",
|
|
3614
|
+
"unique_ids",
|
|
3615
|
+
"fields"
|
|
3616
|
+
],
|
|
3617
|
+
"properties": {
|
|
3618
|
+
"entity_schema": {
|
|
3619
|
+
"type": "string",
|
|
3620
|
+
"description": "Target entity schema (e.g., 'contact', 'contract')"
|
|
3621
|
+
},
|
|
3622
|
+
"unique_ids": {
|
|
3623
|
+
"type": "array",
|
|
3624
|
+
"items": {
|
|
3625
|
+
"type": "string"
|
|
3626
|
+
},
|
|
3627
|
+
"description": "Array of attribute names that uniquely identify this entity.\nThe _type hint for repeatable fields (e.g., email, phone) should be specified\non the corresponding field definition in the fields array.\n"
|
|
3628
|
+
},
|
|
3629
|
+
"jsonataExpression": {
|
|
3630
|
+
"type": "string",
|
|
3631
|
+
"description": "Optional JSONata expression to pre-process the event data before field mapping"
|
|
3632
|
+
},
|
|
3633
|
+
"enabled": {
|
|
3634
|
+
"oneOf": [
|
|
3635
|
+
{
|
|
3636
|
+
"type": "boolean"
|
|
3637
|
+
},
|
|
3638
|
+
{
|
|
3639
|
+
"type": "string"
|
|
3640
|
+
}
|
|
3641
|
+
],
|
|
3642
|
+
"description": "Controls whether this entity mapping should be processed. Can be a boolean or a JSONata expression (string) that evaluates to a boolean."
|
|
2446
3643
|
},
|
|
2447
|
-
"
|
|
3644
|
+
"mode": {
|
|
2448
3645
|
"type": "string",
|
|
2449
|
-
"
|
|
3646
|
+
"enum": [
|
|
3647
|
+
"upsert",
|
|
3648
|
+
"delete",
|
|
3649
|
+
"purge",
|
|
3650
|
+
"upsert-prune-scope-purge",
|
|
3651
|
+
"upsert-prune-scope-delete"
|
|
3652
|
+
],
|
|
3653
|
+
"default": "upsert",
|
|
3654
|
+
"description": "Operation mode for entity mapping:\n- 'upsert': Create or update the entity (default)\n- 'delete': Soft delete the entity (marks as deleted)\n- 'purge': Hard delete the entity (permanent removal)\n- 'upsert-prune-scope-purge': Upsert entities from array, then purge entities in scope that weren't upserted\n- 'upsert-prune-scope-delete': Upsert entities from array, then soft delete entities in scope that weren't upserted\n"
|
|
2450
3655
|
},
|
|
2451
|
-
"
|
|
3656
|
+
"scope": {
|
|
3657
|
+
"$ref": "#/components/schemas/PruneScopeConfig"
|
|
3658
|
+
},
|
|
3659
|
+
"fields": {
|
|
2452
3660
|
"type": "array",
|
|
2453
|
-
"description": "
|
|
3661
|
+
"description": "Field mapping definitions",
|
|
2454
3662
|
"items": {
|
|
2455
|
-
"$ref": "#/components/schemas/
|
|
3663
|
+
"$ref": "#/components/schemas/IntegrationEntityField"
|
|
2456
3664
|
}
|
|
2457
3665
|
}
|
|
2458
3666
|
}
|
|
2459
3667
|
},
|
|
2460
|
-
"
|
|
3668
|
+
"IntegrationMeterReading": {
|
|
2461
3669
|
"type": "object",
|
|
2462
3670
|
"required": [
|
|
2463
|
-
"
|
|
2464
|
-
"
|
|
2465
|
-
"webhook_id",
|
|
2466
|
-
"flow_id",
|
|
2467
|
-
"created_at",
|
|
2468
|
-
"action_id",
|
|
2469
|
-
"flow_action_id",
|
|
2470
|
-
"flow_name",
|
|
2471
|
-
"activity_id",
|
|
2472
|
-
"entity_id"
|
|
3671
|
+
"meter",
|
|
3672
|
+
"fields"
|
|
2473
3673
|
],
|
|
2474
3674
|
"properties": {
|
|
2475
|
-
"
|
|
3675
|
+
"jsonataExpression": {
|
|
2476
3676
|
"type": "string",
|
|
2477
|
-
"description": "
|
|
3677
|
+
"description": "Optional JSONata expression to extract meter reading items from the event data.\nIf not provided, the entire payload is used as the reading data.\nUseful when you need to extract an array of readings from a nested structure (e.g., \"$.readings\").\n"
|
|
2478
3678
|
},
|
|
2479
|
-
"
|
|
3679
|
+
"reading_matching": {
|
|
2480
3680
|
"type": "string",
|
|
2481
|
-
"
|
|
3681
|
+
"enum": [
|
|
3682
|
+
"external_id",
|
|
3683
|
+
"strict-date"
|
|
3684
|
+
],
|
|
3685
|
+
"default": "external_id",
|
|
3686
|
+
"description": "Strategy for matching incoming readings against existing readings.\n- 'external_id': Match readings by external_id attribute (default behavior)\n- 'strict-date': Match by meter_id + counter_id + direction + date (German timezone).\n Useful when readings originate from ECP and are echoed back by the ERP with truncated timestamps.\n"
|
|
2482
3687
|
},
|
|
2483
|
-
"
|
|
3688
|
+
"mode": {
|
|
2484
3689
|
"type": "string",
|
|
2485
|
-
"
|
|
3690
|
+
"enum": [
|
|
3691
|
+
"upsert",
|
|
3692
|
+
"delete",
|
|
3693
|
+
"upsert-prune-scope"
|
|
3694
|
+
],
|
|
3695
|
+
"default": "upsert",
|
|
3696
|
+
"description": "Operation mode for meter reading mapping:\n- 'upsert': Create or update meter readings (default)\n- 'delete': Delete the meter reading\n- 'upsert-prune-scope': Upsert readings from array, then delete all other readings for the same meter+counter that weren't upserted\n"
|
|
2486
3697
|
},
|
|
2487
|
-
"
|
|
2488
|
-
"
|
|
2489
|
-
"description": "Identifier of the automation flow that triggered the action"
|
|
3698
|
+
"scope": {
|
|
3699
|
+
"$ref": "#/components/schemas/MeterReadingPruneScopeConfig"
|
|
2490
3700
|
},
|
|
2491
|
-
"
|
|
2492
|
-
"
|
|
2493
|
-
"format": "date-time",
|
|
2494
|
-
"description": "ISO-8601 timestamp when the webhook event was created"
|
|
3701
|
+
"meter": {
|
|
3702
|
+
"$ref": "#/components/schemas/MeterUniqueIdsConfig"
|
|
2495
3703
|
},
|
|
2496
|
-
"
|
|
2497
|
-
"
|
|
2498
|
-
"description": "Identifier of the automation action being executed"
|
|
3704
|
+
"meter_counter": {
|
|
3705
|
+
"$ref": "#/components/schemas/MeterUniqueIdsConfig"
|
|
2499
3706
|
},
|
|
2500
|
-
"
|
|
3707
|
+
"fields": {
|
|
3708
|
+
"type": "array",
|
|
3709
|
+
"description": "Field mapping definitions for meter reading attributes",
|
|
3710
|
+
"items": {
|
|
3711
|
+
"$ref": "#/components/schemas/IntegrationEntityField"
|
|
3712
|
+
}
|
|
3713
|
+
}
|
|
3714
|
+
}
|
|
3715
|
+
},
|
|
3716
|
+
"PruneScopeConfig": {
|
|
3717
|
+
"type": "object",
|
|
3718
|
+
"description": "Scope 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",
|
|
3719
|
+
"required": [
|
|
3720
|
+
"scope_mode"
|
|
3721
|
+
],
|
|
3722
|
+
"properties": {
|
|
3723
|
+
"scope_mode": {
|
|
2501
3724
|
"type": "string",
|
|
2502
|
-
"
|
|
3725
|
+
"enum": [
|
|
3726
|
+
"relations",
|
|
3727
|
+
"query"
|
|
3728
|
+
],
|
|
3729
|
+
"description": "Scope mode for finding entities to prune:\n- 'relations': Find scope by looking at all entities related to a specific entity (both direct and reverse relations)\n- 'query': Find scope entities directly via query parameters\n"
|
|
2503
3730
|
},
|
|
2504
|
-
"
|
|
3731
|
+
"schema": {
|
|
2505
3732
|
"type": "string",
|
|
2506
|
-
"description": "
|
|
3733
|
+
"description": "For 'relations' mode: The schema of the entity to find (e.g., 'billing_account').\nNot used for 'query' mode.\n"
|
|
2507
3734
|
},
|
|
2508
|
-
"
|
|
2509
|
-
"type": "
|
|
2510
|
-
"description": "
|
|
3735
|
+
"unique_ids": {
|
|
3736
|
+
"type": "array",
|
|
3737
|
+
"description": "For 'relations' mode: How to identify the scope entity from the payload.\nNot used for 'query' mode.\n",
|
|
3738
|
+
"items": {
|
|
3739
|
+
"$ref": "#/components/schemas/RelationUniqueIdField"
|
|
3740
|
+
}
|
|
2511
3741
|
},
|
|
2512
|
-
"
|
|
3742
|
+
"query": {
|
|
3743
|
+
"type": "array",
|
|
3744
|
+
"description": "For 'query' mode: Direct query parameters to find scope entities.\nNot used for 'relations' or 'reverse-relations' modes.\n",
|
|
3745
|
+
"items": {
|
|
3746
|
+
"$ref": "#/components/schemas/RelationUniqueIdField"
|
|
3747
|
+
}
|
|
3748
|
+
}
|
|
3749
|
+
}
|
|
3750
|
+
},
|
|
3751
|
+
"MeterReadingPruneScopeConfig": {
|
|
3752
|
+
"type": "object",
|
|
3753
|
+
"description": "Scope configuration for meter reading upsert-prune-scope mode.\nThe scope is all readings for the same meter + counter.\n",
|
|
3754
|
+
"properties": {
|
|
3755
|
+
"source": {
|
|
2513
3756
|
"type": "string",
|
|
2514
|
-
"description": "
|
|
3757
|
+
"description": "Optional source filter. When set, only readings with this source\nare eligible for pruning (e.g., 'ERP' to only prune ERP-synced readings).\n"
|
|
2515
3758
|
}
|
|
2516
3759
|
}
|
|
2517
3760
|
},
|
|
2518
|
-
"
|
|
3761
|
+
"MeterUniqueIdsConfig": {
|
|
2519
3762
|
"type": "object",
|
|
3763
|
+
"required": [
|
|
3764
|
+
"unique_ids"
|
|
3765
|
+
],
|
|
2520
3766
|
"properties": {
|
|
2521
|
-
"
|
|
2522
|
-
"type": "
|
|
3767
|
+
"unique_ids": {
|
|
3768
|
+
"type": "array",
|
|
3769
|
+
"minItems": 1,
|
|
3770
|
+
"description": "Array of unique identifier field mappings",
|
|
3771
|
+
"items": {
|
|
3772
|
+
"$ref": "#/components/schemas/RelationUniqueIdField"
|
|
3773
|
+
}
|
|
3774
|
+
}
|
|
3775
|
+
}
|
|
3776
|
+
},
|
|
3777
|
+
"IntegrationEntityField": {
|
|
3778
|
+
"type": "object",
|
|
3779
|
+
"required": [
|
|
3780
|
+
"attribute"
|
|
3781
|
+
],
|
|
3782
|
+
"properties": {
|
|
3783
|
+
"attribute": {
|
|
3784
|
+
"type": "string",
|
|
3785
|
+
"description": "Target attribute name"
|
|
2523
3786
|
},
|
|
2524
|
-
"
|
|
2525
|
-
"type": "string"
|
|
3787
|
+
"field": {
|
|
3788
|
+
"type": "string",
|
|
3789
|
+
"description": "Source field name or JSONPath expression (if starts with $)"
|
|
2526
3790
|
},
|
|
2527
|
-
"
|
|
2528
|
-
"type": "
|
|
3791
|
+
"jsonataExpression": {
|
|
3792
|
+
"type": "string",
|
|
3793
|
+
"description": "JSONata expression for transformation"
|
|
2529
3794
|
},
|
|
2530
|
-
"
|
|
2531
|
-
"
|
|
3795
|
+
"constant": {
|
|
3796
|
+
"description": "Constant value to assign (any type)"
|
|
2532
3797
|
},
|
|
2533
|
-
"
|
|
2534
|
-
"
|
|
2535
|
-
"enum": [
|
|
2536
|
-
"succeeded",
|
|
2537
|
-
"failed"
|
|
2538
|
-
]
|
|
3798
|
+
"_type": {
|
|
3799
|
+
"$ref": "#/components/schemas/RepeatableFieldType"
|
|
2539
3800
|
},
|
|
2540
|
-
"
|
|
2541
|
-
"
|
|
3801
|
+
"enabled": {
|
|
3802
|
+
"oneOf": [
|
|
3803
|
+
{
|
|
3804
|
+
"type": "boolean"
|
|
3805
|
+
},
|
|
3806
|
+
{
|
|
3807
|
+
"type": "string"
|
|
3808
|
+
}
|
|
3809
|
+
],
|
|
3810
|
+
"description": "Controls whether this field mapping should be processed. Can be a boolean or a JSONata expression (string) that evaluates to a boolean. Defaults to true if omitted."
|
|
2542
3811
|
},
|
|
2543
|
-
"
|
|
2544
|
-
"
|
|
3812
|
+
"relations": {
|
|
3813
|
+
"$ref": "#/components/schemas/RelationConfig"
|
|
2545
3814
|
},
|
|
2546
|
-
"
|
|
2547
|
-
"
|
|
3815
|
+
"relation_refs": {
|
|
3816
|
+
"$ref": "#/components/schemas/RelationRefsConfig"
|
|
3817
|
+
},
|
|
3818
|
+
"file_proxy_url": {
|
|
3819
|
+
"$ref": "#/components/schemas/FileProxyUrlConfig"
|
|
2548
3820
|
}
|
|
2549
3821
|
}
|
|
2550
3822
|
},
|
|
2551
|
-
"
|
|
2552
|
-
"
|
|
2553
|
-
"
|
|
2554
|
-
|
|
2555
|
-
"type": "
|
|
2556
|
-
"
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
3823
|
+
"FileProxyUrlParam": {
|
|
3824
|
+
"description": "Parameter for file proxy URL. Exactly one of field, constant, or jsonataExpression must be set.",
|
|
3825
|
+
"oneOf": [
|
|
3826
|
+
{
|
|
3827
|
+
"type": "object",
|
|
3828
|
+
"required": [
|
|
3829
|
+
"field"
|
|
3830
|
+
],
|
|
3831
|
+
"properties": {
|
|
3832
|
+
"field": {
|
|
3833
|
+
"type": "string",
|
|
3834
|
+
"description": "Source field name or JSONPath expression (if starts with $)"
|
|
3835
|
+
}
|
|
3836
|
+
}
|
|
2564
3837
|
},
|
|
2565
|
-
|
|
2566
|
-
"type": "
|
|
2567
|
-
"
|
|
2568
|
-
|
|
2569
|
-
|
|
3838
|
+
{
|
|
3839
|
+
"type": "object",
|
|
3840
|
+
"required": [
|
|
3841
|
+
"constant"
|
|
3842
|
+
],
|
|
3843
|
+
"properties": {
|
|
3844
|
+
"constant": {
|
|
3845
|
+
"description": "Constant value (any type, stringified for URL)"
|
|
3846
|
+
}
|
|
2570
3847
|
}
|
|
2571
3848
|
},
|
|
2572
|
-
|
|
2573
|
-
"type": "
|
|
2574
|
-
"
|
|
2575
|
-
|
|
2576
|
-
|
|
3849
|
+
{
|
|
3850
|
+
"type": "object",
|
|
3851
|
+
"required": [
|
|
3852
|
+
"jsonataExpression"
|
|
3853
|
+
],
|
|
3854
|
+
"properties": {
|
|
3855
|
+
"jsonataExpression": {
|
|
3856
|
+
"type": "string",
|
|
3857
|
+
"description": "JSONata expression for transformation"
|
|
3858
|
+
}
|
|
2577
3859
|
}
|
|
2578
|
-
},
|
|
2579
|
-
"environment_config": {
|
|
2580
|
-
"type": "array",
|
|
2581
|
-
"items": {
|
|
2582
|
-
"$ref": "#/components/schemas/EnvironmentFieldConfig"
|
|
2583
|
-
},
|
|
2584
|
-
"description": "Configuration defining environment variables needed by this integration. Values are stored in the Environments API."
|
|
2585
|
-
},
|
|
2586
|
-
"settings": {
|
|
2587
|
-
"$ref": "#/components/schemas/IntegrationSettings"
|
|
2588
3860
|
}
|
|
3861
|
+
]
|
|
3862
|
+
},
|
|
3863
|
+
"FileProxyUrlParams": {
|
|
3864
|
+
"type": "object",
|
|
3865
|
+
"description": "Custom query parameters. Keys become URL param names, values resolved from payload.",
|
|
3866
|
+
"additionalProperties": {
|
|
3867
|
+
"$ref": "#/components/schemas/FileProxyUrlParam"
|
|
2589
3868
|
}
|
|
2590
3869
|
},
|
|
2591
|
-
"
|
|
2592
|
-
"
|
|
3870
|
+
"FileProxyUrlConfig": {
|
|
3871
|
+
"description": "Auto-constructs a file proxy download URL. orgId and integrationId are injected from context. Exactly one of use_case_id or use_case_slug must be provided. Using use_case_slug is recommended as it is portable across environments.\n",
|
|
3872
|
+
"oneOf": [
|
|
2593
3873
|
{
|
|
2594
3874
|
"type": "object",
|
|
2595
3875
|
"required": [
|
|
2596
|
-
"
|
|
2597
|
-
"orgId",
|
|
2598
|
-
"name",
|
|
2599
|
-
"created_at",
|
|
2600
|
-
"updated_at"
|
|
3876
|
+
"use_case_slug"
|
|
2601
3877
|
],
|
|
2602
3878
|
"properties": {
|
|
2603
|
-
"
|
|
2604
|
-
"type": "string",
|
|
2605
|
-
"format": "uuid",
|
|
2606
|
-
"readOnly": true,
|
|
2607
|
-
"description": "Unique identifier for the integration"
|
|
2608
|
-
},
|
|
2609
|
-
"orgId": {
|
|
2610
|
-
"type": "string",
|
|
2611
|
-
"readOnly": true,
|
|
2612
|
-
"description": "Organization ID"
|
|
2613
|
-
},
|
|
2614
|
-
"created_at": {
|
|
3879
|
+
"use_case_slug": {
|
|
2615
3880
|
"type": "string",
|
|
2616
|
-
"
|
|
2617
|
-
"
|
|
2618
|
-
"description": "ISO-8601 timestamp when the integration was created"
|
|
3881
|
+
"pattern": "^[a-z0-9][a-z0-9_-]*$",
|
|
3882
|
+
"description": "Recommended. Slug of the file_proxy use case. Maps to useCaseSlug query parameter. Portable across environments.\n"
|
|
2619
3883
|
},
|
|
2620
|
-
"
|
|
2621
|
-
"
|
|
2622
|
-
"format": "date-time",
|
|
2623
|
-
"readOnly": true,
|
|
2624
|
-
"description": "ISO-8601 timestamp when the integration was last updated"
|
|
3884
|
+
"params": {
|
|
3885
|
+
"$ref": "#/components/schemas/FileProxyUrlParams"
|
|
2625
3886
|
}
|
|
2626
3887
|
}
|
|
2627
3888
|
},
|
|
2628
|
-
{
|
|
2629
|
-
"$ref": "#/components/schemas/IntegrationEditableFields"
|
|
2630
|
-
}
|
|
2631
|
-
]
|
|
2632
|
-
},
|
|
2633
|
-
"CreateIntegrationRequest": {
|
|
2634
|
-
"allOf": [
|
|
2635
|
-
{
|
|
2636
|
-
"$ref": "#/components/schemas/IntegrationEditableFields"
|
|
2637
|
-
},
|
|
2638
3889
|
{
|
|
2639
3890
|
"type": "object",
|
|
2640
3891
|
"required": [
|
|
2641
|
-
"
|
|
2642
|
-
]
|
|
3892
|
+
"use_case_id"
|
|
3893
|
+
],
|
|
3894
|
+
"properties": {
|
|
3895
|
+
"use_case_id": {
|
|
3896
|
+
"type": "string",
|
|
3897
|
+
"description": "Legacy. UUID of the file_proxy use case. Maps to useCaseId query parameter. Prefer use_case_slug for portable configuration.\n"
|
|
3898
|
+
},
|
|
3899
|
+
"params": {
|
|
3900
|
+
"$ref": "#/components/schemas/FileProxyUrlParams"
|
|
3901
|
+
}
|
|
3902
|
+
}
|
|
2643
3903
|
}
|
|
2644
3904
|
]
|
|
2645
3905
|
},
|
|
2646
|
-
"
|
|
2647
|
-
"
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
"type": "object",
|
|
2651
|
-
"required": [
|
|
2652
|
-
"key",
|
|
2653
|
-
"label",
|
|
2654
|
-
"type"
|
|
2655
|
-
],
|
|
2656
|
-
"properties": {
|
|
2657
|
-
"key": {
|
|
2658
|
-
"type": "string",
|
|
2659
|
-
"description": "Environment variable key, used to look up the value in the Environments API.",
|
|
2660
|
-
"pattern": "^[a-z0-9][a-z0-9_.\\-]{0,127}$"
|
|
2661
|
-
},
|
|
2662
|
-
"label": {
|
|
2663
|
-
"type": "string",
|
|
2664
|
-
"description": "Display label for the field in the UI",
|
|
2665
|
-
"minLength": 1,
|
|
2666
|
-
"maxLength": 255
|
|
3906
|
+
"EmbeddedUseCaseRequest": {
|
|
3907
|
+
"oneOf": [
|
|
3908
|
+
{
|
|
3909
|
+
"$ref": "#/components/schemas/EmbeddedInboundUseCaseRequest"
|
|
2667
3910
|
},
|
|
2668
|
-
|
|
2669
|
-
"
|
|
2670
|
-
"enum": [
|
|
2671
|
-
"String",
|
|
2672
|
-
"SecretString"
|
|
2673
|
-
],
|
|
2674
|
-
"description": "Whether the value is a plain string or an encrypted secret"
|
|
3911
|
+
{
|
|
3912
|
+
"$ref": "#/components/schemas/EmbeddedOutboundUseCaseRequest"
|
|
2675
3913
|
},
|
|
2676
|
-
|
|
2677
|
-
"
|
|
2678
|
-
"description": "Help text shown below the field",
|
|
2679
|
-
"maxLength": 1000
|
|
3914
|
+
{
|
|
3915
|
+
"$ref": "#/components/schemas/EmbeddedFileProxyUseCaseRequest"
|
|
2680
3916
|
},
|
|
2681
|
-
|
|
2682
|
-
"
|
|
2683
|
-
"default": false,
|
|
2684
|
-
"description": "Whether this field must be filled before the integration can be used"
|
|
3917
|
+
{
|
|
3918
|
+
"$ref": "#/components/schemas/EmbeddedManagedCallUseCaseRequest"
|
|
2685
3919
|
},
|
|
2686
|
-
|
|
2687
|
-
"
|
|
2688
|
-
"minimum": 0,
|
|
2689
|
-
"description": "Sort order for display and drag-to-reorder"
|
|
2690
|
-
}
|
|
2691
|
-
}
|
|
2692
|
-
},
|
|
2693
|
-
"IntegrationSettings": {
|
|
2694
|
-
"type": "object",
|
|
2695
|
-
"description": "Settings for the integration",
|
|
2696
|
-
"properties": {
|
|
2697
|
-
"autoRefresh": {
|
|
2698
|
-
"$ref": "#/components/schemas/AutoRefreshSettings"
|
|
3920
|
+
{
|
|
3921
|
+
"$ref": "#/components/schemas/EmbeddedSecureProxyUseCaseRequest"
|
|
2699
3922
|
}
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
"
|
|
2708
|
-
"
|
|
2709
|
-
"description": "Whether auto-refresh is enabled"
|
|
2710
|
-
},
|
|
2711
|
-
"freshnessThresholdMinutes": {
|
|
2712
|
-
"type": "integer",
|
|
2713
|
-
"minimum": 1,
|
|
2714
|
-
"description": "Maximum age (in minutes) of data before it is considered stale and eligible for refresh"
|
|
3923
|
+
],
|
|
3924
|
+
"discriminator": {
|
|
3925
|
+
"propertyName": "type",
|
|
3926
|
+
"mapping": {
|
|
3927
|
+
"inbound": "#/components/schemas/EmbeddedInboundUseCaseRequest",
|
|
3928
|
+
"outbound": "#/components/schemas/EmbeddedOutboundUseCaseRequest",
|
|
3929
|
+
"file_proxy": "#/components/schemas/EmbeddedFileProxyUseCaseRequest",
|
|
3930
|
+
"managed_call": "#/components/schemas/EmbeddedManagedCallUseCaseRequest",
|
|
3931
|
+
"secure_proxy": "#/components/schemas/EmbeddedSecureProxyUseCaseRequest"
|
|
2715
3932
|
}
|
|
2716
3933
|
}
|
|
2717
3934
|
},
|
|
2718
|
-
"
|
|
3935
|
+
"EmbeddedUseCaseRequestBase": {
|
|
2719
3936
|
"type": "object",
|
|
2720
3937
|
"required": [
|
|
2721
|
-
"
|
|
2722
|
-
"
|
|
3938
|
+
"name",
|
|
3939
|
+
"type",
|
|
3940
|
+
"enabled"
|
|
2723
3941
|
],
|
|
2724
3942
|
"properties": {
|
|
2725
|
-
"
|
|
3943
|
+
"id": {
|
|
2726
3944
|
"type": "string",
|
|
2727
3945
|
"format": "uuid",
|
|
2728
|
-
"description": "
|
|
3946
|
+
"description": "Optional use case ID for update matching.\n- If provided and matches an existing use case, that use case is updated\n- If provided but no match, a new use case with this ID is created\n- If omitted, a new use case with auto-generated ID is created\n"
|
|
2729
3947
|
},
|
|
2730
|
-
"
|
|
3948
|
+
"name": {
|
|
2731
3949
|
"type": "string",
|
|
2732
|
-
"
|
|
2733
|
-
"
|
|
3950
|
+
"minLength": 1,
|
|
3951
|
+
"maxLength": 255,
|
|
3952
|
+
"description": "Use case name"
|
|
2734
3953
|
},
|
|
2735
|
-
"
|
|
3954
|
+
"slug": {
|
|
3955
|
+
"type": "string",
|
|
3956
|
+
"pattern": "^[a-z0-9][a-z0-9_-]*$",
|
|
3957
|
+
"minLength": 1,
|
|
3958
|
+
"maxLength": 255,
|
|
3959
|
+
"description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation.\n"
|
|
3960
|
+
},
|
|
3961
|
+
"enabled": {
|
|
2736
3962
|
"type": "boolean",
|
|
2737
|
-
"
|
|
2738
|
-
|
|
3963
|
+
"description": "Whether the use case is enabled"
|
|
3964
|
+
},
|
|
3965
|
+
"change_description": {
|
|
3966
|
+
"type": "string",
|
|
3967
|
+
"maxLength": 2000,
|
|
3968
|
+
"description": "Optional description of this change (like a commit message)"
|
|
2739
3969
|
}
|
|
2740
3970
|
}
|
|
2741
3971
|
},
|
|
2742
|
-
"
|
|
2743
|
-
"
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
"component_id"
|
|
2747
|
-
],
|
|
2748
|
-
"properties": {
|
|
2749
|
-
"app_id": {
|
|
2750
|
-
"type": "string",
|
|
2751
|
-
"format": "uuid",
|
|
2752
|
-
"description": "UUID of the integration app instance"
|
|
3972
|
+
"EmbeddedInboundUseCaseRequest": {
|
|
3973
|
+
"allOf": [
|
|
3974
|
+
{
|
|
3975
|
+
"$ref": "#/components/schemas/EmbeddedUseCaseRequestBase"
|
|
2753
3976
|
},
|
|
2754
|
-
|
|
2755
|
-
"type": "
|
|
2756
|
-
"
|
|
2757
|
-
|
|
3977
|
+
{
|
|
3978
|
+
"type": "object",
|
|
3979
|
+
"required": [
|
|
3980
|
+
"type"
|
|
3981
|
+
],
|
|
3982
|
+
"properties": {
|
|
3983
|
+
"type": {
|
|
3984
|
+
"type": "string",
|
|
3985
|
+
"enum": [
|
|
3986
|
+
"inbound"
|
|
3987
|
+
],
|
|
3988
|
+
"description": "Use case type"
|
|
3989
|
+
},
|
|
3990
|
+
"configuration": {
|
|
3991
|
+
"$ref": "#/components/schemas/InboundIntegrationEventConfiguration"
|
|
3992
|
+
}
|
|
3993
|
+
}
|
|
2758
3994
|
}
|
|
2759
|
-
|
|
3995
|
+
]
|
|
2760
3996
|
},
|
|
2761
|
-
"
|
|
2762
|
-
"
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
"
|
|
2769
|
-
|
|
2770
|
-
|
|
3997
|
+
"EmbeddedOutboundUseCaseRequest": {
|
|
3998
|
+
"allOf": [
|
|
3999
|
+
{
|
|
4000
|
+
"$ref": "#/components/schemas/EmbeddedUseCaseRequestBase"
|
|
4001
|
+
},
|
|
4002
|
+
{
|
|
4003
|
+
"type": "object",
|
|
4004
|
+
"required": [
|
|
4005
|
+
"type"
|
|
4006
|
+
],
|
|
4007
|
+
"properties": {
|
|
4008
|
+
"type": {
|
|
4009
|
+
"type": "string",
|
|
4010
|
+
"enum": [
|
|
4011
|
+
"outbound"
|
|
4012
|
+
],
|
|
4013
|
+
"description": "Use case type"
|
|
4014
|
+
},
|
|
4015
|
+
"configuration": {
|
|
4016
|
+
"$ref": "#/components/schemas/OutboundIntegrationEventConfiguration"
|
|
4017
|
+
}
|
|
4018
|
+
}
|
|
2771
4019
|
}
|
|
2772
|
-
|
|
4020
|
+
]
|
|
2773
4021
|
},
|
|
2774
|
-
"
|
|
4022
|
+
"EmbeddedFileProxyUseCaseRequest": {
|
|
2775
4023
|
"allOf": [
|
|
2776
4024
|
{
|
|
2777
|
-
"$ref": "#/components/schemas/
|
|
4025
|
+
"$ref": "#/components/schemas/EmbeddedUseCaseRequestBase"
|
|
2778
4026
|
},
|
|
2779
4027
|
{
|
|
2780
4028
|
"type": "object",
|
|
2781
|
-
"description": "Integration with embedded use cases for atomic CRUD operations",
|
|
2782
4029
|
"required": [
|
|
2783
|
-
"
|
|
4030
|
+
"type"
|
|
2784
4031
|
],
|
|
2785
4032
|
"properties": {
|
|
2786
|
-
"
|
|
2787
|
-
"type": "
|
|
2788
|
-
"
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
4033
|
+
"type": {
|
|
4034
|
+
"type": "string",
|
|
4035
|
+
"enum": [
|
|
4036
|
+
"file_proxy"
|
|
4037
|
+
],
|
|
4038
|
+
"description": "Use case type"
|
|
4039
|
+
},
|
|
4040
|
+
"configuration": {
|
|
4041
|
+
"$ref": "#/components/schemas/FileProxyUseCaseConfiguration"
|
|
2792
4042
|
}
|
|
2793
4043
|
}
|
|
2794
4044
|
}
|
|
2795
4045
|
]
|
|
2796
4046
|
},
|
|
2797
|
-
"
|
|
4047
|
+
"EmbeddedManagedCallUseCaseRequest": {
|
|
2798
4048
|
"allOf": [
|
|
2799
4049
|
{
|
|
2800
|
-
"$ref": "#/components/schemas/
|
|
4050
|
+
"$ref": "#/components/schemas/EmbeddedUseCaseRequestBase"
|
|
2801
4051
|
},
|
|
2802
4052
|
{
|
|
2803
4053
|
"type": "object",
|
|
2804
|
-
"description": "Request to create or update an integration with embedded use cases (upsert).\nThis is a declarative operation - the request represents the desired state.\n",
|
|
2805
4054
|
"required": [
|
|
2806
|
-
"
|
|
4055
|
+
"type"
|
|
2807
4056
|
],
|
|
2808
4057
|
"properties": {
|
|
2809
|
-
"
|
|
2810
|
-
"type": "
|
|
2811
|
-
"
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
4058
|
+
"type": {
|
|
4059
|
+
"type": "string",
|
|
4060
|
+
"enum": [
|
|
4061
|
+
"managed_call"
|
|
4062
|
+
],
|
|
4063
|
+
"description": "Use case type for managed API calls"
|
|
4064
|
+
},
|
|
4065
|
+
"configuration": {
|
|
4066
|
+
"$ref": "#/components/schemas/ManagedCallOperationConfig"
|
|
2815
4067
|
}
|
|
2816
4068
|
}
|
|
2817
4069
|
}
|
|
2818
4070
|
]
|
|
2819
4071
|
},
|
|
2820
|
-
"
|
|
2821
|
-
"
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
"entities": {
|
|
2825
|
-
"type": "array",
|
|
2826
|
-
"description": "Array of entity configurations for this event",
|
|
2827
|
-
"items": {
|
|
2828
|
-
"$ref": "#/components/schemas/IntegrationEntity"
|
|
2829
|
-
}
|
|
4072
|
+
"EmbeddedSecureProxyUseCaseRequest": {
|
|
4073
|
+
"allOf": [
|
|
4074
|
+
{
|
|
4075
|
+
"$ref": "#/components/schemas/EmbeddedUseCaseRequestBase"
|
|
2830
4076
|
},
|
|
2831
|
-
|
|
2832
|
-
"type": "
|
|
2833
|
-
"
|
|
2834
|
-
|
|
2835
|
-
|
|
4077
|
+
{
|
|
4078
|
+
"type": "object",
|
|
4079
|
+
"required": [
|
|
4080
|
+
"type"
|
|
4081
|
+
],
|
|
4082
|
+
"properties": {
|
|
4083
|
+
"type": {
|
|
4084
|
+
"type": "string",
|
|
4085
|
+
"enum": [
|
|
4086
|
+
"secure_proxy"
|
|
4087
|
+
],
|
|
4088
|
+
"description": "Use case type"
|
|
4089
|
+
},
|
|
4090
|
+
"configuration": {
|
|
4091
|
+
"$ref": "#/components/schemas/SecureProxyUseCaseConfiguration"
|
|
4092
|
+
}
|
|
2836
4093
|
}
|
|
2837
4094
|
}
|
|
2838
|
-
|
|
4095
|
+
]
|
|
2839
4096
|
},
|
|
2840
|
-
"
|
|
4097
|
+
"UseCaseBase": {
|
|
2841
4098
|
"type": "object",
|
|
2842
4099
|
"required": [
|
|
2843
|
-
"
|
|
2844
|
-
"
|
|
4100
|
+
"id",
|
|
4101
|
+
"integrationId",
|
|
4102
|
+
"name",
|
|
4103
|
+
"type",
|
|
4104
|
+
"enabled",
|
|
4105
|
+
"created_at",
|
|
4106
|
+
"updated_at"
|
|
2845
4107
|
],
|
|
2846
|
-
"description": "Configuration for outbound use cases. Defines the event that triggers the flow and the webhook mappings.",
|
|
2847
4108
|
"properties": {
|
|
2848
|
-
"
|
|
4109
|
+
"id": {
|
|
2849
4110
|
"type": "string",
|
|
2850
|
-
"
|
|
2851
|
-
"
|
|
4111
|
+
"format": "uuid",
|
|
4112
|
+
"description": "Unique identifier for the use case"
|
|
2852
4113
|
},
|
|
2853
|
-
"
|
|
2854
|
-
"type": "array",
|
|
2855
|
-
"minItems": 1,
|
|
2856
|
-
"items": {
|
|
2857
|
-
"$ref": "#/components/schemas/OutboundMapping"
|
|
2858
|
-
},
|
|
2859
|
-
"description": "List of mappings that transform and deliver the event"
|
|
2860
|
-
}
|
|
2861
|
-
}
|
|
2862
|
-
},
|
|
2863
|
-
"IntegrationEntity": {
|
|
2864
|
-
"type": "object",
|
|
2865
|
-
"required": [
|
|
2866
|
-
"entity_schema",
|
|
2867
|
-
"unique_ids",
|
|
2868
|
-
"fields"
|
|
2869
|
-
],
|
|
2870
|
-
"properties": {
|
|
2871
|
-
"entity_schema": {
|
|
4114
|
+
"integrationId": {
|
|
2872
4115
|
"type": "string",
|
|
2873
|
-
"
|
|
4116
|
+
"format": "uuid",
|
|
4117
|
+
"description": "Parent integration ID"
|
|
2874
4118
|
},
|
|
2875
|
-
"
|
|
2876
|
-
"type": "
|
|
2877
|
-
"
|
|
2878
|
-
"type": "string"
|
|
2879
|
-
},
|
|
2880
|
-
"description": "Array of attribute names that uniquely identify this entity.\nThe _type hint for repeatable fields (e.g., email, phone) should be specified\non the corresponding field definition in the fields array.\n"
|
|
4119
|
+
"name": {
|
|
4120
|
+
"type": "string",
|
|
4121
|
+
"description": "Use case name"
|
|
2881
4122
|
},
|
|
2882
|
-
"
|
|
4123
|
+
"slug": {
|
|
2883
4124
|
"type": "string",
|
|
2884
|
-
"
|
|
4125
|
+
"pattern": "^[a-z0-9][a-z0-9_-]*$",
|
|
4126
|
+
"minLength": 1,
|
|
4127
|
+
"maxLength": 255,
|
|
4128
|
+
"description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.\n"
|
|
2885
4129
|
},
|
|
2886
|
-
"
|
|
2887
|
-
"
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
4130
|
+
"type": {
|
|
4131
|
+
"type": "string",
|
|
4132
|
+
"enum": [
|
|
4133
|
+
"inbound",
|
|
4134
|
+
"outbound",
|
|
4135
|
+
"file_proxy",
|
|
4136
|
+
"managed_call",
|
|
4137
|
+
"secure_proxy"
|
|
2894
4138
|
],
|
|
2895
|
-
"description": "
|
|
4139
|
+
"description": "Use case type"
|
|
2896
4140
|
},
|
|
2897
|
-
"
|
|
4141
|
+
"enabled": {
|
|
4142
|
+
"type": "boolean"
|
|
4143
|
+
},
|
|
4144
|
+
"change_description": {
|
|
2898
4145
|
"type": "string",
|
|
2899
|
-
"
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
4146
|
+
"maxLength": 2000,
|
|
4147
|
+
"description": "Description of the last change made to this use case"
|
|
4148
|
+
},
|
|
4149
|
+
"created_at": {
|
|
4150
|
+
"type": "string",
|
|
4151
|
+
"format": "date-time",
|
|
4152
|
+
"description": "ISO-8601 timestamp when the use case was created"
|
|
4153
|
+
},
|
|
4154
|
+
"updated_at": {
|
|
4155
|
+
"type": "string",
|
|
4156
|
+
"format": "date-time",
|
|
4157
|
+
"description": "ISO-8601 timestamp when the use case was last updated"
|
|
4158
|
+
}
|
|
4159
|
+
}
|
|
4160
|
+
},
|
|
4161
|
+
"InboundUseCase": {
|
|
4162
|
+
"allOf": [
|
|
4163
|
+
{
|
|
4164
|
+
"$ref": "#/components/schemas/UseCaseBase"
|
|
4165
|
+
},
|
|
4166
|
+
{
|
|
4167
|
+
"type": "object",
|
|
4168
|
+
"required": [
|
|
4169
|
+
"type"
|
|
2905
4170
|
],
|
|
2906
|
-
"
|
|
2907
|
-
|
|
4171
|
+
"properties": {
|
|
4172
|
+
"type": {
|
|
4173
|
+
"type": "string",
|
|
4174
|
+
"enum": [
|
|
4175
|
+
"inbound"
|
|
4176
|
+
],
|
|
4177
|
+
"description": "Use case type"
|
|
4178
|
+
},
|
|
4179
|
+
"configuration": {
|
|
4180
|
+
"$ref": "#/components/schemas/InboundIntegrationEventConfiguration"
|
|
4181
|
+
}
|
|
4182
|
+
}
|
|
4183
|
+
}
|
|
4184
|
+
]
|
|
4185
|
+
},
|
|
4186
|
+
"OutboundUseCase": {
|
|
4187
|
+
"allOf": [
|
|
4188
|
+
{
|
|
4189
|
+
"$ref": "#/components/schemas/UseCaseBase"
|
|
2908
4190
|
},
|
|
2909
|
-
|
|
2910
|
-
"
|
|
4191
|
+
{
|
|
4192
|
+
"type": "object",
|
|
4193
|
+
"required": [
|
|
4194
|
+
"type"
|
|
4195
|
+
],
|
|
4196
|
+
"properties": {
|
|
4197
|
+
"type": {
|
|
4198
|
+
"type": "string",
|
|
4199
|
+
"enum": [
|
|
4200
|
+
"outbound"
|
|
4201
|
+
],
|
|
4202
|
+
"description": "Use case type"
|
|
4203
|
+
},
|
|
4204
|
+
"configuration": {
|
|
4205
|
+
"$ref": "#/components/schemas/OutboundIntegrationEventConfiguration"
|
|
4206
|
+
}
|
|
4207
|
+
}
|
|
4208
|
+
}
|
|
4209
|
+
]
|
|
4210
|
+
},
|
|
4211
|
+
"FileProxyUseCase": {
|
|
4212
|
+
"allOf": [
|
|
4213
|
+
{
|
|
4214
|
+
"$ref": "#/components/schemas/UseCaseBase"
|
|
2911
4215
|
},
|
|
2912
|
-
|
|
2913
|
-
"type": "
|
|
2914
|
-
"
|
|
2915
|
-
|
|
2916
|
-
|
|
4216
|
+
{
|
|
4217
|
+
"type": "object",
|
|
4218
|
+
"required": [
|
|
4219
|
+
"type"
|
|
4220
|
+
],
|
|
4221
|
+
"properties": {
|
|
4222
|
+
"type": {
|
|
4223
|
+
"type": "string",
|
|
4224
|
+
"enum": [
|
|
4225
|
+
"file_proxy"
|
|
4226
|
+
],
|
|
4227
|
+
"description": "Use case type"
|
|
4228
|
+
},
|
|
4229
|
+
"configuration": {
|
|
4230
|
+
"$ref": "#/components/schemas/FileProxyUseCaseConfiguration"
|
|
4231
|
+
}
|
|
2917
4232
|
}
|
|
2918
4233
|
}
|
|
2919
|
-
|
|
4234
|
+
]
|
|
2920
4235
|
},
|
|
2921
|
-
"
|
|
2922
|
-
"
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
"fields"
|
|
2926
|
-
],
|
|
2927
|
-
"properties": {
|
|
2928
|
-
"jsonataExpression": {
|
|
2929
|
-
"type": "string",
|
|
2930
|
-
"description": "Optional JSONata expression to extract meter reading items from the event data.\nIf not provided, the entire payload is used as the reading data.\nUseful when you need to extract an array of readings from a nested structure (e.g., \"$.readings\").\n"
|
|
4236
|
+
"ManagedCallUseCase": {
|
|
4237
|
+
"allOf": [
|
|
4238
|
+
{
|
|
4239
|
+
"$ref": "#/components/schemas/UseCaseBase"
|
|
2931
4240
|
},
|
|
2932
|
-
|
|
2933
|
-
"type": "
|
|
2934
|
-
"
|
|
2935
|
-
"
|
|
2936
|
-
"strict-date"
|
|
4241
|
+
{
|
|
4242
|
+
"type": "object",
|
|
4243
|
+
"required": [
|
|
4244
|
+
"type"
|
|
2937
4245
|
],
|
|
2938
|
-
"
|
|
2939
|
-
|
|
4246
|
+
"properties": {
|
|
4247
|
+
"type": {
|
|
4248
|
+
"type": "string",
|
|
4249
|
+
"enum": [
|
|
4250
|
+
"managed_call"
|
|
4251
|
+
],
|
|
4252
|
+
"description": "Use case type for managed API calls"
|
|
4253
|
+
},
|
|
4254
|
+
"configuration": {
|
|
4255
|
+
"$ref": "#/components/schemas/ManagedCallOperationConfig"
|
|
4256
|
+
},
|
|
4257
|
+
"type_annotations": {
|
|
4258
|
+
"$ref": "#/components/schemas/TypeAnnotations"
|
|
4259
|
+
},
|
|
4260
|
+
"types_locked": {
|
|
4261
|
+
"type": "boolean",
|
|
4262
|
+
"description": "Whether types have been generated for this use case"
|
|
4263
|
+
}
|
|
4264
|
+
}
|
|
4265
|
+
}
|
|
4266
|
+
]
|
|
4267
|
+
},
|
|
4268
|
+
"SecureProxyUseCase": {
|
|
4269
|
+
"allOf": [
|
|
4270
|
+
{
|
|
4271
|
+
"$ref": "#/components/schemas/UseCaseBase"
|
|
2940
4272
|
},
|
|
2941
|
-
|
|
2942
|
-
"type": "
|
|
2943
|
-
"
|
|
2944
|
-
"
|
|
2945
|
-
"delete",
|
|
2946
|
-
"upsert-prune-scope"
|
|
4273
|
+
{
|
|
4274
|
+
"type": "object",
|
|
4275
|
+
"required": [
|
|
4276
|
+
"type"
|
|
2947
4277
|
],
|
|
2948
|
-
"
|
|
2949
|
-
|
|
4278
|
+
"properties": {
|
|
4279
|
+
"type": {
|
|
4280
|
+
"type": "string",
|
|
4281
|
+
"enum": [
|
|
4282
|
+
"secure_proxy"
|
|
4283
|
+
],
|
|
4284
|
+
"description": "Use case type"
|
|
4285
|
+
},
|
|
4286
|
+
"configuration": {
|
|
4287
|
+
"$ref": "#/components/schemas/SecureProxyUseCaseConfiguration"
|
|
4288
|
+
}
|
|
4289
|
+
}
|
|
4290
|
+
}
|
|
4291
|
+
]
|
|
4292
|
+
},
|
|
4293
|
+
"UseCase": {
|
|
4294
|
+
"oneOf": [
|
|
4295
|
+
{
|
|
4296
|
+
"$ref": "#/components/schemas/InboundUseCase"
|
|
2950
4297
|
},
|
|
2951
|
-
|
|
2952
|
-
"$ref": "#/components/schemas/
|
|
4298
|
+
{
|
|
4299
|
+
"$ref": "#/components/schemas/OutboundUseCase"
|
|
2953
4300
|
},
|
|
2954
|
-
|
|
2955
|
-
"$ref": "#/components/schemas/
|
|
4301
|
+
{
|
|
4302
|
+
"$ref": "#/components/schemas/FileProxyUseCase"
|
|
2956
4303
|
},
|
|
2957
|
-
|
|
2958
|
-
"$ref": "#/components/schemas/
|
|
4304
|
+
{
|
|
4305
|
+
"$ref": "#/components/schemas/ManagedCallUseCase"
|
|
2959
4306
|
},
|
|
2960
|
-
|
|
2961
|
-
"
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
4307
|
+
{
|
|
4308
|
+
"$ref": "#/components/schemas/SecureProxyUseCase"
|
|
4309
|
+
}
|
|
4310
|
+
],
|
|
4311
|
+
"discriminator": {
|
|
4312
|
+
"propertyName": "type",
|
|
4313
|
+
"mapping": {
|
|
4314
|
+
"inbound": "#/components/schemas/InboundUseCase",
|
|
4315
|
+
"outbound": "#/components/schemas/OutboundUseCase",
|
|
4316
|
+
"file_proxy": "#/components/schemas/FileProxyUseCase",
|
|
4317
|
+
"managed_call": "#/components/schemas/ManagedCallUseCase",
|
|
4318
|
+
"secure_proxy": "#/components/schemas/SecureProxyUseCase"
|
|
2966
4319
|
}
|
|
2967
4320
|
}
|
|
2968
4321
|
},
|
|
2969
|
-
"
|
|
2970
|
-
"
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
"scope_mode"
|
|
2974
|
-
],
|
|
2975
|
-
"properties": {
|
|
2976
|
-
"scope_mode": {
|
|
2977
|
-
"type": "string",
|
|
2978
|
-
"enum": [
|
|
2979
|
-
"relations",
|
|
2980
|
-
"query"
|
|
2981
|
-
],
|
|
2982
|
-
"description": "Scope mode for finding entities to prune:\n- 'relations': Find scope by looking at all entities related to a specific entity (both direct and reverse relations)\n- 'query': Find scope entities directly via query parameters\n"
|
|
4322
|
+
"CreateUseCaseRequest": {
|
|
4323
|
+
"oneOf": [
|
|
4324
|
+
{
|
|
4325
|
+
"$ref": "#/components/schemas/CreateInboundUseCaseRequest"
|
|
2983
4326
|
},
|
|
2984
|
-
|
|
2985
|
-
"
|
|
2986
|
-
"description": "For 'relations' mode: The schema of the entity to find (e.g., 'billing_account').\nNot used for 'query' mode.\n"
|
|
4327
|
+
{
|
|
4328
|
+
"$ref": "#/components/schemas/CreateOutboundUseCaseRequest"
|
|
2987
4329
|
},
|
|
2988
|
-
|
|
2989
|
-
"
|
|
2990
|
-
"description": "For 'relations' mode: How to identify the scope entity from the payload.\nNot used for 'query' mode.\n",
|
|
2991
|
-
"items": {
|
|
2992
|
-
"$ref": "#/components/schemas/RelationUniqueIdField"
|
|
2993
|
-
}
|
|
4330
|
+
{
|
|
4331
|
+
"$ref": "#/components/schemas/CreateFileProxyUseCaseRequest"
|
|
2994
4332
|
},
|
|
2995
|
-
|
|
2996
|
-
"
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
}
|
|
3001
|
-
}
|
|
3002
|
-
}
|
|
3003
|
-
},
|
|
3004
|
-
"MeterReadingPruneScopeConfig": {
|
|
3005
|
-
"type": "object",
|
|
3006
|
-
"description": "Scope configuration for meter reading upsert-prune-scope mode.\nThe scope is all readings for the same meter + counter.\n",
|
|
3007
|
-
"properties": {
|
|
3008
|
-
"source": {
|
|
3009
|
-
"type": "string",
|
|
3010
|
-
"description": "Optional source filter. When set, only readings with this source\nare eligible for pruning (e.g., 'ERP' to only prune ERP-synced readings).\n"
|
|
4333
|
+
{
|
|
4334
|
+
"$ref": "#/components/schemas/CreateManagedCallUseCaseRequest"
|
|
4335
|
+
},
|
|
4336
|
+
{
|
|
4337
|
+
"$ref": "#/components/schemas/CreateSecureProxyUseCaseRequest"
|
|
3011
4338
|
}
|
|
3012
|
-
}
|
|
3013
|
-
},
|
|
3014
|
-
"MeterUniqueIdsConfig": {
|
|
3015
|
-
"type": "object",
|
|
3016
|
-
"required": [
|
|
3017
|
-
"unique_ids"
|
|
3018
4339
|
],
|
|
3019
|
-
"
|
|
3020
|
-
"
|
|
3021
|
-
|
|
3022
|
-
"
|
|
3023
|
-
"
|
|
3024
|
-
"
|
|
3025
|
-
|
|
3026
|
-
|
|
4340
|
+
"discriminator": {
|
|
4341
|
+
"propertyName": "type",
|
|
4342
|
+
"mapping": {
|
|
4343
|
+
"inbound": "#/components/schemas/CreateInboundUseCaseRequest",
|
|
4344
|
+
"outbound": "#/components/schemas/CreateOutboundUseCaseRequest",
|
|
4345
|
+
"file_proxy": "#/components/schemas/CreateFileProxyUseCaseRequest",
|
|
4346
|
+
"managed_call": "#/components/schemas/CreateManagedCallUseCaseRequest",
|
|
4347
|
+
"secure_proxy": "#/components/schemas/CreateSecureProxyUseCaseRequest"
|
|
3027
4348
|
}
|
|
3028
4349
|
}
|
|
3029
4350
|
},
|
|
3030
|
-
"
|
|
4351
|
+
"CreateUseCaseRequestBase": {
|
|
3031
4352
|
"type": "object",
|
|
3032
4353
|
"required": [
|
|
3033
|
-
"
|
|
4354
|
+
"name",
|
|
4355
|
+
"type",
|
|
4356
|
+
"enabled"
|
|
3034
4357
|
],
|
|
3035
4358
|
"properties": {
|
|
3036
|
-
"
|
|
3037
|
-
"type": "string",
|
|
3038
|
-
"description": "Target attribute name"
|
|
3039
|
-
},
|
|
3040
|
-
"field": {
|
|
4359
|
+
"name": {
|
|
3041
4360
|
"type": "string",
|
|
3042
|
-
"
|
|
4361
|
+
"minLength": 1,
|
|
4362
|
+
"maxLength": 255,
|
|
4363
|
+
"description": "Use case name"
|
|
3043
4364
|
},
|
|
3044
|
-
"
|
|
4365
|
+
"slug": {
|
|
3045
4366
|
"type": "string",
|
|
3046
|
-
"
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
"description": "
|
|
3050
|
-
},
|
|
3051
|
-
"_type": {
|
|
3052
|
-
"$ref": "#/components/schemas/RepeatableFieldType"
|
|
4367
|
+
"pattern": "^[a-z0-9][a-z0-9_-]*$",
|
|
4368
|
+
"minLength": 1,
|
|
4369
|
+
"maxLength": 255,
|
|
4370
|
+
"description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.\n"
|
|
3053
4371
|
},
|
|
3054
4372
|
"enabled": {
|
|
3055
|
-
"
|
|
3056
|
-
|
|
3057
|
-
|
|
4373
|
+
"type": "boolean",
|
|
4374
|
+
"description": "Whether the use case is enabled"
|
|
4375
|
+
}
|
|
4376
|
+
}
|
|
4377
|
+
},
|
|
4378
|
+
"CreateInboundUseCaseRequest": {
|
|
4379
|
+
"allOf": [
|
|
4380
|
+
{
|
|
4381
|
+
"$ref": "#/components/schemas/CreateUseCaseRequestBase"
|
|
4382
|
+
},
|
|
4383
|
+
{
|
|
4384
|
+
"type": "object",
|
|
4385
|
+
"required": [
|
|
4386
|
+
"type"
|
|
4387
|
+
],
|
|
4388
|
+
"properties": {
|
|
4389
|
+
"type": {
|
|
4390
|
+
"type": "string",
|
|
4391
|
+
"enum": [
|
|
4392
|
+
"inbound"
|
|
4393
|
+
],
|
|
4394
|
+
"description": "Use case type"
|
|
3058
4395
|
},
|
|
3059
|
-
{
|
|
3060
|
-
"
|
|
4396
|
+
"configuration": {
|
|
4397
|
+
"$ref": "#/components/schemas/InboundIntegrationEventConfiguration"
|
|
3061
4398
|
}
|
|
3062
|
-
|
|
3063
|
-
"description": "Controls whether this field mapping should be processed. Can be a boolean or a JSONata expression (string) that evaluates to a boolean. Defaults to true if omitted."
|
|
3064
|
-
},
|
|
3065
|
-
"relations": {
|
|
3066
|
-
"$ref": "#/components/schemas/RelationConfig"
|
|
3067
|
-
},
|
|
3068
|
-
"relation_refs": {
|
|
3069
|
-
"$ref": "#/components/schemas/RelationRefsConfig"
|
|
3070
|
-
},
|
|
3071
|
-
"file_proxy_url": {
|
|
3072
|
-
"$ref": "#/components/schemas/FileProxyUrlConfig"
|
|
4399
|
+
}
|
|
3073
4400
|
}
|
|
3074
|
-
|
|
4401
|
+
]
|
|
3075
4402
|
},
|
|
3076
|
-
"
|
|
3077
|
-
"
|
|
3078
|
-
|
|
4403
|
+
"CreateOutboundUseCaseRequest": {
|
|
4404
|
+
"allOf": [
|
|
4405
|
+
{
|
|
4406
|
+
"$ref": "#/components/schemas/CreateUseCaseRequestBase"
|
|
4407
|
+
},
|
|
3079
4408
|
{
|
|
3080
4409
|
"type": "object",
|
|
3081
4410
|
"required": [
|
|
3082
|
-
"
|
|
4411
|
+
"type"
|
|
3083
4412
|
],
|
|
3084
4413
|
"properties": {
|
|
3085
|
-
"
|
|
4414
|
+
"type": {
|
|
3086
4415
|
"type": "string",
|
|
3087
|
-
"
|
|
4416
|
+
"enum": [
|
|
4417
|
+
"outbound"
|
|
4418
|
+
],
|
|
4419
|
+
"description": "Use case type"
|
|
4420
|
+
},
|
|
4421
|
+
"configuration": {
|
|
4422
|
+
"$ref": "#/components/schemas/OutboundIntegrationEventConfiguration"
|
|
3088
4423
|
}
|
|
3089
4424
|
}
|
|
3090
|
-
}
|
|
4425
|
+
}
|
|
4426
|
+
]
|
|
4427
|
+
},
|
|
4428
|
+
"CreateFileProxyUseCaseRequest": {
|
|
4429
|
+
"allOf": [
|
|
3091
4430
|
{
|
|
3092
|
-
"
|
|
3093
|
-
"required": [
|
|
3094
|
-
"constant"
|
|
3095
|
-
],
|
|
3096
|
-
"properties": {
|
|
3097
|
-
"constant": {
|
|
3098
|
-
"description": "Constant value (any type, stringified for URL)"
|
|
3099
|
-
}
|
|
3100
|
-
}
|
|
4431
|
+
"$ref": "#/components/schemas/CreateUseCaseRequestBase"
|
|
3101
4432
|
},
|
|
3102
4433
|
{
|
|
3103
4434
|
"type": "object",
|
|
3104
4435
|
"required": [
|
|
3105
|
-
"
|
|
4436
|
+
"type"
|
|
3106
4437
|
],
|
|
3107
4438
|
"properties": {
|
|
3108
|
-
"
|
|
4439
|
+
"type": {
|
|
3109
4440
|
"type": "string",
|
|
3110
|
-
"
|
|
4441
|
+
"enum": [
|
|
4442
|
+
"file_proxy"
|
|
4443
|
+
],
|
|
4444
|
+
"description": "Use case type"
|
|
4445
|
+
},
|
|
4446
|
+
"configuration": {
|
|
4447
|
+
"$ref": "#/components/schemas/FileProxyUseCaseConfiguration"
|
|
3111
4448
|
}
|
|
3112
4449
|
}
|
|
3113
4450
|
}
|
|
3114
4451
|
]
|
|
3115
4452
|
},
|
|
3116
|
-
"
|
|
3117
|
-
"
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
}
|
|
3122
|
-
},
|
|
3123
|
-
"FileProxyUrlConfig": {
|
|
3124
|
-
"description": "Auto-constructs a file proxy download URL. orgId and integrationId are injected from context. Exactly one of use_case_id or use_case_slug must be provided. Using use_case_slug is recommended as it is portable across environments.\n",
|
|
3125
|
-
"oneOf": [
|
|
4453
|
+
"CreateManagedCallUseCaseRequest": {
|
|
4454
|
+
"allOf": [
|
|
4455
|
+
{
|
|
4456
|
+
"$ref": "#/components/schemas/CreateUseCaseRequestBase"
|
|
4457
|
+
},
|
|
3126
4458
|
{
|
|
3127
4459
|
"type": "object",
|
|
3128
4460
|
"required": [
|
|
3129
|
-
"
|
|
4461
|
+
"type"
|
|
3130
4462
|
],
|
|
3131
4463
|
"properties": {
|
|
3132
|
-
"
|
|
4464
|
+
"type": {
|
|
3133
4465
|
"type": "string",
|
|
3134
|
-
"
|
|
3135
|
-
|
|
4466
|
+
"enum": [
|
|
4467
|
+
"managed_call"
|
|
4468
|
+
],
|
|
4469
|
+
"description": "Use case type for managed API calls"
|
|
3136
4470
|
},
|
|
3137
|
-
"
|
|
3138
|
-
"$ref": "#/components/schemas/
|
|
4471
|
+
"configuration": {
|
|
4472
|
+
"$ref": "#/components/schemas/ManagedCallOperationConfig"
|
|
3139
4473
|
}
|
|
3140
4474
|
}
|
|
4475
|
+
}
|
|
4476
|
+
]
|
|
4477
|
+
},
|
|
4478
|
+
"CreateSecureProxyUseCaseRequest": {
|
|
4479
|
+
"allOf": [
|
|
4480
|
+
{
|
|
4481
|
+
"$ref": "#/components/schemas/CreateUseCaseRequestBase"
|
|
3141
4482
|
},
|
|
3142
4483
|
{
|
|
3143
4484
|
"type": "object",
|
|
3144
4485
|
"required": [
|
|
3145
|
-
"
|
|
4486
|
+
"type"
|
|
3146
4487
|
],
|
|
3147
4488
|
"properties": {
|
|
3148
|
-
"
|
|
4489
|
+
"type": {
|
|
3149
4490
|
"type": "string",
|
|
3150
|
-
"
|
|
4491
|
+
"enum": [
|
|
4492
|
+
"secure_proxy"
|
|
4493
|
+
],
|
|
4494
|
+
"description": "Use case type"
|
|
3151
4495
|
},
|
|
3152
|
-
"
|
|
3153
|
-
"$ref": "#/components/schemas/
|
|
4496
|
+
"configuration": {
|
|
4497
|
+
"$ref": "#/components/schemas/SecureProxyUseCaseConfiguration"
|
|
3154
4498
|
}
|
|
3155
4499
|
}
|
|
3156
4500
|
}
|
|
3157
4501
|
]
|
|
3158
4502
|
},
|
|
3159
|
-
"
|
|
4503
|
+
"UpdateUseCaseRequest": {
|
|
3160
4504
|
"oneOf": [
|
|
3161
4505
|
{
|
|
3162
|
-
"$ref": "#/components/schemas/
|
|
4506
|
+
"$ref": "#/components/schemas/UpdateInboundUseCaseRequest"
|
|
3163
4507
|
},
|
|
3164
4508
|
{
|
|
3165
|
-
"$ref": "#/components/schemas/
|
|
4509
|
+
"$ref": "#/components/schemas/UpdateOutboundUseCaseRequest"
|
|
4510
|
+
},
|
|
4511
|
+
{
|
|
4512
|
+
"$ref": "#/components/schemas/UpdateFileProxyUseCaseRequest"
|
|
4513
|
+
},
|
|
4514
|
+
{
|
|
4515
|
+
"$ref": "#/components/schemas/UpdateManagedCallUseCaseRequest"
|
|
4516
|
+
},
|
|
4517
|
+
{
|
|
4518
|
+
"$ref": "#/components/schemas/UpdateSecureProxyUseCaseRequest"
|
|
3166
4519
|
}
|
|
3167
4520
|
],
|
|
3168
4521
|
"discriminator": {
|
|
3169
4522
|
"propertyName": "type",
|
|
3170
4523
|
"mapping": {
|
|
3171
|
-
"inbound": "#/components/schemas/
|
|
3172
|
-
"outbound": "#/components/schemas/
|
|
4524
|
+
"inbound": "#/components/schemas/UpdateInboundUseCaseRequest",
|
|
4525
|
+
"outbound": "#/components/schemas/UpdateOutboundUseCaseRequest",
|
|
4526
|
+
"file_proxy": "#/components/schemas/UpdateFileProxyUseCaseRequest",
|
|
4527
|
+
"managed_call": "#/components/schemas/UpdateManagedCallUseCaseRequest",
|
|
4528
|
+
"secure_proxy": "#/components/schemas/UpdateSecureProxyUseCaseRequest"
|
|
3173
4529
|
}
|
|
3174
4530
|
}
|
|
3175
4531
|
},
|
|
3176
|
-
"
|
|
4532
|
+
"UpdateUseCaseRequestBase": {
|
|
3177
4533
|
"type": "object",
|
|
3178
|
-
"required": [
|
|
3179
|
-
"name",
|
|
3180
|
-
"type",
|
|
3181
|
-
"enabled"
|
|
3182
|
-
],
|
|
3183
4534
|
"properties": {
|
|
3184
|
-
"id": {
|
|
3185
|
-
"type": "string",
|
|
3186
|
-
"format": "uuid",
|
|
3187
|
-
"description": "Optional use case ID for update matching.\n- If provided and matches an existing use case, that use case is updated\n- If provided but no match, a new use case with this ID is created\n- If omitted, a new use case with auto-generated ID is created\n"
|
|
3188
|
-
},
|
|
3189
4535
|
"name": {
|
|
3190
4536
|
"type": "string",
|
|
3191
4537
|
"minLength": 1,
|
|
@@ -3197,7 +4543,7 @@
|
|
|
3197
4543
|
"pattern": "^[a-z0-9][a-z0-9_-]*$",
|
|
3198
4544
|
"minLength": 1,
|
|
3199
4545
|
"maxLength": 255,
|
|
3200
|
-
"description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing.
|
|
4546
|
+
"description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Can only be set once on use cases that don't have a slug yet. Immutable after being set.\n"
|
|
3201
4547
|
},
|
|
3202
4548
|
"enabled": {
|
|
3203
4549
|
"type": "boolean",
|
|
@@ -3210,16 +4556,13 @@
|
|
|
3210
4556
|
}
|
|
3211
4557
|
}
|
|
3212
4558
|
},
|
|
3213
|
-
"
|
|
4559
|
+
"UpdateInboundUseCaseRequest": {
|
|
3214
4560
|
"allOf": [
|
|
3215
4561
|
{
|
|
3216
|
-
"$ref": "#/components/schemas/
|
|
4562
|
+
"$ref": "#/components/schemas/UpdateUseCaseRequestBase"
|
|
3217
4563
|
},
|
|
3218
4564
|
{
|
|
3219
4565
|
"type": "object",
|
|
3220
|
-
"required": [
|
|
3221
|
-
"type"
|
|
3222
|
-
],
|
|
3223
4566
|
"properties": {
|
|
3224
4567
|
"type": {
|
|
3225
4568
|
"type": "string",
|
|
@@ -3235,16 +4578,13 @@
|
|
|
3235
4578
|
}
|
|
3236
4579
|
]
|
|
3237
4580
|
},
|
|
3238
|
-
"
|
|
4581
|
+
"UpdateOutboundUseCaseRequest": {
|
|
3239
4582
|
"allOf": [
|
|
3240
4583
|
{
|
|
3241
|
-
"$ref": "#/components/schemas/
|
|
4584
|
+
"$ref": "#/components/schemas/UpdateUseCaseRequestBase"
|
|
3242
4585
|
},
|
|
3243
4586
|
{
|
|
3244
4587
|
"type": "object",
|
|
3245
|
-
"required": [
|
|
3246
|
-
"type"
|
|
3247
|
-
],
|
|
3248
4588
|
"properties": {
|
|
3249
4589
|
"type": {
|
|
3250
4590
|
"type": "string",
|
|
@@ -3260,216 +4600,170 @@
|
|
|
3260
4600
|
}
|
|
3261
4601
|
]
|
|
3262
4602
|
},
|
|
3263
|
-
"
|
|
3264
|
-
"type": "object",
|
|
3265
|
-
"required": [
|
|
3266
|
-
"id",
|
|
3267
|
-
"integrationId",
|
|
3268
|
-
"name",
|
|
3269
|
-
"type",
|
|
3270
|
-
"enabled",
|
|
3271
|
-
"created_at",
|
|
3272
|
-
"updated_at"
|
|
3273
|
-
],
|
|
3274
|
-
"properties": {
|
|
3275
|
-
"id": {
|
|
3276
|
-
"type": "string",
|
|
3277
|
-
"format": "uuid",
|
|
3278
|
-
"description": "Unique identifier for the use case"
|
|
3279
|
-
},
|
|
3280
|
-
"integrationId": {
|
|
3281
|
-
"type": "string",
|
|
3282
|
-
"format": "uuid",
|
|
3283
|
-
"description": "Parent integration ID"
|
|
3284
|
-
},
|
|
3285
|
-
"name": {
|
|
3286
|
-
"type": "string",
|
|
3287
|
-
"description": "Use case name"
|
|
3288
|
-
},
|
|
3289
|
-
"slug": {
|
|
3290
|
-
"type": "string",
|
|
3291
|
-
"pattern": "^[a-z0-9][a-z0-9_-]*$",
|
|
3292
|
-
"minLength": 1,
|
|
3293
|
-
"maxLength": 255,
|
|
3294
|
-
"description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.\n"
|
|
3295
|
-
},
|
|
3296
|
-
"type": {
|
|
3297
|
-
"type": "string",
|
|
3298
|
-
"enum": [
|
|
3299
|
-
"inbound",
|
|
3300
|
-
"outbound",
|
|
3301
|
-
"file_proxy"
|
|
3302
|
-
],
|
|
3303
|
-
"description": "Use case type"
|
|
3304
|
-
},
|
|
3305
|
-
"enabled": {
|
|
3306
|
-
"type": "boolean"
|
|
3307
|
-
},
|
|
3308
|
-
"change_description": {
|
|
3309
|
-
"type": "string",
|
|
3310
|
-
"maxLength": 2000,
|
|
3311
|
-
"description": "Description of the last change made to this use case"
|
|
3312
|
-
},
|
|
3313
|
-
"created_at": {
|
|
3314
|
-
"type": "string",
|
|
3315
|
-
"format": "date-time",
|
|
3316
|
-
"description": "ISO-8601 timestamp when the use case was created"
|
|
3317
|
-
},
|
|
3318
|
-
"updated_at": {
|
|
3319
|
-
"type": "string",
|
|
3320
|
-
"format": "date-time",
|
|
3321
|
-
"description": "ISO-8601 timestamp when the use case was last updated"
|
|
3322
|
-
}
|
|
3323
|
-
}
|
|
3324
|
-
},
|
|
3325
|
-
"InboundUseCase": {
|
|
4603
|
+
"UpdateFileProxyUseCaseRequest": {
|
|
3326
4604
|
"allOf": [
|
|
3327
4605
|
{
|
|
3328
|
-
"$ref": "#/components/schemas/
|
|
4606
|
+
"$ref": "#/components/schemas/UpdateUseCaseRequestBase"
|
|
3329
4607
|
},
|
|
3330
4608
|
{
|
|
3331
4609
|
"type": "object",
|
|
3332
|
-
"required": [
|
|
3333
|
-
"type"
|
|
3334
|
-
],
|
|
3335
4610
|
"properties": {
|
|
3336
4611
|
"type": {
|
|
3337
4612
|
"type": "string",
|
|
3338
4613
|
"enum": [
|
|
3339
|
-
"
|
|
4614
|
+
"file_proxy"
|
|
3340
4615
|
],
|
|
3341
4616
|
"description": "Use case type"
|
|
3342
4617
|
},
|
|
3343
4618
|
"configuration": {
|
|
3344
|
-
"$ref": "#/components/schemas/
|
|
4619
|
+
"$ref": "#/components/schemas/FileProxyUseCaseConfiguration"
|
|
3345
4620
|
}
|
|
3346
4621
|
}
|
|
3347
4622
|
}
|
|
3348
4623
|
]
|
|
3349
4624
|
},
|
|
3350
|
-
"
|
|
4625
|
+
"UpdateManagedCallUseCaseRequest": {
|
|
3351
4626
|
"allOf": [
|
|
3352
4627
|
{
|
|
3353
|
-
"$ref": "#/components/schemas/
|
|
4628
|
+
"$ref": "#/components/schemas/UpdateUseCaseRequestBase"
|
|
3354
4629
|
},
|
|
3355
4630
|
{
|
|
3356
4631
|
"type": "object",
|
|
3357
|
-
"required": [
|
|
3358
|
-
"type"
|
|
3359
|
-
],
|
|
3360
4632
|
"properties": {
|
|
3361
4633
|
"type": {
|
|
3362
4634
|
"type": "string",
|
|
3363
4635
|
"enum": [
|
|
3364
|
-
"
|
|
4636
|
+
"managed_call"
|
|
3365
4637
|
],
|
|
3366
|
-
"description": "Use case type"
|
|
4638
|
+
"description": "Use case type for managed API calls"
|
|
3367
4639
|
},
|
|
3368
4640
|
"configuration": {
|
|
3369
|
-
"$ref": "#/components/schemas/
|
|
4641
|
+
"$ref": "#/components/schemas/ManagedCallOperationConfig"
|
|
4642
|
+
},
|
|
4643
|
+
"type_annotations": {
|
|
4644
|
+
"$ref": "#/components/schemas/TypeAnnotations"
|
|
3370
4645
|
}
|
|
3371
4646
|
}
|
|
3372
4647
|
}
|
|
3373
4648
|
]
|
|
3374
4649
|
},
|
|
3375
|
-
"
|
|
4650
|
+
"UpdateSecureProxyUseCaseRequest": {
|
|
3376
4651
|
"allOf": [
|
|
3377
4652
|
{
|
|
3378
|
-
"$ref": "#/components/schemas/
|
|
4653
|
+
"$ref": "#/components/schemas/UpdateUseCaseRequestBase"
|
|
3379
4654
|
},
|
|
3380
4655
|
{
|
|
3381
4656
|
"type": "object",
|
|
3382
|
-
"required": [
|
|
3383
|
-
"type"
|
|
3384
|
-
],
|
|
3385
4657
|
"properties": {
|
|
3386
4658
|
"type": {
|
|
3387
4659
|
"type": "string",
|
|
3388
4660
|
"enum": [
|
|
3389
|
-
"
|
|
4661
|
+
"secure_proxy"
|
|
3390
4662
|
],
|
|
3391
4663
|
"description": "Use case type"
|
|
3392
4664
|
},
|
|
3393
4665
|
"configuration": {
|
|
3394
|
-
"$ref": "#/components/schemas/
|
|
4666
|
+
"$ref": "#/components/schemas/SecureProxyUseCaseConfiguration"
|
|
3395
4667
|
}
|
|
3396
4668
|
}
|
|
3397
4669
|
}
|
|
3398
4670
|
]
|
|
3399
4671
|
},
|
|
3400
|
-
"
|
|
4672
|
+
"UseCaseHistoryEntry": {
|
|
3401
4673
|
"oneOf": [
|
|
3402
4674
|
{
|
|
3403
|
-
"$ref": "#/components/schemas/
|
|
4675
|
+
"$ref": "#/components/schemas/InboundUseCaseHistoryEntry"
|
|
3404
4676
|
},
|
|
3405
4677
|
{
|
|
3406
|
-
"$ref": "#/components/schemas/
|
|
4678
|
+
"$ref": "#/components/schemas/OutboundUseCaseHistoryEntry"
|
|
3407
4679
|
},
|
|
3408
4680
|
{
|
|
3409
|
-
"$ref": "#/components/schemas/
|
|
3410
|
-
}
|
|
3411
|
-
],
|
|
3412
|
-
"discriminator": {
|
|
3413
|
-
"propertyName": "type",
|
|
3414
|
-
"mapping": {
|
|
3415
|
-
"inbound": "#/components/schemas/InboundUseCase",
|
|
3416
|
-
"outbound": "#/components/schemas/OutboundUseCase",
|
|
3417
|
-
"file_proxy": "#/components/schemas/FileProxyUseCase"
|
|
3418
|
-
}
|
|
3419
|
-
}
|
|
3420
|
-
},
|
|
3421
|
-
"CreateUseCaseRequest": {
|
|
3422
|
-
"oneOf": [
|
|
3423
|
-
{
|
|
3424
|
-
"$ref": "#/components/schemas/CreateInboundUseCaseRequest"
|
|
4681
|
+
"$ref": "#/components/schemas/FileProxyUseCaseHistoryEntry"
|
|
3425
4682
|
},
|
|
3426
4683
|
{
|
|
3427
|
-
"$ref": "#/components/schemas/
|
|
4684
|
+
"$ref": "#/components/schemas/ManagedCallUseCaseHistoryEntry"
|
|
3428
4685
|
},
|
|
3429
4686
|
{
|
|
3430
|
-
"$ref": "#/components/schemas/
|
|
4687
|
+
"$ref": "#/components/schemas/SecureProxyUseCaseHistoryEntry"
|
|
3431
4688
|
}
|
|
3432
4689
|
],
|
|
3433
4690
|
"discriminator": {
|
|
3434
4691
|
"propertyName": "type",
|
|
3435
4692
|
"mapping": {
|
|
3436
|
-
"inbound": "#/components/schemas/
|
|
3437
|
-
"outbound": "#/components/schemas/
|
|
3438
|
-
"file_proxy": "#/components/schemas/
|
|
4693
|
+
"inbound": "#/components/schemas/InboundUseCaseHistoryEntry",
|
|
4694
|
+
"outbound": "#/components/schemas/OutboundUseCaseHistoryEntry",
|
|
4695
|
+
"file_proxy": "#/components/schemas/FileProxyUseCaseHistoryEntry",
|
|
4696
|
+
"managed_call": "#/components/schemas/ManagedCallUseCaseHistoryEntry",
|
|
4697
|
+
"secure_proxy": "#/components/schemas/SecureProxyUseCaseHistoryEntry"
|
|
3439
4698
|
}
|
|
3440
4699
|
}
|
|
3441
4700
|
},
|
|
3442
|
-
"
|
|
4701
|
+
"UseCaseHistoryEntryBase": {
|
|
3443
4702
|
"type": "object",
|
|
3444
4703
|
"required": [
|
|
4704
|
+
"id",
|
|
4705
|
+
"useCaseId",
|
|
4706
|
+
"integrationId",
|
|
3445
4707
|
"name",
|
|
3446
4708
|
"type",
|
|
3447
|
-
"enabled"
|
|
4709
|
+
"enabled",
|
|
4710
|
+
"created_at",
|
|
4711
|
+
"updated_at",
|
|
4712
|
+
"history_created_at"
|
|
3448
4713
|
],
|
|
3449
4714
|
"properties": {
|
|
4715
|
+
"id": {
|
|
4716
|
+
"type": "string",
|
|
4717
|
+
"format": "uuid",
|
|
4718
|
+
"description": "Unique identifier for this history entry"
|
|
4719
|
+
},
|
|
4720
|
+
"useCaseId": {
|
|
4721
|
+
"type": "string",
|
|
4722
|
+
"format": "uuid",
|
|
4723
|
+
"description": "Reference to the parent use case"
|
|
4724
|
+
},
|
|
4725
|
+
"integrationId": {
|
|
4726
|
+
"type": "string",
|
|
4727
|
+
"format": "uuid",
|
|
4728
|
+
"description": "Parent integration ID"
|
|
4729
|
+
},
|
|
3450
4730
|
"name": {
|
|
3451
4731
|
"type": "string",
|
|
3452
|
-
"
|
|
3453
|
-
"maxLength": 255,
|
|
3454
|
-
"description": "Use case name"
|
|
4732
|
+
"description": "Use case name at this point in history"
|
|
3455
4733
|
},
|
|
3456
4734
|
"slug": {
|
|
3457
4735
|
"type": "string",
|
|
3458
|
-
"
|
|
3459
|
-
"minLength": 1,
|
|
3460
|
-
"maxLength": 255,
|
|
3461
|
-
"description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Must be unique per integration. Immutable after creation. Lowercase alphanumeric, hyphens, and underscores only.\n"
|
|
4736
|
+
"description": "Use case slug at this point in history"
|
|
3462
4737
|
},
|
|
3463
4738
|
"enabled": {
|
|
3464
4739
|
"type": "boolean",
|
|
3465
|
-
"description": "Whether the use case
|
|
4740
|
+
"description": "Whether the use case was enabled at this point in history"
|
|
4741
|
+
},
|
|
4742
|
+
"change_description": {
|
|
4743
|
+
"type": "string",
|
|
4744
|
+
"description": "Description of the change that was made at this point in history"
|
|
4745
|
+
},
|
|
4746
|
+
"created_at": {
|
|
4747
|
+
"type": "string",
|
|
4748
|
+
"format": "date-time",
|
|
4749
|
+
"description": "ISO-8601 timestamp when the use case was originally created"
|
|
4750
|
+
},
|
|
4751
|
+
"updated_at": {
|
|
4752
|
+
"type": "string",
|
|
4753
|
+
"format": "date-time",
|
|
4754
|
+
"description": "ISO-8601 timestamp of this historical snapshot (before the update)"
|
|
4755
|
+
},
|
|
4756
|
+
"history_created_at": {
|
|
4757
|
+
"type": "string",
|
|
4758
|
+
"format": "date-time",
|
|
4759
|
+
"description": "ISO-8601 timestamp when this history entry was created"
|
|
3466
4760
|
}
|
|
3467
4761
|
}
|
|
3468
4762
|
},
|
|
3469
|
-
"
|
|
4763
|
+
"InboundUseCaseHistoryEntry": {
|
|
3470
4764
|
"allOf": [
|
|
3471
4765
|
{
|
|
3472
|
-
"$ref": "#/components/schemas/
|
|
4766
|
+
"$ref": "#/components/schemas/UseCaseHistoryEntryBase"
|
|
3473
4767
|
},
|
|
3474
4768
|
{
|
|
3475
4769
|
"type": "object",
|
|
@@ -3491,10 +4785,10 @@
|
|
|
3491
4785
|
}
|
|
3492
4786
|
]
|
|
3493
4787
|
},
|
|
3494
|
-
"
|
|
4788
|
+
"OutboundUseCaseHistoryEntry": {
|
|
3495
4789
|
"allOf": [
|
|
3496
4790
|
{
|
|
3497
|
-
"$ref": "#/components/schemas/
|
|
4791
|
+
"$ref": "#/components/schemas/UseCaseHistoryEntryBase"
|
|
3498
4792
|
},
|
|
3499
4793
|
{
|
|
3500
4794
|
"type": "object",
|
|
@@ -3516,10 +4810,10 @@
|
|
|
3516
4810
|
}
|
|
3517
4811
|
]
|
|
3518
4812
|
},
|
|
3519
|
-
"
|
|
4813
|
+
"FileProxyUseCaseHistoryEntry": {
|
|
3520
4814
|
"allOf": [
|
|
3521
4815
|
{
|
|
3522
|
-
"$ref": "#/components/schemas/
|
|
4816
|
+
"$ref": "#/components/schemas/UseCaseHistoryEntryBase"
|
|
3523
4817
|
},
|
|
3524
4818
|
{
|
|
3525
4819
|
"type": "object",
|
|
@@ -3541,277 +4835,611 @@
|
|
|
3541
4835
|
}
|
|
3542
4836
|
]
|
|
3543
4837
|
},
|
|
3544
|
-
"
|
|
3545
|
-
"
|
|
4838
|
+
"ManagedCallUseCaseHistoryEntry": {
|
|
4839
|
+
"allOf": [
|
|
3546
4840
|
{
|
|
3547
|
-
"$ref": "#/components/schemas/
|
|
4841
|
+
"$ref": "#/components/schemas/UseCaseHistoryEntryBase"
|
|
3548
4842
|
},
|
|
3549
4843
|
{
|
|
3550
|
-
"
|
|
4844
|
+
"type": "object",
|
|
4845
|
+
"required": [
|
|
4846
|
+
"type"
|
|
4847
|
+
],
|
|
4848
|
+
"properties": {
|
|
4849
|
+
"type": {
|
|
4850
|
+
"type": "string",
|
|
4851
|
+
"enum": [
|
|
4852
|
+
"managed_call"
|
|
4853
|
+
],
|
|
4854
|
+
"description": "Use case type for managed API calls"
|
|
4855
|
+
},
|
|
4856
|
+
"configuration": {
|
|
4857
|
+
"$ref": "#/components/schemas/ManagedCallOperationConfig"
|
|
4858
|
+
},
|
|
4859
|
+
"type_annotations": {
|
|
4860
|
+
"$ref": "#/components/schemas/TypeAnnotations"
|
|
4861
|
+
},
|
|
4862
|
+
"types_locked": {
|
|
4863
|
+
"type": "boolean",
|
|
4864
|
+
"description": "Whether types have been generated for this use case"
|
|
4865
|
+
}
|
|
4866
|
+
}
|
|
4867
|
+
}
|
|
4868
|
+
]
|
|
4869
|
+
},
|
|
4870
|
+
"SecureProxyUseCaseHistoryEntry": {
|
|
4871
|
+
"allOf": [
|
|
4872
|
+
{
|
|
4873
|
+
"$ref": "#/components/schemas/UseCaseHistoryEntryBase"
|
|
4874
|
+
},
|
|
4875
|
+
{
|
|
4876
|
+
"type": "object",
|
|
4877
|
+
"required": [
|
|
4878
|
+
"type"
|
|
4879
|
+
],
|
|
4880
|
+
"properties": {
|
|
4881
|
+
"type": {
|
|
4882
|
+
"type": "string",
|
|
4883
|
+
"enum": [
|
|
4884
|
+
"secure_proxy"
|
|
4885
|
+
],
|
|
4886
|
+
"description": "Use case type"
|
|
4887
|
+
},
|
|
4888
|
+
"configuration": {
|
|
4889
|
+
"$ref": "#/components/schemas/SecureProxyUseCaseConfiguration"
|
|
4890
|
+
}
|
|
4891
|
+
}
|
|
4892
|
+
}
|
|
4893
|
+
]
|
|
4894
|
+
},
|
|
4895
|
+
"SecureProxyUseCaseConfiguration": {
|
|
4896
|
+
"type": "object",
|
|
4897
|
+
"required": [
|
|
4898
|
+
"vpc_mode"
|
|
4899
|
+
],
|
|
4900
|
+
"description": "Configuration for secure_proxy use cases. Defines how to route requests through a secure VPC.\n",
|
|
4901
|
+
"properties": {
|
|
4902
|
+
"vpc_mode": {
|
|
4903
|
+
"type": "string",
|
|
4904
|
+
"enum": [
|
|
4905
|
+
"static_ip",
|
|
4906
|
+
"secure_link"
|
|
4907
|
+
],
|
|
4908
|
+
"readOnly": true,
|
|
4909
|
+
"description": "VPC routing mode. Read-only after creation.\n- static_ip: Routes through a VPC with static outbound IP (NAT Gateway) for IP-allowlisted external APIs.\n- secure_link: Routes through a VPN VPC for accessing private customer networks.\n"
|
|
4910
|
+
},
|
|
4911
|
+
"allowed_domains": {
|
|
4912
|
+
"type": "array",
|
|
4913
|
+
"items": {
|
|
4914
|
+
"type": "string"
|
|
4915
|
+
},
|
|
4916
|
+
"readOnly": true,
|
|
4917
|
+
"description": "Domain whitelist for secure_link mode. Admin-only — can only be modified directly in DynamoDB via admin script.\nSupports exact match (e.g., \"api.wemag.com\") and wildcard prefix (e.g., \"*.wemag.com\").\n"
|
|
4918
|
+
},
|
|
4919
|
+
"allowed_ips": {
|
|
4920
|
+
"type": "array",
|
|
4921
|
+
"items": {
|
|
4922
|
+
"type": "string"
|
|
4923
|
+
},
|
|
4924
|
+
"readOnly": true,
|
|
4925
|
+
"description": "IP allowlist (CIDR notation) for secure_link mode. Admin-only — can only be modified directly in DynamoDB via admin script.\nRequired for secure_link mode. All DNS-resolved IPs must match at least one range.\nExample: [\"10.0.1.0/24\", \"192.168.1.0/24\"]\n"
|
|
4926
|
+
}
|
|
4927
|
+
}
|
|
4928
|
+
},
|
|
4929
|
+
"SecureProxySummary": {
|
|
4930
|
+
"type": "object",
|
|
4931
|
+
"required": [
|
|
4932
|
+
"id",
|
|
4933
|
+
"name",
|
|
4934
|
+
"enabled",
|
|
4935
|
+
"vpc_mode",
|
|
4936
|
+
"integration_id",
|
|
4937
|
+
"integration_name"
|
|
4938
|
+
],
|
|
4939
|
+
"properties": {
|
|
4940
|
+
"id": {
|
|
4941
|
+
"type": "string",
|
|
4942
|
+
"format": "uuid"
|
|
4943
|
+
},
|
|
4944
|
+
"name": {
|
|
4945
|
+
"type": "string"
|
|
4946
|
+
},
|
|
4947
|
+
"slug": {
|
|
4948
|
+
"type": "string"
|
|
4949
|
+
},
|
|
4950
|
+
"enabled": {
|
|
4951
|
+
"type": "boolean"
|
|
4952
|
+
},
|
|
4953
|
+
"vpc_mode": {
|
|
4954
|
+
"type": "string",
|
|
4955
|
+
"enum": [
|
|
4956
|
+
"static_ip",
|
|
4957
|
+
"secure_link"
|
|
4958
|
+
]
|
|
4959
|
+
},
|
|
4960
|
+
"allowed_domains": {
|
|
4961
|
+
"type": "array",
|
|
4962
|
+
"items": {
|
|
4963
|
+
"type": "string"
|
|
4964
|
+
}
|
|
4965
|
+
},
|
|
4966
|
+
"allowed_ips": {
|
|
4967
|
+
"type": "array",
|
|
4968
|
+
"items": {
|
|
4969
|
+
"type": "string"
|
|
4970
|
+
}
|
|
4971
|
+
},
|
|
4972
|
+
"integration_id": {
|
|
4973
|
+
"type": "string",
|
|
4974
|
+
"format": "uuid"
|
|
4975
|
+
},
|
|
4976
|
+
"integration_name": {
|
|
4977
|
+
"type": "string"
|
|
4978
|
+
}
|
|
4979
|
+
}
|
|
4980
|
+
},
|
|
4981
|
+
"SecureProxyRequest": {
|
|
4982
|
+
"type": "object",
|
|
4983
|
+
"required": [
|
|
4984
|
+
"url",
|
|
4985
|
+
"method",
|
|
4986
|
+
"integration_id"
|
|
4987
|
+
],
|
|
4988
|
+
"properties": {
|
|
4989
|
+
"integration_id": {
|
|
4990
|
+
"type": "string",
|
|
4991
|
+
"format": "uuid",
|
|
4992
|
+
"description": "Integration ID that owns the secure_proxy use case"
|
|
4993
|
+
},
|
|
4994
|
+
"use_case_id": {
|
|
4995
|
+
"type": "string",
|
|
4996
|
+
"format": "uuid",
|
|
4997
|
+
"description": "Use case ID (provide either use_case_id or use_case_slug)"
|
|
4998
|
+
},
|
|
4999
|
+
"use_case_slug": {
|
|
5000
|
+
"type": "string",
|
|
5001
|
+
"description": "Use case slug (provide either use_case_id or use_case_slug)"
|
|
5002
|
+
},
|
|
5003
|
+
"url": {
|
|
5004
|
+
"type": "string",
|
|
5005
|
+
"format": "uri",
|
|
5006
|
+
"description": "Target URL to proxy the request to"
|
|
5007
|
+
},
|
|
5008
|
+
"method": {
|
|
5009
|
+
"type": "string",
|
|
5010
|
+
"enum": [
|
|
5011
|
+
"GET",
|
|
5012
|
+
"POST",
|
|
5013
|
+
"PUT",
|
|
5014
|
+
"PATCH",
|
|
5015
|
+
"DELETE"
|
|
5016
|
+
],
|
|
5017
|
+
"description": "HTTP method"
|
|
5018
|
+
},
|
|
5019
|
+
"headers": {
|
|
5020
|
+
"type": "object",
|
|
5021
|
+
"additionalProperties": {
|
|
5022
|
+
"type": "string"
|
|
5023
|
+
},
|
|
5024
|
+
"description": "Request headers to forward"
|
|
5025
|
+
},
|
|
5026
|
+
"body": {
|
|
5027
|
+
"description": "Request body (string or JSON)"
|
|
5028
|
+
},
|
|
5029
|
+
"response_type": {
|
|
5030
|
+
"type": "string",
|
|
5031
|
+
"enum": [
|
|
5032
|
+
"json",
|
|
5033
|
+
"binary"
|
|
5034
|
+
],
|
|
5035
|
+
"default": "json",
|
|
5036
|
+
"description": "Expected response type"
|
|
5037
|
+
}
|
|
5038
|
+
}
|
|
5039
|
+
},
|
|
5040
|
+
"SecureProxyResponse": {
|
|
5041
|
+
"type": "object",
|
|
5042
|
+
"properties": {
|
|
5043
|
+
"status_code": {
|
|
5044
|
+
"type": "integer",
|
|
5045
|
+
"description": "HTTP status code from the upstream response"
|
|
5046
|
+
},
|
|
5047
|
+
"headers": {
|
|
5048
|
+
"type": "object",
|
|
5049
|
+
"additionalProperties": {
|
|
5050
|
+
"type": "string"
|
|
5051
|
+
},
|
|
5052
|
+
"description": "Response headers from upstream"
|
|
5053
|
+
},
|
|
5054
|
+
"body": {
|
|
5055
|
+
"description": "Response body from upstream"
|
|
5056
|
+
}
|
|
5057
|
+
}
|
|
5058
|
+
},
|
|
5059
|
+
"ManagedCallOperationConfig": {
|
|
5060
|
+
"type": "object",
|
|
5061
|
+
"required": [
|
|
5062
|
+
"operation"
|
|
5063
|
+
],
|
|
5064
|
+
"description": "Configuration for managed_call use cases. Defines a single API operation with JSONata mapping.",
|
|
5065
|
+
"properties": {
|
|
5066
|
+
"operation": {
|
|
5067
|
+
"$ref": "#/components/schemas/ManagedCallOperation"
|
|
5068
|
+
},
|
|
5069
|
+
"request_mapping": {
|
|
5070
|
+
"type": "string",
|
|
5071
|
+
"description": "JSONata expression for outbound body transformation"
|
|
5072
|
+
},
|
|
5073
|
+
"response_mapping": {
|
|
5074
|
+
"type": "string",
|
|
5075
|
+
"description": "JSONata expression for inbound response transformation"
|
|
5076
|
+
},
|
|
5077
|
+
"inbound_use_case_slug": {
|
|
5078
|
+
"type": "string",
|
|
5079
|
+
"description": "Slug of the inbound use case to route responses to for async entity processing.\nWhen set, the managed call response is queued to the inbound pipeline and processed\nusing the referenced inbound use case's mapping configuration.\n"
|
|
5080
|
+
}
|
|
5081
|
+
}
|
|
5082
|
+
},
|
|
5083
|
+
"ManagedCallOperation": {
|
|
5084
|
+
"type": "object",
|
|
5085
|
+
"required": [
|
|
5086
|
+
"method",
|
|
5087
|
+
"path"
|
|
5088
|
+
],
|
|
5089
|
+
"description": "HTTP operation configuration for managed calls",
|
|
5090
|
+
"properties": {
|
|
5091
|
+
"method": {
|
|
5092
|
+
"type": "string",
|
|
5093
|
+
"enum": [
|
|
5094
|
+
"GET",
|
|
5095
|
+
"POST",
|
|
5096
|
+
"PUT",
|
|
5097
|
+
"PATCH",
|
|
5098
|
+
"DELETE"
|
|
5099
|
+
]
|
|
5100
|
+
},
|
|
5101
|
+
"path": {
|
|
5102
|
+
"type": "string",
|
|
5103
|
+
"description": "URL path template with {{variable}} interpolation"
|
|
5104
|
+
},
|
|
5105
|
+
"headers": {
|
|
5106
|
+
"type": "object",
|
|
5107
|
+
"description": "Custom HTTP headers for the request. Values support {{variable}} interpolation from the request payload and {{env.VAR}} references for environment variables.",
|
|
5108
|
+
"additionalProperties": {
|
|
5109
|
+
"type": "string"
|
|
5110
|
+
}
|
|
3551
5111
|
},
|
|
3552
|
-
{
|
|
3553
|
-
"
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
"mapping": {
|
|
3559
|
-
"inbound": "#/components/schemas/UpdateInboundUseCaseRequest",
|
|
3560
|
-
"outbound": "#/components/schemas/UpdateOutboundUseCaseRequest",
|
|
3561
|
-
"file_proxy": "#/components/schemas/UpdateFileProxyUseCaseRequest"
|
|
5112
|
+
"query_params": {
|
|
5113
|
+
"type": "object",
|
|
5114
|
+
"description": "Query parameters for the request. Values support {{variable}} interpolation from the request payload.",
|
|
5115
|
+
"additionalProperties": {
|
|
5116
|
+
"type": "string"
|
|
5117
|
+
}
|
|
3562
5118
|
}
|
|
3563
5119
|
}
|
|
3564
5120
|
},
|
|
3565
|
-
"
|
|
5121
|
+
"ManagedCallExecuteRequest": {
|
|
3566
5122
|
"type": "object",
|
|
5123
|
+
"required": [
|
|
5124
|
+
"integration_id"
|
|
5125
|
+
],
|
|
3567
5126
|
"properties": {
|
|
3568
|
-
"
|
|
3569
|
-
"type": "string",
|
|
3570
|
-
"minLength": 1,
|
|
3571
|
-
"maxLength": 255,
|
|
3572
|
-
"description": "Use case name"
|
|
3573
|
-
},
|
|
3574
|
-
"slug": {
|
|
5127
|
+
"integration_id": {
|
|
3575
5128
|
"type": "string",
|
|
3576
|
-
"
|
|
3577
|
-
"
|
|
3578
|
-
"maxLength": 255,
|
|
3579
|
-
"description": "URL-safe identifier for the use case. Recommended for portable cross-environment referencing. Can only be set once on use cases that don't have a slug yet. Immutable after being set.\n"
|
|
5129
|
+
"format": "uuid",
|
|
5130
|
+
"description": "Integration ID"
|
|
3580
5131
|
},
|
|
3581
|
-
"
|
|
3582
|
-
"type": "
|
|
3583
|
-
"
|
|
5132
|
+
"payload": {
|
|
5133
|
+
"type": "object",
|
|
5134
|
+
"additionalProperties": true,
|
|
5135
|
+
"description": "Request payload for the managed call operation"
|
|
3584
5136
|
},
|
|
3585
|
-
"
|
|
5137
|
+
"correlation_id": {
|
|
3586
5138
|
"type": "string",
|
|
3587
|
-
"
|
|
3588
|
-
"description": "Optional description of this change (like a commit message)"
|
|
5139
|
+
"description": "Correlation ID for tracing related events (auto-generated if not provided)"
|
|
3589
5140
|
}
|
|
3590
5141
|
}
|
|
3591
5142
|
},
|
|
3592
|
-
"
|
|
3593
|
-
"
|
|
3594
|
-
|
|
3595
|
-
|
|
3596
|
-
|
|
3597
|
-
|
|
5143
|
+
"ManagedCallExecuteResponse": {
|
|
5144
|
+
"description": "The 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 header for inbound pipeline tracking when inbound routing is configured.\n",
|
|
5145
|
+
"additionalProperties": true
|
|
5146
|
+
},
|
|
5147
|
+
"ManagedCallErrorResponse": {
|
|
5148
|
+
"type": "object",
|
|
5149
|
+
"required": [
|
|
5150
|
+
"error"
|
|
5151
|
+
],
|
|
5152
|
+
"properties": {
|
|
5153
|
+
"error": {
|
|
3598
5154
|
"type": "object",
|
|
5155
|
+
"required": [
|
|
5156
|
+
"code",
|
|
5157
|
+
"message"
|
|
5158
|
+
],
|
|
3599
5159
|
"properties": {
|
|
3600
|
-
"
|
|
5160
|
+
"code": {
|
|
3601
5161
|
"type": "string",
|
|
3602
|
-
"
|
|
3603
|
-
"inbound"
|
|
3604
|
-
],
|
|
3605
|
-
"description": "Use case type"
|
|
5162
|
+
"description": "Error code (e.g., EXTERNAL_API_ERROR, SSRF_BLOCKED, MANAGED_CALL_EXECUTION_ERROR)"
|
|
3606
5163
|
},
|
|
3607
|
-
"
|
|
3608
|
-
"
|
|
5164
|
+
"message": {
|
|
5165
|
+
"type": "string",
|
|
5166
|
+
"description": "Human-readable error message"
|
|
5167
|
+
},
|
|
5168
|
+
"details": {
|
|
5169
|
+
"type": "object",
|
|
5170
|
+
"additionalProperties": true,
|
|
5171
|
+
"description": "Additional error details (e.g., status code and body for external API errors)"
|
|
3609
5172
|
}
|
|
3610
5173
|
}
|
|
3611
5174
|
}
|
|
3612
|
-
|
|
5175
|
+
}
|
|
3613
5176
|
},
|
|
3614
|
-
"
|
|
3615
|
-
"
|
|
3616
|
-
|
|
3617
|
-
|
|
5177
|
+
"TypeAnnotations": {
|
|
5178
|
+
"type": "object",
|
|
5179
|
+
"description": "Developer-provided type annotations for a use case's request and response fields",
|
|
5180
|
+
"properties": {
|
|
5181
|
+
"request": {
|
|
5182
|
+
"type": "object",
|
|
5183
|
+
"description": "Type annotations for request fields, keyed by dot-path (e.g., \"vendors[].id\" -> \"string\")",
|
|
5184
|
+
"additionalProperties": {
|
|
5185
|
+
"type": "string"
|
|
5186
|
+
}
|
|
3618
5187
|
},
|
|
3619
|
-
{
|
|
5188
|
+
"response": {
|
|
3620
5189
|
"type": "object",
|
|
3621
|
-
"
|
|
3622
|
-
|
|
3623
|
-
|
|
3624
|
-
"enum": [
|
|
3625
|
-
"outbound"
|
|
3626
|
-
],
|
|
3627
|
-
"description": "Use case type"
|
|
3628
|
-
},
|
|
3629
|
-
"configuration": {
|
|
3630
|
-
"$ref": "#/components/schemas/OutboundIntegrationEventConfiguration"
|
|
3631
|
-
}
|
|
5190
|
+
"description": "Type annotations for response fields",
|
|
5191
|
+
"additionalProperties": {
|
|
5192
|
+
"type": "string"
|
|
3632
5193
|
}
|
|
3633
5194
|
}
|
|
3634
|
-
|
|
5195
|
+
}
|
|
3635
5196
|
},
|
|
3636
|
-
"
|
|
3637
|
-
"
|
|
3638
|
-
|
|
3639
|
-
|
|
5197
|
+
"TypeDescriptor": {
|
|
5198
|
+
"type": "object",
|
|
5199
|
+
"description": "Describes the inferred type shape of a JSONata expression",
|
|
5200
|
+
"required": [
|
|
5201
|
+
"kind"
|
|
5202
|
+
],
|
|
5203
|
+
"properties": {
|
|
5204
|
+
"kind": {
|
|
5205
|
+
"type": "string",
|
|
5206
|
+
"enum": [
|
|
5207
|
+
"object",
|
|
5208
|
+
"array",
|
|
5209
|
+
"string",
|
|
5210
|
+
"number",
|
|
5211
|
+
"boolean",
|
|
5212
|
+
"null",
|
|
5213
|
+
"unknown",
|
|
5214
|
+
"union"
|
|
5215
|
+
]
|
|
3640
5216
|
},
|
|
3641
|
-
{
|
|
5217
|
+
"properties": {
|
|
3642
5218
|
"type": "object",
|
|
3643
|
-
"
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
"$ref": "#/components/schemas/
|
|
5219
|
+
"description": "For kind=object, the properties and their type descriptors",
|
|
5220
|
+
"additionalProperties": {
|
|
5221
|
+
"$ref": "#/components/schemas/TypeDescriptor"
|
|
5222
|
+
}
|
|
5223
|
+
},
|
|
5224
|
+
"items": {
|
|
5225
|
+
"description": "For kind=array, the type of array items",
|
|
5226
|
+
"allOf": [
|
|
5227
|
+
{
|
|
5228
|
+
"$ref": "#/components/schemas/TypeDescriptor"
|
|
3653
5229
|
}
|
|
5230
|
+
]
|
|
5231
|
+
},
|
|
5232
|
+
"source": {
|
|
5233
|
+
"type": "string",
|
|
5234
|
+
"description": "For kind=unknown, the JSONata path that produced this value"
|
|
5235
|
+
},
|
|
5236
|
+
"variants": {
|
|
5237
|
+
"type": "array",
|
|
5238
|
+
"description": "For kind=union, the variant types",
|
|
5239
|
+
"items": {
|
|
5240
|
+
"$ref": "#/components/schemas/TypeDescriptor"
|
|
3654
5241
|
}
|
|
3655
5242
|
}
|
|
3656
|
-
|
|
5243
|
+
}
|
|
3657
5244
|
},
|
|
3658
|
-
"
|
|
3659
|
-
"
|
|
3660
|
-
|
|
3661
|
-
|
|
5245
|
+
"UseCaseTypePreview": {
|
|
5246
|
+
"type": "object",
|
|
5247
|
+
"description": "Scaffolded type descriptors for a single use case",
|
|
5248
|
+
"required": [
|
|
5249
|
+
"slug",
|
|
5250
|
+
"request_shape",
|
|
5251
|
+
"response_shape"
|
|
5252
|
+
],
|
|
5253
|
+
"properties": {
|
|
5254
|
+
"slug": {
|
|
5255
|
+
"type": "string"
|
|
3662
5256
|
},
|
|
3663
|
-
{
|
|
3664
|
-
"
|
|
5257
|
+
"name": {
|
|
5258
|
+
"type": "string"
|
|
3665
5259
|
},
|
|
3666
|
-
{
|
|
3667
|
-
"$ref": "#/components/schemas/
|
|
3668
|
-
}
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
"
|
|
3673
|
-
"
|
|
3674
|
-
"outbound": "#/components/schemas/OutboundUseCaseHistoryEntry",
|
|
3675
|
-
"file_proxy": "#/components/schemas/FileProxyUseCaseHistoryEntry"
|
|
5260
|
+
"request_shape": {
|
|
5261
|
+
"$ref": "#/components/schemas/TypeDescriptor"
|
|
5262
|
+
},
|
|
5263
|
+
"response_shape": {
|
|
5264
|
+
"$ref": "#/components/schemas/TypeDescriptor"
|
|
5265
|
+
},
|
|
5266
|
+
"existing_annotations": {
|
|
5267
|
+
"$ref": "#/components/schemas/TypeAnnotations"
|
|
3676
5268
|
}
|
|
3677
5269
|
}
|
|
3678
5270
|
},
|
|
3679
|
-
"
|
|
5271
|
+
"GenerateTypesPreviewResponse": {
|
|
3680
5272
|
"type": "object",
|
|
3681
5273
|
"required": [
|
|
3682
|
-
"
|
|
3683
|
-
"useCaseId",
|
|
3684
|
-
"integrationId",
|
|
3685
|
-
"name",
|
|
3686
|
-
"type",
|
|
3687
|
-
"enabled",
|
|
3688
|
-
"created_at",
|
|
3689
|
-
"updated_at",
|
|
3690
|
-
"history_created_at"
|
|
5274
|
+
"use_cases"
|
|
3691
5275
|
],
|
|
3692
5276
|
"properties": {
|
|
3693
|
-
"
|
|
3694
|
-
"type": "string"
|
|
3695
|
-
"format": "uuid",
|
|
3696
|
-
"description": "Unique identifier for this history entry"
|
|
5277
|
+
"integration_name": {
|
|
5278
|
+
"type": "string"
|
|
3697
5279
|
},
|
|
3698
|
-
"
|
|
3699
|
-
"type": "
|
|
3700
|
-
"
|
|
3701
|
-
|
|
5280
|
+
"use_cases": {
|
|
5281
|
+
"type": "array",
|
|
5282
|
+
"items": {
|
|
5283
|
+
"$ref": "#/components/schemas/UseCaseTypePreview"
|
|
5284
|
+
}
|
|
3702
5285
|
},
|
|
3703
|
-
"
|
|
5286
|
+
"previous_version": {
|
|
3704
5287
|
"type": "string",
|
|
3705
|
-
"
|
|
3706
|
-
"description": "Parent integration ID"
|
|
5288
|
+
"description": "Previously generated version, if any"
|
|
3707
5289
|
},
|
|
3708
|
-
"
|
|
5290
|
+
"suggested_version": {
|
|
3709
5291
|
"type": "string",
|
|
3710
|
-
"description": "
|
|
5292
|
+
"description": "Suggested next version based on detected changes"
|
|
3711
5293
|
},
|
|
3712
|
-
"
|
|
5294
|
+
"suggested_bump": {
|
|
3713
5295
|
"type": "string",
|
|
3714
|
-
"
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
"description": "Whether the use case was enabled at this point in history"
|
|
5296
|
+
"enum": [
|
|
5297
|
+
"major",
|
|
5298
|
+
"minor"
|
|
5299
|
+
]
|
|
3719
5300
|
},
|
|
3720
|
-
"
|
|
5301
|
+
"detected_changes": {
|
|
5302
|
+
"type": "array",
|
|
5303
|
+
"items": {
|
|
5304
|
+
"type": "object",
|
|
5305
|
+
"required": [
|
|
5306
|
+
"slug",
|
|
5307
|
+
"field",
|
|
5308
|
+
"type",
|
|
5309
|
+
"description"
|
|
5310
|
+
],
|
|
5311
|
+
"properties": {
|
|
5312
|
+
"slug": {
|
|
5313
|
+
"type": "string"
|
|
5314
|
+
},
|
|
5315
|
+
"field": {
|
|
5316
|
+
"type": "string"
|
|
5317
|
+
},
|
|
5318
|
+
"type": {
|
|
5319
|
+
"type": "string",
|
|
5320
|
+
"enum": [
|
|
5321
|
+
"breaking",
|
|
5322
|
+
"non-breaking"
|
|
5323
|
+
]
|
|
5324
|
+
},
|
|
5325
|
+
"description": {
|
|
5326
|
+
"type": "string"
|
|
5327
|
+
}
|
|
5328
|
+
}
|
|
5329
|
+
}
|
|
5330
|
+
}
|
|
5331
|
+
}
|
|
5332
|
+
},
|
|
5333
|
+
"GenerateTypesRequest": {
|
|
5334
|
+
"type": "object",
|
|
5335
|
+
"required": [
|
|
5336
|
+
"package_name",
|
|
5337
|
+
"version"
|
|
5338
|
+
],
|
|
5339
|
+
"properties": {
|
|
5340
|
+
"package_name": {
|
|
3721
5341
|
"type": "string",
|
|
3722
|
-
"description": "
|
|
5342
|
+
"description": "npm package name",
|
|
5343
|
+
"example": "@epilot/hems-cleverpv"
|
|
3723
5344
|
},
|
|
3724
|
-
"
|
|
5345
|
+
"version": {
|
|
3725
5346
|
"type": "string",
|
|
3726
|
-
"
|
|
3727
|
-
"
|
|
5347
|
+
"description": "Package version",
|
|
5348
|
+
"example": "1.0.0"
|
|
3728
5349
|
},
|
|
3729
|
-
"
|
|
5350
|
+
"description": {
|
|
5351
|
+
"type": "string"
|
|
5352
|
+
},
|
|
5353
|
+
"domain_package": {
|
|
3730
5354
|
"type": "string",
|
|
3731
|
-
"
|
|
3732
|
-
"
|
|
5355
|
+
"description": "Domain standard package to extend",
|
|
5356
|
+
"example": "@epilot/hems"
|
|
3733
5357
|
},
|
|
3734
|
-
"
|
|
5358
|
+
"domain_map_name": {
|
|
3735
5359
|
"type": "string",
|
|
3736
|
-
"
|
|
3737
|
-
"
|
|
5360
|
+
"description": "Name of the domain UseCaseMap to extend",
|
|
5361
|
+
"example": "HemsUseCaseMap"
|
|
5362
|
+
},
|
|
5363
|
+
"annotations": {
|
|
5364
|
+
"type": "object",
|
|
5365
|
+
"description": "Type annotations per use case slug",
|
|
5366
|
+
"additionalProperties": {
|
|
5367
|
+
"$ref": "#/components/schemas/TypeAnnotations"
|
|
5368
|
+
}
|
|
3738
5369
|
}
|
|
3739
5370
|
}
|
|
3740
5371
|
},
|
|
3741
|
-
"
|
|
3742
|
-
"
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
"
|
|
3760
|
-
|
|
3761
|
-
|
|
5372
|
+
"GenerateTypesResponse": {
|
|
5373
|
+
"type": "object",
|
|
5374
|
+
"required": [
|
|
5375
|
+
"package_name",
|
|
5376
|
+
"version",
|
|
5377
|
+
"files"
|
|
5378
|
+
],
|
|
5379
|
+
"properties": {
|
|
5380
|
+
"package_name": {
|
|
5381
|
+
"type": "string"
|
|
5382
|
+
},
|
|
5383
|
+
"version": {
|
|
5384
|
+
"type": "string"
|
|
5385
|
+
},
|
|
5386
|
+
"files": {
|
|
5387
|
+
"type": "object",
|
|
5388
|
+
"description": "Generated file contents keyed by file path",
|
|
5389
|
+
"additionalProperties": {
|
|
5390
|
+
"type": "string"
|
|
5391
|
+
}
|
|
5392
|
+
},
|
|
5393
|
+
"warnings": {
|
|
5394
|
+
"type": "array",
|
|
5395
|
+
"items": {
|
|
5396
|
+
"type": "string"
|
|
3762
5397
|
}
|
|
3763
5398
|
}
|
|
3764
|
-
|
|
5399
|
+
}
|
|
3765
5400
|
},
|
|
3766
|
-
"
|
|
3767
|
-
"
|
|
3768
|
-
|
|
3769
|
-
|
|
5401
|
+
"CommitTypesRequest": {
|
|
5402
|
+
"type": "object",
|
|
5403
|
+
"required": [
|
|
5404
|
+
"package_name",
|
|
5405
|
+
"version"
|
|
5406
|
+
],
|
|
5407
|
+
"properties": {
|
|
5408
|
+
"package_name": {
|
|
5409
|
+
"type": "string",
|
|
5410
|
+
"description": "npm package name",
|
|
5411
|
+
"example": "@epilot/hems-cleverpv"
|
|
3770
5412
|
},
|
|
3771
|
-
{
|
|
5413
|
+
"version": {
|
|
5414
|
+
"type": "string",
|
|
5415
|
+
"description": "Package version",
|
|
5416
|
+
"example": "1.0.0"
|
|
5417
|
+
},
|
|
5418
|
+
"annotations": {
|
|
3772
5419
|
"type": "object",
|
|
3773
|
-
"
|
|
3774
|
-
|
|
3775
|
-
|
|
3776
|
-
"properties": {
|
|
3777
|
-
"type": {
|
|
3778
|
-
"type": "string",
|
|
3779
|
-
"enum": [
|
|
3780
|
-
"outbound"
|
|
3781
|
-
],
|
|
3782
|
-
"description": "Use case type"
|
|
3783
|
-
},
|
|
3784
|
-
"configuration": {
|
|
3785
|
-
"$ref": "#/components/schemas/OutboundIntegrationEventConfiguration"
|
|
3786
|
-
}
|
|
5420
|
+
"description": "Type annotations per use case slug",
|
|
5421
|
+
"additionalProperties": {
|
|
5422
|
+
"$ref": "#/components/schemas/TypeAnnotations"
|
|
3787
5423
|
}
|
|
3788
5424
|
}
|
|
3789
|
-
|
|
5425
|
+
}
|
|
3790
5426
|
},
|
|
3791
|
-
"
|
|
3792
|
-
"
|
|
3793
|
-
|
|
3794
|
-
|
|
5427
|
+
"CommitTypesResponse": {
|
|
5428
|
+
"type": "object",
|
|
5429
|
+
"required": [
|
|
5430
|
+
"committed"
|
|
5431
|
+
],
|
|
5432
|
+
"properties": {
|
|
5433
|
+
"committed": {
|
|
5434
|
+
"type": "boolean"
|
|
3795
5435
|
},
|
|
3796
|
-
{
|
|
3797
|
-
"type": "
|
|
3798
|
-
"
|
|
3799
|
-
"type"
|
|
3800
|
-
],
|
|
3801
|
-
"properties": {
|
|
3802
|
-
"type": {
|
|
3803
|
-
"type": "string",
|
|
3804
|
-
"enum": [
|
|
3805
|
-
"file_proxy"
|
|
3806
|
-
],
|
|
3807
|
-
"description": "Use case type"
|
|
3808
|
-
},
|
|
3809
|
-
"configuration": {
|
|
3810
|
-
"$ref": "#/components/schemas/FileProxyUseCaseConfiguration"
|
|
3811
|
-
}
|
|
5436
|
+
"warnings": {
|
|
5437
|
+
"type": "array",
|
|
5438
|
+
"items": {
|
|
5439
|
+
"type": "string"
|
|
3812
5440
|
}
|
|
3813
5441
|
}
|
|
3814
|
-
|
|
5442
|
+
}
|
|
3815
5443
|
},
|
|
3816
5444
|
"FileProxyUseCaseConfiguration": {
|
|
3817
5445
|
"type": "object",
|
|
@@ -3821,11 +5449,13 @@
|
|
|
3821
5449
|
],
|
|
3822
5450
|
"description": "Configuration for file_proxy use cases. Defines how to authenticate and fetch files from external document systems.\n\nThe file proxy download URL always requires `orgId`, `integrationId`, and either `useCaseSlug` (recommended) or `useCaseId` (legacy UUID) as query parameters.\nThe `orgId` is included in the signed URL to establish organization context without requiring authentication.\nAdditional use-case-specific parameters are declared in the `params` array.\n",
|
|
3823
5451
|
"properties": {
|
|
3824
|
-
"
|
|
3825
|
-
"
|
|
3826
|
-
"
|
|
3827
|
-
|
|
3828
|
-
|
|
5452
|
+
"secure_proxy": {
|
|
5453
|
+
"description": "Optional secure proxy attachment for routing all outbound file proxy requests.\nOnly `use_case_slug` is supported and the referenced secure_proxy use case\nmust belong to the same integration.\n",
|
|
5454
|
+
"allOf": [
|
|
5455
|
+
{
|
|
5456
|
+
"$ref": "#/components/schemas/FileProxySecureProxyAttachment"
|
|
5457
|
+
}
|
|
5458
|
+
]
|
|
3829
5459
|
},
|
|
3830
5460
|
"auth": {
|
|
3831
5461
|
"$ref": "#/components/schemas/FileProxyAuth"
|
|
@@ -3850,6 +5480,19 @@
|
|
|
3850
5480
|
}
|
|
3851
5481
|
}
|
|
3852
5482
|
},
|
|
5483
|
+
"FileProxySecureProxyAttachment": {
|
|
5484
|
+
"type": "object",
|
|
5485
|
+
"required": [
|
|
5486
|
+
"use_case_slug"
|
|
5487
|
+
],
|
|
5488
|
+
"additionalProperties": false,
|
|
5489
|
+
"properties": {
|
|
5490
|
+
"use_case_slug": {
|
|
5491
|
+
"type": "string",
|
|
5492
|
+
"description": "Slug of the secure_proxy use case in the same integration."
|
|
5493
|
+
}
|
|
5494
|
+
}
|
|
5495
|
+
},
|
|
3853
5496
|
"FileProxyAuth": {
|
|
3854
5497
|
"type": "object",
|
|
3855
5498
|
"required": [
|
|
@@ -4336,7 +5979,6 @@
|
|
|
4336
5979
|
"OutboundMapping": {
|
|
4337
5980
|
"type": "object",
|
|
4338
5981
|
"required": [
|
|
4339
|
-
"id",
|
|
4340
5982
|
"name",
|
|
4341
5983
|
"jsonata_expression",
|
|
4342
5984
|
"enabled",
|
|
@@ -5426,48 +7068,222 @@
|
|
|
5426
7068
|
},
|
|
5427
7069
|
"event_id": {
|
|
5428
7070
|
"type": "string",
|
|
5429
|
-
"description": "Unique event identifier"
|
|
7071
|
+
"description": "Unique event identifier"
|
|
7072
|
+
},
|
|
7073
|
+
"correlation_id": {
|
|
7074
|
+
"type": "string",
|
|
7075
|
+
"nullable": true,
|
|
7076
|
+
"description": "Correlation ID for tracing related events"
|
|
7077
|
+
},
|
|
7078
|
+
"integration_id": {
|
|
7079
|
+
"type": "string",
|
|
7080
|
+
"nullable": true,
|
|
7081
|
+
"description": "Integration ID"
|
|
7082
|
+
},
|
|
7083
|
+
"use_case_id": {
|
|
7084
|
+
"type": "string",
|
|
7085
|
+
"nullable": true,
|
|
7086
|
+
"description": "Use case ID"
|
|
7087
|
+
},
|
|
7088
|
+
"event_type": {
|
|
7089
|
+
"type": "string",
|
|
7090
|
+
"enum": [
|
|
7091
|
+
"CREATE",
|
|
7092
|
+
"UPDATE",
|
|
7093
|
+
"DELETE",
|
|
7094
|
+
"TRIGGER"
|
|
7095
|
+
],
|
|
7096
|
+
"description": "Type of event (optional for V3 events)"
|
|
7097
|
+
},
|
|
7098
|
+
"object_type": {
|
|
7099
|
+
"type": "string",
|
|
7100
|
+
"description": "Type of object being synced (e.g., 'contract', 'meter')"
|
|
7101
|
+
},
|
|
7102
|
+
"sync_type": {
|
|
7103
|
+
"type": "string",
|
|
7104
|
+
"enum": [
|
|
7105
|
+
"entity",
|
|
7106
|
+
"meter_reading",
|
|
7107
|
+
"webhook",
|
|
7108
|
+
"api_deprecation"
|
|
7109
|
+
],
|
|
7110
|
+
"description": "Type of sync operation"
|
|
7111
|
+
},
|
|
7112
|
+
"status": {
|
|
7113
|
+
"type": "string",
|
|
7114
|
+
"enum": [
|
|
7115
|
+
"success",
|
|
7116
|
+
"error",
|
|
7117
|
+
"skipped",
|
|
7118
|
+
"warning"
|
|
7119
|
+
],
|
|
7120
|
+
"description": "Processing status"
|
|
7121
|
+
},
|
|
7122
|
+
"error_code": {
|
|
7123
|
+
"type": "string",
|
|
7124
|
+
"nullable": true,
|
|
7125
|
+
"description": "Error code (when status=error)"
|
|
7126
|
+
},
|
|
7127
|
+
"error_message": {
|
|
7128
|
+
"type": "string",
|
|
7129
|
+
"nullable": true,
|
|
7130
|
+
"description": "Error message (when status=error)"
|
|
7131
|
+
},
|
|
7132
|
+
"error_category": {
|
|
7133
|
+
"type": "string",
|
|
7134
|
+
"nullable": true,
|
|
7135
|
+
"enum": [
|
|
7136
|
+
"validation",
|
|
7137
|
+
"configuration",
|
|
7138
|
+
"downstream_api",
|
|
7139
|
+
"timeout",
|
|
7140
|
+
"system"
|
|
7141
|
+
],
|
|
7142
|
+
"description": "Error category (when status=error)"
|
|
7143
|
+
},
|
|
7144
|
+
"processing_duration_ms": {
|
|
7145
|
+
"type": "integer",
|
|
7146
|
+
"nullable": true,
|
|
7147
|
+
"description": "Processing duration in milliseconds"
|
|
7148
|
+
},
|
|
7149
|
+
"received_at": {
|
|
7150
|
+
"type": "string",
|
|
7151
|
+
"format": "date-time",
|
|
7152
|
+
"description": "When the event was received"
|
|
7153
|
+
},
|
|
7154
|
+
"completed_at": {
|
|
7155
|
+
"type": "string",
|
|
7156
|
+
"format": "date-time",
|
|
7157
|
+
"description": "When processing completed"
|
|
7158
|
+
}
|
|
7159
|
+
}
|
|
7160
|
+
},
|
|
7161
|
+
"QueryMonitoringEventsV2Request": {
|
|
7162
|
+
"type": "object",
|
|
7163
|
+
"properties": {
|
|
7164
|
+
"use_case_id": {
|
|
7165
|
+
"type": "string",
|
|
7166
|
+
"description": "Filter by use case ID (UUID). Empty string matches \"General\" events."
|
|
7167
|
+
},
|
|
7168
|
+
"use_case_type": {
|
|
7169
|
+
"type": "string",
|
|
7170
|
+
"enum": [
|
|
7171
|
+
"inbound",
|
|
7172
|
+
"outbound",
|
|
7173
|
+
"file_proxy",
|
|
7174
|
+
"managed_call",
|
|
7175
|
+
"secure_proxy"
|
|
7176
|
+
],
|
|
7177
|
+
"description": "Filter by use case type (replaces direction)"
|
|
7178
|
+
},
|
|
7179
|
+
"level": {
|
|
7180
|
+
"type": "string",
|
|
7181
|
+
"enum": [
|
|
7182
|
+
"success",
|
|
7183
|
+
"error",
|
|
7184
|
+
"skipped",
|
|
7185
|
+
"warning"
|
|
7186
|
+
],
|
|
7187
|
+
"description": "Filter by event level"
|
|
7188
|
+
},
|
|
7189
|
+
"code": {
|
|
7190
|
+
"type": "string",
|
|
7191
|
+
"description": "Filter by taxonomy code (e.g. OAUTH2_TOKEN_FAILURE, HTTP_502)"
|
|
7192
|
+
},
|
|
7193
|
+
"event_id": {
|
|
7194
|
+
"type": "string",
|
|
7195
|
+
"description": "Filter by trigger/inbound event ID"
|
|
7196
|
+
},
|
|
7197
|
+
"correlation_id": {
|
|
7198
|
+
"type": "string",
|
|
7199
|
+
"description": "Filter by correlation ID for tracing"
|
|
7200
|
+
},
|
|
7201
|
+
"from_date": {
|
|
7202
|
+
"type": "string",
|
|
7203
|
+
"format": "date-time",
|
|
7204
|
+
"description": "Filter events from this date (inclusive)",
|
|
7205
|
+
"example": "2025-01-01T00:00:00Z"
|
|
7206
|
+
},
|
|
7207
|
+
"to_date": {
|
|
7208
|
+
"type": "string",
|
|
7209
|
+
"format": "date-time",
|
|
7210
|
+
"description": "Filter events until this date (inclusive)",
|
|
7211
|
+
"example": "2025-01-31T23:59:59Z"
|
|
7212
|
+
},
|
|
7213
|
+
"limit": {
|
|
7214
|
+
"type": "integer",
|
|
7215
|
+
"description": "Maximum number of results to return",
|
|
7216
|
+
"example": 50,
|
|
7217
|
+
"default": 50,
|
|
7218
|
+
"minimum": 1,
|
|
7219
|
+
"maximum": 100
|
|
7220
|
+
},
|
|
7221
|
+
"cursor": {
|
|
7222
|
+
"type": "object",
|
|
7223
|
+
"description": "Cursor for pagination (from previous response's next_cursor)",
|
|
7224
|
+
"properties": {
|
|
7225
|
+
"created_at": {
|
|
7226
|
+
"type": "string",
|
|
7227
|
+
"format": "date-time"
|
|
7228
|
+
},
|
|
7229
|
+
"id": {
|
|
7230
|
+
"type": "string",
|
|
7231
|
+
"format": "uuid"
|
|
7232
|
+
}
|
|
7233
|
+
}
|
|
7234
|
+
}
|
|
7235
|
+
}
|
|
7236
|
+
},
|
|
7237
|
+
"MonitoringEventV2": {
|
|
7238
|
+
"type": "object",
|
|
7239
|
+
"required": [
|
|
7240
|
+
"id",
|
|
7241
|
+
"org_id",
|
|
7242
|
+
"integration_id",
|
|
7243
|
+
"event_id",
|
|
7244
|
+
"use_case_type",
|
|
7245
|
+
"level",
|
|
7246
|
+
"created_at"
|
|
7247
|
+
],
|
|
7248
|
+
"properties": {
|
|
7249
|
+
"id": {
|
|
7250
|
+
"type": "string",
|
|
7251
|
+
"format": "uuid",
|
|
7252
|
+
"description": "Unique monitoring event ID"
|
|
5430
7253
|
},
|
|
5431
|
-
"
|
|
7254
|
+
"org_id": {
|
|
5432
7255
|
"type": "string",
|
|
5433
|
-
"
|
|
5434
|
-
"description": "Correlation ID for tracing related events"
|
|
7256
|
+
"description": "Organization ID"
|
|
5435
7257
|
},
|
|
5436
7258
|
"integration_id": {
|
|
5437
7259
|
"type": "string",
|
|
5438
|
-
"nullable": true,
|
|
5439
7260
|
"description": "Integration ID"
|
|
5440
7261
|
},
|
|
5441
|
-
"
|
|
7262
|
+
"event_id": {
|
|
5442
7263
|
"type": "string",
|
|
5443
|
-
"
|
|
5444
|
-
"description": "Use case ID"
|
|
7264
|
+
"description": "Trigger/inbound event ID (groups related monitoring events)"
|
|
5445
7265
|
},
|
|
5446
|
-
"
|
|
7266
|
+
"correlation_id": {
|
|
5447
7267
|
"type": "string",
|
|
5448
|
-
"
|
|
5449
|
-
"CREATE",
|
|
5450
|
-
"UPDATE",
|
|
5451
|
-
"DELETE",
|
|
5452
|
-
"TRIGGER"
|
|
5453
|
-
],
|
|
5454
|
-
"description": "Type of event (optional for V3 events)"
|
|
7268
|
+
"description": "Correlation ID for tracing. Empty when unavailable."
|
|
5455
7269
|
},
|
|
5456
|
-
"
|
|
7270
|
+
"use_case_id": {
|
|
5457
7271
|
"type": "string",
|
|
5458
|
-
"description": "
|
|
7272
|
+
"description": "Use case ID. Empty for system-level events (\"General\")."
|
|
5459
7273
|
},
|
|
5460
|
-
"
|
|
7274
|
+
"use_case_type": {
|
|
5461
7275
|
"type": "string",
|
|
5462
7276
|
"enum": [
|
|
5463
|
-
"
|
|
5464
|
-
"
|
|
5465
|
-
"
|
|
5466
|
-
"
|
|
7277
|
+
"inbound",
|
|
7278
|
+
"outbound",
|
|
7279
|
+
"file_proxy",
|
|
7280
|
+
"managed_call",
|
|
7281
|
+
"secure_proxy",
|
|
7282
|
+
""
|
|
5467
7283
|
],
|
|
5468
|
-
"description": "
|
|
7284
|
+
"description": "Use case type. Empty for system-level events."
|
|
5469
7285
|
},
|
|
5470
|
-
"
|
|
7286
|
+
"level": {
|
|
5471
7287
|
"type": "string",
|
|
5472
7288
|
"enum": [
|
|
5473
7289
|
"success",
|
|
@@ -5475,44 +7291,198 @@
|
|
|
5475
7291
|
"skipped",
|
|
5476
7292
|
"warning"
|
|
5477
7293
|
],
|
|
5478
|
-
"description": "
|
|
7294
|
+
"description": "Event outcome level"
|
|
5479
7295
|
},
|
|
5480
|
-
"
|
|
7296
|
+
"code": {
|
|
5481
7297
|
"type": "string",
|
|
5482
|
-
"
|
|
5483
|
-
"description": "Error code (when status=error)"
|
|
7298
|
+
"description": "Taxonomy code (e.g. OAUTH2_TOKEN_FAILURE, HTTP_502). Empty for success."
|
|
5484
7299
|
},
|
|
5485
|
-
"
|
|
7300
|
+
"message": {
|
|
5486
7301
|
"type": "string",
|
|
7302
|
+
"description": "Human-readable message. Empty when not applicable."
|
|
7303
|
+
},
|
|
7304
|
+
"detail": {
|
|
7305
|
+
"type": "object",
|
|
5487
7306
|
"nullable": true,
|
|
5488
|
-
"
|
|
7307
|
+
"additionalProperties": true,
|
|
7308
|
+
"description": "Event-specific JSON data. Structure determined by `code`."
|
|
5489
7309
|
},
|
|
5490
|
-
"
|
|
7310
|
+
"created_at": {
|
|
7311
|
+
"type": "string",
|
|
7312
|
+
"format": "date-time",
|
|
7313
|
+
"description": "When the monitoring event was created"
|
|
7314
|
+
}
|
|
7315
|
+
}
|
|
7316
|
+
},
|
|
7317
|
+
"GetMonitoringStatsV2Request": {
|
|
7318
|
+
"type": "object",
|
|
7319
|
+
"properties": {
|
|
7320
|
+
"from_date": {
|
|
7321
|
+
"type": "string",
|
|
7322
|
+
"format": "date-time",
|
|
7323
|
+
"description": "Start of the time range",
|
|
7324
|
+
"example": "2025-01-01T00:00:00Z"
|
|
7325
|
+
},
|
|
7326
|
+
"to_date": {
|
|
7327
|
+
"type": "string",
|
|
7328
|
+
"format": "date-time",
|
|
7329
|
+
"description": "End of the time range",
|
|
7330
|
+
"example": "2025-01-31T23:59:59Z"
|
|
7331
|
+
},
|
|
7332
|
+
"use_case_type": {
|
|
5491
7333
|
"type": "string",
|
|
5492
|
-
"nullable": true,
|
|
5493
7334
|
"enum": [
|
|
5494
|
-
"
|
|
5495
|
-
"
|
|
5496
|
-
"
|
|
5497
|
-
"
|
|
5498
|
-
"
|
|
7335
|
+
"inbound",
|
|
7336
|
+
"outbound",
|
|
7337
|
+
"file_proxy",
|
|
7338
|
+
"managed_call",
|
|
7339
|
+
"secure_proxy"
|
|
5499
7340
|
],
|
|
5500
|
-
"description": "
|
|
7341
|
+
"description": "Filter stats by use case type"
|
|
5501
7342
|
},
|
|
5502
|
-
"
|
|
7343
|
+
"group_by": {
|
|
7344
|
+
"type": "string",
|
|
7345
|
+
"enum": [
|
|
7346
|
+
"use_case_id",
|
|
7347
|
+
"use_case_type",
|
|
7348
|
+
"level",
|
|
7349
|
+
"code",
|
|
7350
|
+
"date"
|
|
7351
|
+
],
|
|
7352
|
+
"description": "Field to group the breakdown by"
|
|
7353
|
+
}
|
|
7354
|
+
}
|
|
7355
|
+
},
|
|
7356
|
+
"MonitoringStatsV2": {
|
|
7357
|
+
"type": "object",
|
|
7358
|
+
"required": [
|
|
7359
|
+
"total_events",
|
|
7360
|
+
"success_count",
|
|
7361
|
+
"error_count",
|
|
7362
|
+
"warning_count",
|
|
7363
|
+
"skipped_count"
|
|
7364
|
+
],
|
|
7365
|
+
"properties": {
|
|
7366
|
+
"total_events": {
|
|
7367
|
+
"type": "integer",
|
|
7368
|
+
"description": "Total number of events in the period"
|
|
7369
|
+
},
|
|
7370
|
+
"success_count": {
|
|
7371
|
+
"type": "integer",
|
|
7372
|
+
"description": "Number of successful events"
|
|
7373
|
+
},
|
|
7374
|
+
"error_count": {
|
|
7375
|
+
"type": "integer",
|
|
7376
|
+
"description": "Number of error events"
|
|
7377
|
+
},
|
|
7378
|
+
"warning_count": {
|
|
7379
|
+
"type": "integer",
|
|
7380
|
+
"description": "Number of warning events"
|
|
7381
|
+
},
|
|
7382
|
+
"skipped_count": {
|
|
7383
|
+
"type": "integer",
|
|
7384
|
+
"description": "Number of skipped events"
|
|
7385
|
+
},
|
|
7386
|
+
"ack_timeout_count": {
|
|
5503
7387
|
"type": "integer",
|
|
7388
|
+
"description": "Number of ACK_TIMEOUT events (acknowledgement timed out)"
|
|
7389
|
+
},
|
|
7390
|
+
"success_rate": {
|
|
7391
|
+
"type": "number",
|
|
7392
|
+
"format": "float",
|
|
7393
|
+
"description": "Success rate as percentage (0-100)"
|
|
7394
|
+
},
|
|
7395
|
+
"last_error_at": {
|
|
7396
|
+
"type": "string",
|
|
7397
|
+
"format": "date-time",
|
|
5504
7398
|
"nullable": true,
|
|
5505
|
-
"description": "
|
|
7399
|
+
"description": "Timestamp of the most recent error"
|
|
5506
7400
|
},
|
|
5507
|
-
"
|
|
7401
|
+
"breakdown": {
|
|
7402
|
+
"type": "array",
|
|
7403
|
+
"description": "Statistics breakdown by requested group_by field",
|
|
7404
|
+
"items": {
|
|
7405
|
+
"type": "object",
|
|
7406
|
+
"additionalProperties": true
|
|
7407
|
+
}
|
|
7408
|
+
}
|
|
7409
|
+
}
|
|
7410
|
+
},
|
|
7411
|
+
"GetMonitoringTimeSeriesV2Request": {
|
|
7412
|
+
"type": "object",
|
|
7413
|
+
"required": [
|
|
7414
|
+
"from_date",
|
|
7415
|
+
"interval"
|
|
7416
|
+
],
|
|
7417
|
+
"properties": {
|
|
7418
|
+
"from_date": {
|
|
5508
7419
|
"type": "string",
|
|
5509
7420
|
"format": "date-time",
|
|
5510
|
-
"description": "
|
|
7421
|
+
"description": "Start of the time range (required)",
|
|
7422
|
+
"example": "2025-01-01T00:00:00Z"
|
|
5511
7423
|
},
|
|
5512
|
-
"
|
|
7424
|
+
"to_date": {
|
|
5513
7425
|
"type": "string",
|
|
5514
7426
|
"format": "date-time",
|
|
5515
|
-
"description": "
|
|
7427
|
+
"description": "End of the time range (defaults to now)",
|
|
7428
|
+
"example": "2025-01-31T23:59:59Z"
|
|
7429
|
+
},
|
|
7430
|
+
"interval": {
|
|
7431
|
+
"type": "string",
|
|
7432
|
+
"enum": [
|
|
7433
|
+
"5m",
|
|
7434
|
+
"10m",
|
|
7435
|
+
"30m",
|
|
7436
|
+
"1h",
|
|
7437
|
+
"3h",
|
|
7438
|
+
"1d"
|
|
7439
|
+
],
|
|
7440
|
+
"description": "Time bucket interval"
|
|
7441
|
+
},
|
|
7442
|
+
"use_case_type": {
|
|
7443
|
+
"type": "string",
|
|
7444
|
+
"enum": [
|
|
7445
|
+
"inbound",
|
|
7446
|
+
"outbound",
|
|
7447
|
+
"file_proxy",
|
|
7448
|
+
"managed_call",
|
|
7449
|
+
"secure_proxy"
|
|
7450
|
+
],
|
|
7451
|
+
"description": "Filter by use case type"
|
|
7452
|
+
}
|
|
7453
|
+
}
|
|
7454
|
+
},
|
|
7455
|
+
"TimeSeriesBucketV2": {
|
|
7456
|
+
"type": "object",
|
|
7457
|
+
"required": [
|
|
7458
|
+
"timestamp",
|
|
7459
|
+
"total_count"
|
|
7460
|
+
],
|
|
7461
|
+
"properties": {
|
|
7462
|
+
"timestamp": {
|
|
7463
|
+
"type": "string",
|
|
7464
|
+
"format": "date-time",
|
|
7465
|
+
"description": "Bucket start timestamp"
|
|
7466
|
+
},
|
|
7467
|
+
"success_count": {
|
|
7468
|
+
"type": "integer",
|
|
7469
|
+
"description": "Number of successful events in the bucket"
|
|
7470
|
+
},
|
|
7471
|
+
"error_count": {
|
|
7472
|
+
"type": "integer",
|
|
7473
|
+
"description": "Number of error events in the bucket"
|
|
7474
|
+
},
|
|
7475
|
+
"warning_count": {
|
|
7476
|
+
"type": "integer",
|
|
7477
|
+
"description": "Number of warning events in the bucket"
|
|
7478
|
+
},
|
|
7479
|
+
"skipped_count": {
|
|
7480
|
+
"type": "integer",
|
|
7481
|
+
"description": "Number of skipped events in the bucket"
|
|
7482
|
+
},
|
|
7483
|
+
"total_count": {
|
|
7484
|
+
"type": "integer",
|
|
7485
|
+
"description": "Total events in the bucket"
|
|
5516
7486
|
}
|
|
5517
7487
|
}
|
|
5518
7488
|
}
|
|
@@ -5548,6 +7518,16 @@
|
|
|
5548
7518
|
}
|
|
5549
7519
|
}
|
|
5550
7520
|
},
|
|
7521
|
+
"Forbidden": {
|
|
7522
|
+
"description": "Forbidden - insufficient permissions",
|
|
7523
|
+
"content": {
|
|
7524
|
+
"application/json": {
|
|
7525
|
+
"schema": {
|
|
7526
|
+
"$ref": "#/components/schemas/ErrorResponseBase"
|
|
7527
|
+
}
|
|
7528
|
+
}
|
|
7529
|
+
}
|
|
7530
|
+
},
|
|
5551
7531
|
"InternalServerError": {
|
|
5552
7532
|
"description": "Internal Server Error",
|
|
5553
7533
|
"content": {
|
|
@@ -5839,6 +7819,117 @@
|
|
|
5839
7819
|
}
|
|
5840
7820
|
}
|
|
5841
7821
|
}
|
|
7822
|
+
},
|
|
7823
|
+
"QueryMonitoringEventsV2Response": {
|
|
7824
|
+
"description": "Monitoring events queried successfully",
|
|
7825
|
+
"content": {
|
|
7826
|
+
"application/json": {
|
|
7827
|
+
"schema": {
|
|
7828
|
+
"type": "object",
|
|
7829
|
+
"properties": {
|
|
7830
|
+
"data": {
|
|
7831
|
+
"type": "array",
|
|
7832
|
+
"items": {
|
|
7833
|
+
"$ref": "#/components/schemas/MonitoringEventV2"
|
|
7834
|
+
},
|
|
7835
|
+
"description": "List of monitoring events"
|
|
7836
|
+
},
|
|
7837
|
+
"next_cursor": {
|
|
7838
|
+
"type": "object",
|
|
7839
|
+
"nullable": true,
|
|
7840
|
+
"description": "Cursor to fetch the next page. Null if no more results.",
|
|
7841
|
+
"properties": {
|
|
7842
|
+
"created_at": {
|
|
7843
|
+
"type": "string",
|
|
7844
|
+
"format": "date-time"
|
|
7845
|
+
},
|
|
7846
|
+
"id": {
|
|
7847
|
+
"type": "string",
|
|
7848
|
+
"format": "uuid"
|
|
7849
|
+
}
|
|
7850
|
+
}
|
|
7851
|
+
},
|
|
7852
|
+
"has_more": {
|
|
7853
|
+
"type": "boolean",
|
|
7854
|
+
"description": "Indicates if more results are available"
|
|
7855
|
+
}
|
|
7856
|
+
}
|
|
7857
|
+
}
|
|
7858
|
+
}
|
|
7859
|
+
}
|
|
7860
|
+
},
|
|
7861
|
+
"GetMonitoringStatsV2Response": {
|
|
7862
|
+
"description": "Monitoring statistics retrieved successfully",
|
|
7863
|
+
"content": {
|
|
7864
|
+
"application/json": {
|
|
7865
|
+
"schema": {
|
|
7866
|
+
"$ref": "#/components/schemas/MonitoringStatsV2"
|
|
7867
|
+
}
|
|
7868
|
+
}
|
|
7869
|
+
}
|
|
7870
|
+
},
|
|
7871
|
+
"GetMonitoringTimeSeriesV2Response": {
|
|
7872
|
+
"description": "Time-series data retrieved successfully",
|
|
7873
|
+
"content": {
|
|
7874
|
+
"application/json": {
|
|
7875
|
+
"schema": {
|
|
7876
|
+
"type": "object",
|
|
7877
|
+
"properties": {
|
|
7878
|
+
"interval": {
|
|
7879
|
+
"type": "string",
|
|
7880
|
+
"enum": [
|
|
7881
|
+
"5m",
|
|
7882
|
+
"10m",
|
|
7883
|
+
"30m",
|
|
7884
|
+
"1h",
|
|
7885
|
+
"3h",
|
|
7886
|
+
"1d"
|
|
7887
|
+
],
|
|
7888
|
+
"description": "The bucket interval"
|
|
7889
|
+
},
|
|
7890
|
+
"from_date": {
|
|
7891
|
+
"type": "string",
|
|
7892
|
+
"format": "date-time"
|
|
7893
|
+
},
|
|
7894
|
+
"to_date": {
|
|
7895
|
+
"type": "string",
|
|
7896
|
+
"format": "date-time"
|
|
7897
|
+
},
|
|
7898
|
+
"buckets": {
|
|
7899
|
+
"type": "array",
|
|
7900
|
+
"items": {
|
|
7901
|
+
"$ref": "#/components/schemas/TimeSeriesBucketV2"
|
|
7902
|
+
}
|
|
7903
|
+
}
|
|
7904
|
+
}
|
|
7905
|
+
}
|
|
7906
|
+
}
|
|
7907
|
+
}
|
|
7908
|
+
},
|
|
7909
|
+
"GetAssociatedMonitoringEventsResponse": {
|
|
7910
|
+
"description": "Associated monitoring events for the given event_id",
|
|
7911
|
+
"content": {
|
|
7912
|
+
"application/json": {
|
|
7913
|
+
"schema": {
|
|
7914
|
+
"type": "object",
|
|
7915
|
+
"properties": {
|
|
7916
|
+
"monitoring_events": {
|
|
7917
|
+
"type": "array",
|
|
7918
|
+
"items": {
|
|
7919
|
+
"$ref": "#/components/schemas/MonitoringEventV2"
|
|
7920
|
+
},
|
|
7921
|
+
"description": "All monitoring events sharing this event_id, ordered by created_at ASC"
|
|
7922
|
+
},
|
|
7923
|
+
"inbound_event": {
|
|
7924
|
+
"type": "object",
|
|
7925
|
+
"nullable": true,
|
|
7926
|
+
"additionalProperties": true,
|
|
7927
|
+
"description": "The original inbound event payload from erp_incoming_events, if available"
|
|
7928
|
+
}
|
|
7929
|
+
}
|
|
7930
|
+
}
|
|
7931
|
+
}
|
|
7932
|
+
}
|
|
5842
7933
|
}
|
|
5843
7934
|
}
|
|
5844
7935
|
}
|