@celigo/api-specs 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/account.yml +592 -0
  4. package/dist/agent.yml +908 -0
  5. package/dist/ai-agent.yml +5471 -0
  6. package/dist/api.yml +4140 -0
  7. package/dist/apim.yml +1286 -0
  8. package/dist/asynchelper.yml +3391 -0
  9. package/dist/audit.yml +2006 -0
  10. package/dist/connection.yml +8665 -0
  11. package/dist/connector.yml +1406 -0
  12. package/dist/ediprofile.yml +911 -0
  13. package/dist/editransaction.yml +1210 -0
  14. package/dist/enduser.yml +1724 -0
  15. package/dist/environment.yml +568 -0
  16. package/dist/eventreport.yml +692 -0
  17. package/dist/export.yml +17610 -0
  18. package/dist/filedefinition.yml +1396 -0
  19. package/dist/filestorage.yml +3102 -0
  20. package/dist/flow.yml +7928 -0
  21. package/dist/guardrail.yml +2763 -0
  22. package/dist/httpconnector.yml +2277 -0
  23. package/dist/httpconnectorendpoint.yml +722 -0
  24. package/dist/httpconnectorresource.yml +396 -0
  25. package/dist/iclient.yml +4452 -0
  26. package/dist/import.yml +15381 -0
  27. package/dist/integration.yml +4406 -0
  28. package/dist/job.yml +2014 -0
  29. package/dist/lookupcache.yml +1325 -0
  30. package/dist/marketplace.yml +685 -0
  31. package/dist/mcp-oauth-provider.yml +590 -0
  32. package/dist/mcp-server.yml +2656 -0
  33. package/dist/notification.yml +488 -0
  34. package/dist/processor.yml +1253 -0
  35. package/dist/profile.yml +455 -0
  36. package/dist/recyclebin.yml +768 -0
  37. package/dist/script.yml +1128 -0
  38. package/dist/stack.yml +1291 -0
  39. package/dist/state.yml +894 -0
  40. package/dist/subscription.yml +1405 -0
  41. package/dist/sync.yml +4857 -0
  42. package/dist/tag.yml +553 -0
  43. package/dist/template.yml +897 -0
  44. package/dist/tool.yml +33656 -0
  45. package/dist/tradingpartnerconnector.yml +1490 -0
  46. package/dist/user.yml +831 -0
  47. package/package.json +41 -0
  48. package/schemas.json +8420 -0
@@ -0,0 +1,2277 @@
1
+ openapi: 3.2.0
2
+ info:
3
+ version: 1.0.0
4
+ title: HTTP Connectors
5
+ description: API for managing Celigo HTTP Connectors — reusable API framework definitions inherited by HTTP connections, imports, and exports.
6
+ x-celigo-ai-guidance:
7
+ - |-
8
+ API for managing HTTP Connector framework resources in Celigo.
9
+ HTTP Connectors define versioned API frameworks (base URIs, versioning strategy,
10
+ supported-by rules) that can be used by HTTP connections, iClients, imports, and exports.
11
+ servers:
12
+ - url: https://api.integrator.io
13
+ description: Production (US / default region)
14
+ - url: https://api.eu.integrator.io
15
+ description: Production (EU region)
16
+ - url: https://api.au.integrator.io
17
+ description: Production (AU region)
18
+ - url: https://api.ca.integrator.io
19
+ description: Production (CA region)
20
+ security:
21
+ - bearerAuth: []
22
+ tags:
23
+ - name: HTTP Connectors
24
+ description: |-
25
+ HTTP Connectors define reusable API frameworks — base URIs, versioning
26
+ strategies, authentication presets, and supported-by rules — that
27
+ HTTP connections, iClients, imports, and exports inherit.
28
+
29
+ Each connector has one or more versions and may group multiple API
30
+ products under `apis[]`. Child resources (HTTP Connector Resources
31
+ and Endpoints) define the specific operations available.
32
+
33
+ Two structural patterns exist:
34
+ - **Flat** — versions and baseURIs sit directly on the connector.
35
+ Most connectors use this pattern.
36
+ - **Grouped** — the connector nests API products under `apis[]`,
37
+ each with its own versions and baseURIs.
38
+
39
+ ## HTTP connector schema
40
+
41
+ {% openapi-schemas spec="httpconnector" schemas="HTTPConnector" grouped="true" %}
42
+ paths:
43
+ /v1/httpconnectors:
44
+ get:
45
+ x-internal: false
46
+ operationId: listHttpConnectors
47
+ tags:
48
+ - HTTP Connectors
49
+ summary: List HTTP connectors
50
+ description: |-
51
+ Returns all HTTP Connectors visible to the authenticated account.
52
+ The list response is abridged -- it omits `published`, `baseURIs`,
53
+ `supportedBy`, and other detail fields. Use the by-ID endpoint for
54
+ the full object.
55
+ parameters:
56
+ - name: publishedOnly
57
+ in: query
58
+ description: When true, only return published HTTP Connectors.
59
+ schema:
60
+ type: boolean
61
+ responses:
62
+ '200':
63
+ description: Successfully retrieved list of HTTP Connectors.
64
+ content:
65
+ application/json:
66
+ schema:
67
+ type: array
68
+ items:
69
+ $ref: '#/components/schemas/ListItem'
70
+ examples:
71
+ two_connectors:
72
+ value:
73
+ - _id: 63987132784a39b73aae63cd
74
+ name: 15Five
75
+ createdAt: '2023-01-17T09:51:46.326Z'
76
+ lastModified: '2025-09-02T09:15:49.168Z'
77
+ _userId: 6316f2b1e37e79778a43391c
78
+ helpURL: https://docs.celigo.com/hc/en-us/articles/4411468706203
79
+ legacyId: 15five
80
+ legacyIds:
81
+ - 15five
82
+ isGraphQL: false
83
+ supportsIClient: false
84
+ hasBlobEndpoints: false
85
+ versions:
86
+ - _id: 63987132784a39b73aae63ce
87
+ name: v1
88
+ - _id: 6a1b2c3d4e5f6789abcdef01
89
+ name: AFAS ERP
90
+ createdAt: '2025-10-28T13:32:39.999Z'
91
+ lastModified: '2025-11-12T08:56:03.102Z'
92
+ _userId: 6316f2b1e37e79778a43391c
93
+ helpURL: https://docs.celigo.com/hc/en-us/articles/42612451102235
94
+ isGraphQL: false
95
+ supportsIClient: true
96
+ hasBlobEndpoints: false
97
+ apis:
98
+ - _id: 6a1b2c3d4e5f6789abcdef02
99
+ name: Profit
100
+ versions:
101
+ - _id: 6a1b2c3d4e5f6789abcdef03
102
+ name: v1
103
+ '204':
104
+ description: No HTTP Connectors match the filter criteria.
105
+ '401':
106
+ $ref: '#/components/responses/401-unauthorized'
107
+ post:
108
+ x-internal: false
109
+ operationId: createHttpConnector
110
+ tags:
111
+ - HTTP Connectors
112
+ summary: Create an HTTP connector
113
+ description: |-
114
+ Creates a new HTTP Connector framework definition. `name` is
115
+ required, along with either `versions` (flat connector) or `apis`
116
+ (grouped connector).
117
+ requestBody:
118
+ required: true
119
+ content:
120
+ application/json:
121
+ schema:
122
+ $ref: '#/components/schemas/Request'
123
+ examples:
124
+ flat_connector:
125
+ summary: Flat connector with one version
126
+ value:
127
+ name: Acme API
128
+ baseURIs:
129
+ - https://api.acme.com
130
+ versions:
131
+ - name: v1
132
+ published: true
133
+ supportedBy:
134
+ connection:
135
+ preConfiguredFields:
136
+ - path: type
137
+ values:
138
+ - http
139
+ responses:
140
+ '201':
141
+ description: HTTP Connector created successfully.
142
+ content:
143
+ application/json:
144
+ schema:
145
+ $ref: '#/components/schemas/HTTPConnector'
146
+ examples:
147
+ created:
148
+ summary: Created connector (detail shape)
149
+ value:
150
+ _id: 63987132784a39b73aae63cd
151
+ _userId: 6316f2b1e37e79778a43391c
152
+ name: 15Five
153
+ createdAt: '2023-01-17T09:51:46.326Z'
154
+ lastModified: '2023-01-17T09:51:46.326Z'
155
+ published: true
156
+ isGraphQL: false
157
+ requireBodyMatchForLinking: false
158
+ disableAutoLinking: false
159
+ baseURIs:
160
+ - https://my.15five.com
161
+ helpURL: https://docs.celigo.com/hc/en-us/articles/4411468706203
162
+ legacyId: 15five
163
+ versions:
164
+ - _id: 63987132784a39b73aae63ce
165
+ name: v1
166
+ published: true
167
+ supportedBy: {}
168
+ apis: []
169
+ supportedBy:
170
+ export:
171
+ preConfiguredFields:
172
+ - path: successMediaType
173
+ values:
174
+ - json
175
+ connection:
176
+ preConfiguredFields:
177
+ - path: type
178
+ values:
179
+ - http
180
+ '400':
181
+ $ref: '#/components/responses/400-bad-request'
182
+ '401':
183
+ $ref: '#/components/responses/401-unauthorized'
184
+ '403':
185
+ $ref: '#/components/responses/403-forbidden'
186
+ '422':
187
+ $ref: '#/components/responses/422-unprocessable-entity'
188
+ /v1/httpconnectors/{_id}:
189
+ get:
190
+ x-internal: false
191
+ operationId: getHttpConnectorById
192
+ tags:
193
+ - HTTP Connectors
194
+ summary: Get an HTTP connector
195
+ description: |-
196
+ Retrieves the full HTTP Connector object including `published`,
197
+ `baseURIs`, `supportedBy`, and version details omitted from the
198
+ list endpoint.
199
+ parameters:
200
+ - in: path
201
+ name: _id
202
+ required: true
203
+ schema:
204
+ type: string
205
+ format: objectId
206
+ description: HTTP Connector ID.
207
+ responses:
208
+ '200':
209
+ description: HTTP Connector retrieved successfully.
210
+ content:
211
+ application/json:
212
+ schema:
213
+ $ref: '#/components/schemas/HTTPConnector'
214
+ examples:
215
+ detail:
216
+ value:
217
+ _id: 63987132784a39b73aae63cd
218
+ _userId: 6316f2b1e37e79778a43391c
219
+ name: 15Five
220
+ createdAt: '2023-01-17T09:51:46.326Z'
221
+ lastModified: '2025-09-02T09:15:49.168Z'
222
+ published: true
223
+ isGraphQL: false
224
+ requireBodyMatchForLinking: false
225
+ disableAutoLinking: false
226
+ baseURIs:
227
+ - https://my.15five.com
228
+ helpURL: https://docs.celigo.com/hc/en-us/articles/4411468706203
229
+ legacyId: 15five
230
+ versions:
231
+ - _id: 63987132784a39b73aae63ce
232
+ name: v1
233
+ published: true
234
+ supportedBy: {}
235
+ apis: []
236
+ supportedBy:
237
+ export:
238
+ preConfiguredFields:
239
+ - path: successMediaType
240
+ values:
241
+ - json
242
+ connection:
243
+ preConfiguredFields:
244
+ - path: type
245
+ values:
246
+ - http
247
+ '401':
248
+ $ref: '#/components/responses/401-unauthorized'
249
+ '403':
250
+ $ref: '#/components/responses/403-forbidden'
251
+ '404':
252
+ $ref: '#/components/responses/404-not-found'
253
+ put:
254
+ x-internal: false
255
+ operationId: updateHttpConnector
256
+ tags:
257
+ - HTTP Connectors
258
+ summary: Update an HTTP connector
259
+ description: Replaces the HTTP Connector with the provided fields.
260
+ parameters:
261
+ - in: path
262
+ name: _id
263
+ required: true
264
+ schema:
265
+ type: string
266
+ format: objectId
267
+ description: HTTP Connector ID.
268
+ requestBody:
269
+ required: true
270
+ content:
271
+ application/json:
272
+ schema:
273
+ $ref: '#/components/schemas/Request'
274
+ examples:
275
+ full_replace:
276
+ summary: Full replace disabling auto-linking
277
+ value:
278
+ name: 15Five
279
+ published: true
280
+ isGraphQL: false
281
+ requireBodyMatchForLinking: false
282
+ disableAutoLinking: true
283
+ baseURIs:
284
+ - https://my.15five.com
285
+ helpURL: https://docs.celigo.com/hc/en-us/articles/4411468706203
286
+ legacyId: 15five
287
+ versions:
288
+ - name: v1
289
+ published: true
290
+ supportedBy:
291
+ export:
292
+ preConfiguredFields:
293
+ - path: successMediaType
294
+ values:
295
+ - json
296
+ connection:
297
+ preConfiguredFields:
298
+ - path: type
299
+ values:
300
+ - http
301
+ responses:
302
+ '200':
303
+ description: HTTP Connector updated successfully.
304
+ content:
305
+ application/json:
306
+ schema:
307
+ $ref: '#/components/schemas/HTTPConnector'
308
+ examples:
309
+ updated:
310
+ summary: Updated connector
311
+ value:
312
+ _id: 63987132784a39b73aae63cd
313
+ _userId: 6316f2b1e37e79778a43391c
314
+ name: 15Five
315
+ createdAt: '2023-01-17T09:51:46.326Z'
316
+ lastModified: '2025-09-10T11:42:17.553Z'
317
+ published: true
318
+ isGraphQL: false
319
+ requireBodyMatchForLinking: false
320
+ disableAutoLinking: true
321
+ baseURIs:
322
+ - https://my.15five.com
323
+ helpURL: https://docs.celigo.com/hc/en-us/articles/4411468706203
324
+ legacyId: 15five
325
+ versions:
326
+ - _id: 63987132784a39b73aae63ce
327
+ name: v1
328
+ published: true
329
+ supportedBy: {}
330
+ apis: []
331
+ supportedBy:
332
+ export:
333
+ preConfiguredFields:
334
+ - path: successMediaType
335
+ values:
336
+ - json
337
+ connection:
338
+ preConfiguredFields:
339
+ - path: type
340
+ values:
341
+ - http
342
+ '400':
343
+ $ref: '#/components/responses/400-bad-request'
344
+ '401':
345
+ $ref: '#/components/responses/401-unauthorized'
346
+ '403':
347
+ $ref: '#/components/responses/403-forbidden'
348
+ '404':
349
+ $ref: '#/components/responses/404-not-found'
350
+ '422':
351
+ $ref: '#/components/responses/422-unprocessable-entity'
352
+ delete:
353
+ x-internal: false
354
+ operationId: deleteHttpConnector
355
+ tags:
356
+ - HTTP Connectors
357
+ summary: Delete an HTTP connector
358
+ description: |-
359
+ Permanently deletes an HTTP Connector and all its child resources
360
+ and endpoints.
361
+ parameters:
362
+ - in: path
363
+ name: _id
364
+ required: true
365
+ schema:
366
+ type: string
367
+ format: objectId
368
+ description: HTTP Connector ID.
369
+ responses:
370
+ '204':
371
+ description: HTTP Connector deleted successfully.
372
+ '401':
373
+ $ref: '#/components/responses/401-unauthorized'
374
+ '403':
375
+ $ref: '#/components/responses/403-forbidden'
376
+ '404':
377
+ $ref: '#/components/responses/404-not-found'
378
+ /v1/httpconnectors/{_id}/catalog:
379
+ get:
380
+ x-internal: false
381
+ operationId: getHttpConnectorCatalog
382
+ tags:
383
+ - HTTP Connectors
384
+ summary: Get form metadata catalog
385
+ description: |-
386
+ Returns projected resource and endpoint summaries for one import or export
387
+ plane. Import catalogs may include derived `ignoreExisting`, `ignoreMissing`,
388
+ and `isIdentifierPresent` flags on endpoints. Export catalogs return
389
+ endpoint `{ id, name }` only. Published-only requests may be served from
390
+ the MongoDB catalog cache and include an `X-Catalog-Cache` response header.
391
+ parameters:
392
+ - in: path
393
+ name: _id
394
+ required: true
395
+ schema:
396
+ type: string
397
+ format: objectId
398
+ x-celigo-refModel: httpconnectors
399
+ examples:
400
+ - 63987132784a39b73aae63cd
401
+ description: HTTP Connector ID.
402
+ - name: resourceType
403
+ in: query
404
+ required: true
405
+ schema:
406
+ type: string
407
+ enum:
408
+ - export
409
+ - import
410
+ x-enumDescriptions:
411
+ export: Return export-plane resources and endpoints
412
+ import: Return import-plane resources and endpoints
413
+ description: Resource plane to project.
414
+ - name: blob
415
+ in: query
416
+ required: true
417
+ schema:
418
+ type: string
419
+ enum:
420
+ - 'true'
421
+ - 'false'
422
+ x-enumDescriptions:
423
+ 'true': Only blob endpoints match
424
+ 'false': Only non-blob endpoints match
425
+ description: Selects the blob or non-blob endpoint plane.
426
+ - name: api
427
+ in: query
428
+ required: false
429
+ schema:
430
+ type: string
431
+ format: objectId
432
+ examples:
433
+ - 6a1b2c3d4e5f6789abcdef02
434
+ description: Optional API group scope filter.
435
+ - name: version
436
+ in: query
437
+ required: false
438
+ schema:
439
+ type: string
440
+ format: objectId
441
+ examples:
442
+ - 63987132784a39b73aae63ce
443
+ description: Optional version scope filter.
444
+ - name: publishedOnly
445
+ in: query
446
+ required: false
447
+ schema:
448
+ type: string
449
+ enum:
450
+ - 'true'
451
+ - 'false'
452
+ x-enumDescriptions:
453
+ 'true': Only published connector, resource, and endpoint documents are returned
454
+ 'false': Unpublished documents may be returned
455
+ description: |-
456
+ When `true`, only published documents are returned and eligible requests
457
+ may be served from the catalog cache.
458
+ responses:
459
+ '200':
460
+ description: Form metadata catalog retrieved successfully.
461
+ headers:
462
+ X-Catalog-Cache:
463
+ description: |-
464
+ Catalog cache status for eligible published-only requests. Absent
465
+ when the request is not cache-eligible.
466
+ schema:
467
+ type: string
468
+ enum:
469
+ - hit
470
+ - miss
471
+ x-enumDescriptions:
472
+ hit: Response body was served from the MongoDB catalog cache
473
+ miss: Response body was built from source collections
474
+ content:
475
+ application/json:
476
+ schema:
477
+ $ref: '#/components/schemas/HTTPConnectorCatalogResponse'
478
+ examples:
479
+ export_catalog:
480
+ summary: Export-plane catalog
481
+ value:
482
+ resources:
483
+ - id: 63987132784a39b73aae63e7
484
+ name: Orders
485
+ endpoints:
486
+ - id: 63987132784a39b73aae63f1
487
+ name: Get orders
488
+ '400':
489
+ $ref: '#/components/responses/400-bad-request'
490
+ '401':
491
+ $ref: '#/components/responses/401-unauthorized'
492
+ '404':
493
+ $ref: '#/components/responses/404-not-found'
494
+ /v1/httpconnectors/{_id}/resourceEndpointDetail:
495
+ get:
496
+ x-internal: false
497
+ operationId: getHttpConnectorResourceEndpointDetail
498
+ tags:
499
+ - HTTP Connectors
500
+ summary: Get resource and endpoint detail
501
+ description: |-
502
+ Returns scoped `httpConnectorResource` and `httpConnectorEndpoint`
503
+ documents for a single export/import endpoint, or a paired import
504
+ create/update batch. Lookup endpoints may be inlined when they are
505
+ published and belong to the same connector. `endpointId` and
506
+ `endpointIds` are mutually exclusive; `endpointIds` is only valid when
507
+ `resourceType` is `import` and must contain exactly two comma-separated
508
+ ObjectIds. Composite `id1+id2` values are rejected.
509
+ parameters:
510
+ - in: path
511
+ name: _id
512
+ required: true
513
+ schema:
514
+ type: string
515
+ format: objectId
516
+ x-celigo-refModel: httpconnectors
517
+ examples:
518
+ - 63987132784a39b73aae63cd
519
+ description: HTTP Connector ID.
520
+ - name: resourceType
521
+ in: query
522
+ required: true
523
+ schema:
524
+ type: string
525
+ enum:
526
+ - export
527
+ - import
528
+ x-enumDescriptions:
529
+ export: Resolve an export-plane resource and endpoint
530
+ import: Resolve an import-plane resource and endpoint
531
+ description: Resource plane to resolve.
532
+ - name: resourceId
533
+ in: query
534
+ required: true
535
+ schema:
536
+ type: string
537
+ format: objectId
538
+ examples:
539
+ - 63987132784a39b73aae63e7
540
+ description: HTTP Connector Resource ID that belongs to this connector.
541
+ - name: blob
542
+ in: query
543
+ required: true
544
+ schema:
545
+ type: string
546
+ enum:
547
+ - 'true'
548
+ - 'false'
549
+ x-enumDescriptions:
550
+ 'true': Only blob endpoints match
551
+ 'false': Only non-blob endpoints match
552
+ description: Selects the blob or non-blob endpoint plane.
553
+ - name: endpointId
554
+ in: query
555
+ required: false
556
+ schema:
557
+ type: string
558
+ format: objectId
559
+ examples:
560
+ - 63987132784a39b73aae63f1
561
+ description: Single endpoint ID. Mutually exclusive with `endpointIds`.
562
+ - name: endpointIds
563
+ in: query
564
+ required: false
565
+ schema:
566
+ type: string
567
+ examples:
568
+ - 63987132784a39b73aae63f1,63987132784a39b73aae63f2
569
+ description: |-
570
+ Comma-separated pair of import endpoint IDs for create/update batch
571
+ mode. Import only; exactly two unique IDs. Mutually exclusive with
572
+ `endpointId`.
573
+ - name: api
574
+ in: query
575
+ required: false
576
+ schema:
577
+ type: string
578
+ format: objectId
579
+ examples:
580
+ - 6a1b2c3d4e5f6789abcdef02
581
+ description: Optional API group scope filter.
582
+ - name: version
583
+ in: query
584
+ required: false
585
+ schema:
586
+ type: string
587
+ format: objectId
588
+ examples:
589
+ - 63987132784a39b73aae63ce
590
+ description: Optional version scope filter; echoed as `resolvedVersionId` when present.
591
+ - name: publishedOnly
592
+ in: query
593
+ required: false
594
+ schema:
595
+ type: string
596
+ enum:
597
+ - 'true'
598
+ - 'false'
599
+ x-enumDescriptions:
600
+ 'true': Only published connector, resource, and endpoint documents are returned
601
+ 'false': Unpublished documents may be returned
602
+ description: When `true`, only published documents are returned.
603
+ responses:
604
+ '200':
605
+ description: Resource and endpoint detail retrieved successfully.
606
+ content:
607
+ application/json:
608
+ schema:
609
+ $ref: '#/components/schemas/ResourceEndpointDetail'
610
+ examples:
611
+ single_export:
612
+ summary: Single export endpoint
613
+ value:
614
+ resolvedResourceId: 63987132784a39b73aae63e7
615
+ resolvedEndpointId: 63987132784a39b73aae63f1
616
+ httpConnectorResource:
617
+ _id: 63987132784a39b73aae63e7
618
+ name: Orders
619
+ httpConnectorEndpoint:
620
+ _id: 63987132784a39b73aae63f1
621
+ name: Get orders
622
+ import_batch:
623
+ summary: Import create/update batch
624
+ value:
625
+ resolvedResourceId: 63987132784a39b73aae63e7
626
+ resolvedEndpointIds:
627
+ - 63987132784a39b73aae63f1
628
+ - 63987132784a39b73aae63f2
629
+ httpConnectorResource:
630
+ _id: 63987132784a39b73aae63e7
631
+ name: Orders
632
+ httpConnectorEndpoints:
633
+ - _id: 63987132784a39b73aae63f1
634
+ name: Create order
635
+ - _id: 63987132784a39b73aae63f2
636
+ name: Update order
637
+ '400':
638
+ $ref: '#/components/responses/400-bad-request'
639
+ '401':
640
+ $ref: '#/components/responses/401-unauthorized'
641
+ '404':
642
+ $ref: '#/components/responses/404-not-found'
643
+ /api/httpconnectors/{_id}/catalog:
644
+ get:
645
+ x-internal: false
646
+ operationId: getHttpConnectorCatalog
647
+ tags:
648
+ - HTTP Connectors
649
+ summary: Get form metadata catalog
650
+ description: |-
651
+ Returns projected resource and endpoint summaries for one import or export
652
+ plane. Import catalogs may include derived `ignoreExisting`, `ignoreMissing`,
653
+ and `isIdentifierPresent` flags on endpoints. Export catalogs return
654
+ endpoint `{ id, name }` only. Published-only requests may be served from
655
+ the MongoDB catalog cache and include an `X-Catalog-Cache` response header.
656
+ parameters:
657
+ - in: path
658
+ name: _id
659
+ required: true
660
+ schema:
661
+ type: string
662
+ format: objectId
663
+ x-celigo-refModel: httpconnectors
664
+ examples:
665
+ - 63987132784a39b73aae63cd
666
+ description: HTTP Connector ID.
667
+ - name: resourceType
668
+ in: query
669
+ required: true
670
+ schema:
671
+ type: string
672
+ enum:
673
+ - export
674
+ - import
675
+ x-enumDescriptions:
676
+ export: Return export-plane resources and endpoints
677
+ import: Return import-plane resources and endpoints
678
+ description: Resource plane to project.
679
+ - name: blob
680
+ in: query
681
+ required: true
682
+ schema:
683
+ type: string
684
+ enum:
685
+ - 'true'
686
+ - 'false'
687
+ x-enumDescriptions:
688
+ 'true': Only blob endpoints match
689
+ 'false': Only non-blob endpoints match
690
+ description: Selects the blob or non-blob endpoint plane.
691
+ - name: api
692
+ in: query
693
+ required: false
694
+ schema:
695
+ type: string
696
+ format: objectId
697
+ examples:
698
+ - 6a1b2c3d4e5f6789abcdef02
699
+ description: Optional API group scope filter.
700
+ - name: version
701
+ in: query
702
+ required: false
703
+ schema:
704
+ type: string
705
+ format: objectId
706
+ examples:
707
+ - 63987132784a39b73aae63ce
708
+ description: Optional version scope filter.
709
+ - name: publishedOnly
710
+ in: query
711
+ required: false
712
+ schema:
713
+ type: string
714
+ enum:
715
+ - 'true'
716
+ - 'false'
717
+ x-enumDescriptions:
718
+ 'true': Only published connector, resource, and endpoint documents are returned
719
+ 'false': Unpublished documents may be returned
720
+ description: |-
721
+ When `true`, only published documents are returned and eligible requests
722
+ may be served from the catalog cache.
723
+ responses:
724
+ '200':
725
+ description: Form metadata catalog retrieved successfully.
726
+ headers:
727
+ X-Catalog-Cache:
728
+ description: |-
729
+ Catalog cache status for eligible published-only requests. Absent
730
+ when the request is not cache-eligible.
731
+ schema:
732
+ type: string
733
+ enum:
734
+ - hit
735
+ - miss
736
+ x-enumDescriptions:
737
+ hit: Response body was served from the MongoDB catalog cache
738
+ miss: Response body was built from source collections
739
+ content:
740
+ application/json:
741
+ schema:
742
+ $ref: '#/components/schemas/HTTPConnectorCatalogResponse'
743
+ examples:
744
+ export_catalog:
745
+ summary: Export-plane catalog
746
+ value:
747
+ resources:
748
+ - id: 63987132784a39b73aae63e7
749
+ name: Orders
750
+ endpoints:
751
+ - id: 63987132784a39b73aae63f1
752
+ name: Get orders
753
+ '400':
754
+ $ref: '#/components/responses/400-bad-request'
755
+ '401':
756
+ $ref: '#/components/responses/401-unauthorized'
757
+ '404':
758
+ $ref: '#/components/responses/404-not-found'
759
+ /api/httpconnectors/{_id}/resourceEndpointDetail:
760
+ get:
761
+ x-internal: false
762
+ operationId: getHttpConnectorResourceEndpointDetail
763
+ tags:
764
+ - HTTP Connectors
765
+ summary: Get resource and endpoint detail
766
+ description: |-
767
+ Returns scoped `httpConnectorResource` and `httpConnectorEndpoint`
768
+ documents for a single export/import endpoint, or a paired import
769
+ create/update batch. Lookup endpoints may be inlined when they are
770
+ published and belong to the same connector. `endpointId` and
771
+ `endpointIds` are mutually exclusive; `endpointIds` is only valid when
772
+ `resourceType` is `import` and must contain exactly two comma-separated
773
+ ObjectIds. Composite `id1+id2` values are rejected.
774
+ parameters:
775
+ - in: path
776
+ name: _id
777
+ required: true
778
+ schema:
779
+ type: string
780
+ format: objectId
781
+ x-celigo-refModel: httpconnectors
782
+ examples:
783
+ - 63987132784a39b73aae63cd
784
+ description: HTTP Connector ID.
785
+ - name: resourceType
786
+ in: query
787
+ required: true
788
+ schema:
789
+ type: string
790
+ enum:
791
+ - export
792
+ - import
793
+ x-enumDescriptions:
794
+ export: Resolve an export-plane resource and endpoint
795
+ import: Resolve an import-plane resource and endpoint
796
+ description: Resource plane to resolve.
797
+ - name: resourceId
798
+ in: query
799
+ required: true
800
+ schema:
801
+ type: string
802
+ format: objectId
803
+ examples:
804
+ - 63987132784a39b73aae63e7
805
+ description: HTTP Connector Resource ID that belongs to this connector.
806
+ - name: blob
807
+ in: query
808
+ required: true
809
+ schema:
810
+ type: string
811
+ enum:
812
+ - 'true'
813
+ - 'false'
814
+ x-enumDescriptions:
815
+ 'true': Only blob endpoints match
816
+ 'false': Only non-blob endpoints match
817
+ description: Selects the blob or non-blob endpoint plane.
818
+ - name: endpointId
819
+ in: query
820
+ required: false
821
+ schema:
822
+ type: string
823
+ format: objectId
824
+ examples:
825
+ - 63987132784a39b73aae63f1
826
+ description: Single endpoint ID. Mutually exclusive with `endpointIds`.
827
+ - name: endpointIds
828
+ in: query
829
+ required: false
830
+ schema:
831
+ type: string
832
+ examples:
833
+ - 63987132784a39b73aae63f1,63987132784a39b73aae63f2
834
+ description: |-
835
+ Comma-separated pair of import endpoint IDs for create/update batch
836
+ mode. Import only; exactly two unique IDs. Mutually exclusive with
837
+ `endpointId`.
838
+ - name: api
839
+ in: query
840
+ required: false
841
+ schema:
842
+ type: string
843
+ format: objectId
844
+ examples:
845
+ - 6a1b2c3d4e5f6789abcdef02
846
+ description: Optional API group scope filter.
847
+ - name: version
848
+ in: query
849
+ required: false
850
+ schema:
851
+ type: string
852
+ format: objectId
853
+ examples:
854
+ - 63987132784a39b73aae63ce
855
+ description: Optional version scope filter; echoed as `resolvedVersionId` when present.
856
+ - name: publishedOnly
857
+ in: query
858
+ required: false
859
+ schema:
860
+ type: string
861
+ enum:
862
+ - 'true'
863
+ - 'false'
864
+ x-enumDescriptions:
865
+ 'true': Only published connector, resource, and endpoint documents are returned
866
+ 'false': Unpublished documents may be returned
867
+ description: When `true`, only published documents are returned.
868
+ responses:
869
+ '200':
870
+ description: Resource and endpoint detail retrieved successfully.
871
+ content:
872
+ application/json:
873
+ schema:
874
+ $ref: '#/components/schemas/ResourceEndpointDetail'
875
+ examples:
876
+ single_export:
877
+ summary: Single export endpoint
878
+ value:
879
+ resolvedResourceId: 63987132784a39b73aae63e7
880
+ resolvedEndpointId: 63987132784a39b73aae63f1
881
+ httpConnectorResource:
882
+ _id: 63987132784a39b73aae63e7
883
+ name: Orders
884
+ httpConnectorEndpoint:
885
+ _id: 63987132784a39b73aae63f1
886
+ name: Get orders
887
+ import_batch:
888
+ summary: Import create/update batch
889
+ value:
890
+ resolvedResourceId: 63987132784a39b73aae63e7
891
+ resolvedEndpointIds:
892
+ - 63987132784a39b73aae63f1
893
+ - 63987132784a39b73aae63f2
894
+ httpConnectorResource:
895
+ _id: 63987132784a39b73aae63e7
896
+ name: Orders
897
+ httpConnectorEndpoints:
898
+ - _id: 63987132784a39b73aae63f1
899
+ name: Create order
900
+ - _id: 63987132784a39b73aae63f2
901
+ name: Update order
902
+ '400':
903
+ $ref: '#/components/responses/400-bad-request'
904
+ '401':
905
+ $ref: '#/components/responses/401-unauthorized'
906
+ '404':
907
+ $ref: '#/components/responses/404-not-found'
908
+ components:
909
+ securitySchemes:
910
+ bearerAuth:
911
+ type: http
912
+ scheme: bearer
913
+ schemas:
914
+ ListItem:
915
+ type: object
916
+ description: |-
917
+ Abridged HTTP Connector returned in list responses. Omits `published`,
918
+ `baseURIs`, `supportedBy`, `apis`, `versioning`, and write-only fields
919
+ compared to the detail endpoint.
920
+ properties:
921
+ _id:
922
+ type: string
923
+ format: objectId
924
+ readOnly: true
925
+ x-celigo-refModel: httpconnectors
926
+ description: Unique identifier for the resource. Format is a 24-character hexadecimal string.
927
+ examples:
928
+ - 63987132784a39b73aae63cd
929
+ name:
930
+ type: string
931
+ description: Display name for this HTTP Connector.
932
+ examples:
933
+ - 15Five
934
+ _userId:
935
+ type: string
936
+ format: objectId
937
+ readOnly: true
938
+ x-celigo-refModel: users
939
+ description: User who created this connector.
940
+ examples:
941
+ - 6316f2b1e37e79778a43391c
942
+ createdAt:
943
+ type: string
944
+ format: date-time
945
+ readOnly: true
946
+ description: Timestamp when the resource was created. Set automatically and cannot be modified.
947
+ examples:
948
+ - '2023-01-17T09:51:46.326Z'
949
+ lastModified:
950
+ type: string
951
+ format: date-time
952
+ readOnly: true
953
+ description: Timestamp when the resource was last updated. Changes whenever any property is modified.
954
+ examples:
955
+ - '2025-09-02T09:15:49.168Z'
956
+ helpURL:
957
+ type: string
958
+ description: Documentation URL shown to users when configuring this connector.
959
+ examples:
960
+ - https://docs.celigo.com/hc/en-us/articles/4411468706203
961
+ legacyId:
962
+ type: string
963
+ description: Legacy assistant ID for backward compatibility.
964
+ examples:
965
+ - 15five
966
+ legacyIds:
967
+ type: array
968
+ description: All legacy assistant IDs associated with this connector.
969
+ items:
970
+ type: string
971
+ examples:
972
+ - 15five
973
+ readOnly: true
974
+ isGraphQL:
975
+ type: boolean
976
+ description: When true, this connector targets a GraphQL API.
977
+ supportsIClient:
978
+ type: boolean
979
+ readOnly: true
980
+ description: When true, this connector supports shared iClient credentials.
981
+ supportsWebhook:
982
+ type: boolean
983
+ readOnly: true
984
+ description: When true, this connector supports webhook-based exports.
985
+ hasBlobEndpoints:
986
+ type: boolean
987
+ readOnly: true
988
+ description: When true, at least one endpoint under this connector handles binary/blob data.
989
+ metadataLoadStrategy:
990
+ type: string
991
+ enum:
992
+ - staged
993
+ readOnly: true
994
+ x-enumDescriptions:
995
+ staged: Form metadata is loaded via catalog and resourceEndpointDetail routes
996
+ description: |-
997
+ Present only when the connector uses staged metadata loading. Omitted
998
+ when the stored strategy is `full`.
999
+ versions:
1000
+ type: array
1001
+ description: Connector versions, abridged to identifiers and names.
1002
+ items:
1003
+ type: object
1004
+ properties:
1005
+ _id:
1006
+ type: string
1007
+ format: objectId
1008
+ description: Unique identifier for this version.
1009
+ examples:
1010
+ - 63987132784a39b73aae63ce
1011
+ name:
1012
+ type: string
1013
+ description: Display name for this version (e.g. `v3`).
1014
+ examples:
1015
+ - v3
1016
+ apis:
1017
+ type: array
1018
+ description: API groups under this connector, abridged to identifiers, names, and versions.
1019
+ items:
1020
+ type: object
1021
+ properties:
1022
+ _id:
1023
+ type: string
1024
+ format: objectId
1025
+ description: Unique identifier for this API group.
1026
+ examples:
1027
+ - 6a1b2c3d4e5f6789abcdef02
1028
+ name:
1029
+ type: string
1030
+ description: Display name for this API group.
1031
+ examples:
1032
+ - Profit
1033
+ versions:
1034
+ type: array
1035
+ description: Versions available under this API group.
1036
+ items:
1037
+ type: object
1038
+ properties:
1039
+ _id:
1040
+ type: string
1041
+ format: objectId
1042
+ description: Unique identifier for this version.
1043
+ examples:
1044
+ - 6a1b2c3d4e5f6789abcdef03
1045
+ name:
1046
+ type: string
1047
+ description: Display name for this version (e.g. `v3`).
1048
+ examples:
1049
+ - v1
1050
+ Versioning:
1051
+ type: object
1052
+ description: |-
1053
+ Strategy for how API versions are passed in requests. Used at the
1054
+ connector level and per API group; both use the same shape.
1055
+ properties:
1056
+ location:
1057
+ type: string
1058
+ enum:
1059
+ - uri
1060
+ - query_parameter
1061
+ - header
1062
+ x-enumDescriptions:
1063
+ uri: Version identifier is embedded in the URI path.
1064
+ query_parameter: Version identifier is passed as a query parameter.
1065
+ header: Version identifier is passed in an HTTP header.
1066
+ description: Where the version identifier is placed in outgoing requests.
1067
+ headerName:
1068
+ type: string
1069
+ description: Header name when `location` is `header`.
1070
+ examples:
1071
+ - API-Version
1072
+ queryParameterName:
1073
+ type: string
1074
+ description: Query parameter name when `location` is `query_parameter`.
1075
+ examples:
1076
+ - api-version
1077
+ SupportedByPreConfiguredField:
1078
+ type: object
1079
+ description: A field automatically set to a predefined value on the target resource.
1080
+ properties:
1081
+ _id:
1082
+ type: string
1083
+ format: objectId
1084
+ readOnly: true
1085
+ description: Unique identifier for this field entry.
1086
+ examples:
1087
+ - 5f8d43a1b9e5a80011a35f2d
1088
+ path:
1089
+ type: string
1090
+ description: Dot-notation path of the field on the target resource.
1091
+ examples:
1092
+ - http.mediaType
1093
+ - http.ping.relativeURI
1094
+ - http.auth.type
1095
+ values:
1096
+ type: array
1097
+ description: |-
1098
+ Value(s) to assign. Typically a single-element array; entries may be
1099
+ any JSON type.
1100
+ _conditionIds:
1101
+ type: array
1102
+ description: Condition IDs that must be satisfied for this field to apply. If absent, always applies.
1103
+ items:
1104
+ type: string
1105
+ format: objectId
1106
+ examples:
1107
+ - 5f8d43a1b9e5a80011a35f2c
1108
+ SupportedByFieldUserMustSet:
1109
+ type: object
1110
+ description: A field the user must provide a value for when creating the target resource.
1111
+ properties:
1112
+ _id:
1113
+ type: string
1114
+ format: objectId
1115
+ readOnly: true
1116
+ description: Unique identifier for this field entry.
1117
+ examples:
1118
+ - 5f8d43a1b9e5a80011a35f2e
1119
+ path:
1120
+ type: string
1121
+ description: Dot-notation path of the field on the target resource.
1122
+ examples:
1123
+ - http.unencrypted.apiKey
1124
+ - http.baseURI
1125
+ - http.encrypted.password
1126
+ values:
1127
+ type: array
1128
+ description: |-
1129
+ Optional suggested or constrained values. Entries may be any JSON
1130
+ type.
1131
+ _conditionIds:
1132
+ type: array
1133
+ description: Condition IDs that must be satisfied for this field to apply.
1134
+ items:
1135
+ type: string
1136
+ format: objectId
1137
+ examples:
1138
+ - 5f8d43a1b9e5a80011a35f2c
1139
+ helpURL:
1140
+ type: string
1141
+ description: URL to documentation for this field.
1142
+ examples:
1143
+ - https://docs.celigo.com/hc/en-us
1144
+ labelOverride:
1145
+ type: string
1146
+ description: Custom label to display in the UI instead of the default.
1147
+ examples:
1148
+ - API Key
1149
+ inputType:
1150
+ type: string
1151
+ enum:
1152
+ - number
1153
+ - password
1154
+ - uri
1155
+ x-enumDescriptions:
1156
+ number: Renders a numeric input field.
1157
+ password: Renders a masked password input field.
1158
+ uri: Renders a URI input field with URL validation.
1159
+ description: |-
1160
+ UI input widget type shown when prompting the user for this field.
1161
+ Uses the same widget vocabulary as Trading Partner Connectors.
1162
+ examples:
1163
+ - password
1164
+ Filter:
1165
+ type: object
1166
+ description: |
1167
+ Configuration for selectively processing records based on specified criteria. This object enables
1168
+ precise control over which items are included or excluded from processing operations.
1169
+
1170
+ **Filter behavior**
1171
+
1172
+ When configured, the filter is applied before processing begins:
1173
+ - Items that match the filter criteria are processed
1174
+ - Items that don't match are completely skipped
1175
+ - No partial processing is performed
1176
+
1177
+ **Implementation approaches**
1178
+
1179
+ There are two distinct filtering mechanisms available:
1180
+
1181
+ **Rule-Based Filtering (`type: "expression"`)**
1182
+ - **Best For**: Common filtering patterns based on standard attributes
1183
+ - **Capabilities**: Filter by names, values, dates, numerical ranges, text patterns
1184
+ - **Advantages**: Declarative, no coding required, consistent performance
1185
+ - **Configuration**: Define rules in the `expression` object
1186
+ - **Use When**: You have clear, static criteria for selection
1187
+
1188
+ **Script-Based Filtering (`type: "script"`)**
1189
+ - **Best For**: Complex logic, dynamic criteria, or business rules
1190
+ - **Capabilities**: Full programmatic control, access to complete metadata
1191
+ - **Advantages**: Maximum flexibility, can implement any filtering logic
1192
+ - **Configuration**: Reference a script in the `script` object
1193
+ - **Use When**: Simple rules aren't sufficient or logic needs to be dynamic
1194
+ properties:
1195
+ type:
1196
+ type: string
1197
+ description: |
1198
+ Determines which filtering mechanism to use. This choice affects which properties
1199
+ must be configured and how filtering logic is implemented.
1200
+
1201
+ **Available types**
1202
+
1203
+ **Rule-Based Filtering (`"expression"`)**
1204
+ - **Required Config**: The `expression` object with rule definitions
1205
+ - **Behavior**: Evaluates declarative rules against item attributes
1206
+ - **Best For**: Common patterns like name matching, date ranges, value limits
1207
+ - **Advantages**: Simpler to configure, no custom code required
1208
+
1209
+ **Script-Based Filtering (`"script"`)**
1210
+ - **Required Config**: The `script` object with _scriptId and function
1211
+ - **Behavior**: Executes custom JavaScript to determine which items to process
1212
+ - **Best For**: Complex conditions, business logic, dynamic criteria
1213
+ - **Advantages**: Maximum flexibility, can implement any logic
1214
+
1215
+ **Implementation guidance**
1216
+
1217
+ 1. For standard filtering needs (name, size, date), use `"expression"`
1218
+ 2. For complex logic or conditions not covered by expressions, use `"script"`
1219
+ 3. When selecting a type, you must configure the corresponding object:
1220
+ - `type: "expression"` requires the `expression` object
1221
+ - `type: "script"` requires the `script` object
1222
+ enum:
1223
+ - expression
1224
+ - script
1225
+ x-enumDescriptions:
1226
+ expression: Rule-based filtering using declarative conditions.
1227
+ script: Script-based filtering using custom JavaScript logic.
1228
+ examples:
1229
+ - expression
1230
+ - script
1231
+ expression:
1232
+ type: object
1233
+ description: |
1234
+ Configuration for declarative rule-based filtering. This object enables filtering
1235
+ items based on common attributes without requiring custom code.
1236
+
1237
+ **Usage context**
1238
+
1239
+ This object is REQUIRED when `filter.type` is set to "expression" and should not be
1240
+ configured otherwise. It provides a standardized way to define filtering rules that
1241
+ can match against item attributes like name, type, value, date, and other properties.
1242
+
1243
+ **Implementation guidance**
1244
+
1245
+ The expression system uses a rule-based approach where:
1246
+ - Rules can be combined with AND/OR logic
1247
+ - Each rule can check a specific attribute
1248
+ - Multiple conditions can be applied (ranges, pattern matching, exact matches)
1249
+
1250
+ **Common filter patterns**
1251
+
1252
+ 1. **Pattern matching**: Using wildcards like `*` and `?`
1253
+ 2. **Value range filtering**: Numbers between min and max values
1254
+ 3. **Date range filtering**: Items created/modified within specific time ranges
1255
+ 4. **Status checking**: Items with specific status values or properties
1256
+
1257
+ For AI agents: Rule-based filtering should be your first choice when the filtering criteria
1258
+ can be expressed in terms of standard attributes. Only use script-based filtering when
1259
+ more complex logic is required.
1260
+ properties:
1261
+ version:
1262
+ type: string
1263
+ description: |
1264
+ Version identifier for the expression format. Currently only version "1" is supported.
1265
+
1266
+ This field ensures future compatibility if the expression format evolves. Always set to "1"
1267
+ for current implementations.
1268
+ enum:
1269
+ - '1'
1270
+ x-enumDescriptions:
1271
+ '1': Current and only supported filter expression version.
1272
+ examples:
1273
+ - '1'
1274
+ rules:
1275
+ type: array
1276
+ description: |
1277
+ Expression array defining filter conditions using prefix notation. The first element is the operator,
1278
+ followed by its operands which may themselves be nested expression arrays.
1279
+
1280
+ The rule expression follows this pattern:
1281
+ - First element: Operator name (string)
1282
+ - Remaining elements: Operands for that operator (values or nested expressions)
1283
+
1284
+ **Expression structure**
1285
+
1286
+ Filter expressions use a prefix notation where operators appear before their operands:
1287
+ ```
1288
+ [operator, operand1, operand2, ...]
1289
+ ```
1290
+
1291
+ **Comparison Operators**
1292
+ - `"equals"`: Exact match (equals)
1293
+ - `"notequals"`: Not equal to value (not equals)
1294
+ - `"greaterthan"`: Value is greater than specified value (is greater than)
1295
+ - `"greaterthanequals"`: Value is greater than or equal to specified value (is greater than or equals)
1296
+ - `"lessthan"`: Value is less than specified value (is less than)
1297
+ - `"lessthanequals"`: Value is less than or equal to specified value (is less than or equals)
1298
+ - `"startswith"`: String starts with specified prefix (starts with)
1299
+ - `"endswith"`: String ends with specified suffix (ends with)
1300
+ - `"contains"`: String contains specified substring (contains)
1301
+ - `"doesnotcontain"`: String does not contain specified substring (does not contain)
1302
+ - `"isempty"`: Field is empty or null (is empty)
1303
+ - `"isnotempty"`: Field contains a value (is not empty)
1304
+ - `"matches"`: Matches specified pattern (matches)
1305
+
1306
+ **Logical Operators**
1307
+ - `"and"`: All conditions must be true
1308
+ - `"or"`: At least one condition must be true
1309
+ - `"not"`: Negates the condition
1310
+
1311
+ **Field Access and Type Conversion**
1312
+ - `"extract"`: Access a field from the item by name
1313
+ - `"settings"`: Access a custom setting from the flow, flow step, or integration configuration
1314
+ - `"boolean"`: Convert value to Boolean type
1315
+ - `"epochtime"`: Convert value to Epoch Time (Unix timestamp)
1316
+ - `"number"`: Convert value to Number type
1317
+ - `"string"`: Convert value to String type
1318
+
1319
+ **Field Access Details**
1320
+
1321
+ **Using `extract` to access record fields:**
1322
+ - Retrieves values from the current record being processed
1323
+ - Can access nested properties using dot notation (e.g., `"customer.email"`)
1324
+ - Returns the raw field value which may need type conversion
1325
+
1326
+ **Using `settings` to access configuration values:**
1327
+ - Retrieves values from the integration's configuration settings
1328
+ - Supports different scopes with prefix notation:
1329
+ - `flow.settingName`: Access flow-level settings
1330
+ - `export.settingName`: Access export-level settings
1331
+ - `import.settingName`: Access import-level settings
1332
+ - `integration.settingName`: Access integration-level settings
1333
+ - Useful for dynamic filtering based on configuration
1334
+
1335
+ **Field Transformations**
1336
+ - `"lowercase"`: Convert string to lowercase
1337
+ - `"uppercase"`: Convert string to uppercase
1338
+ - `"ceiling"`: Round number up to the nearest integer
1339
+ - `"floor"`: Round number down to the nearest integer
1340
+ - `"abs"`: Get absolute value of a number
1341
+
1342
+ Type conversion operators are often necessary when comparing extracted field values against literals or when the field type doesn't match the comparison operator's expected type. For example:
1343
+
1344
+ ```json
1345
+ [
1346
+ "equals",
1347
+ [
1348
+ "number", // Convert to number before comparison
1349
+ [
1350
+ "extract",
1351
+ "quantity"
1352
+ ]
1353
+ ],
1354
+ 100
1355
+ ]
1356
+ ```
1357
+
1358
+ Example with datetime conversion:
1359
+ ```json
1360
+ [
1361
+ "greaterthan",
1362
+ [
1363
+ "epochtime", // Convert to Unix timestamp before comparison
1364
+ [
1365
+ "extract",
1366
+ "createdDate"
1367
+ ]
1368
+ ],
1369
+ 1609459200000 // January 1, 2021 as Unix timestamp in milliseconds
1370
+ ]
1371
+ ```
1372
+
1373
+ Example with transformations:
1374
+ ```json
1375
+ [
1376
+ "and",
1377
+ [
1378
+ "matches",
1379
+ [
1380
+ "lowercase", // Convert to lowercase before matching
1381
+ [
1382
+ "string",
1383
+ [
1384
+ "extract",
1385
+ "categories"
1386
+ ]
1387
+ ]
1388
+ ],
1389
+ "netsuite"
1390
+ ],
1391
+ [
1392
+ "notequals",
1393
+ [
1394
+ "string",
1395
+ [
1396
+ "extract",
1397
+ "recurrence.pattern.type"
1398
+ ]
1399
+ ],
1400
+ ""
1401
+ ]
1402
+ ]
1403
+ ```
1404
+
1405
+ Example comparing a record field with a flow setting:
1406
+ ```json
1407
+ [
1408
+ "equals",
1409
+ [
1410
+ "string",
1411
+ [
1412
+ "extract",
1413
+ "trantype"
1414
+ ]
1415
+ ],
1416
+ [
1417
+ "string",
1418
+ [
1419
+ "settings",
1420
+ "flow.trantype"
1421
+ ]
1422
+ ]
1423
+ ]
1424
+ ```
1425
+
1426
+ **Examples**
1427
+
1428
+ Example 1: Status field is not equal to "cancelled"
1429
+ ```json
1430
+ [
1431
+ "notequals",
1432
+ [
1433
+ "extract",
1434
+ "status"
1435
+ ],
1436
+ "cancelled"
1437
+ ]
1438
+ ```
1439
+
1440
+ Example 2: Filename starts with "HC"
1441
+ ```json
1442
+ [
1443
+ "startswith",
1444
+ [
1445
+ "extract",
1446
+ "filename"
1447
+ ],
1448
+ "HC"
1449
+ ]
1450
+ ```
1451
+
1452
+ Example 3: Amount is greater than 100
1453
+ ```json
1454
+ [
1455
+ "greaterthan",
1456
+ [
1457
+ "number",
1458
+ [
1459
+ "extract",
1460
+ "amount"
1461
+ ]
1462
+ ],
1463
+ 100
1464
+ ]
1465
+ ```
1466
+
1467
+ Example 4: Order date is after January 1, 2023
1468
+ ```json
1469
+ [
1470
+ "greaterthan",
1471
+ [
1472
+ "extract",
1473
+ "orderDate"
1474
+ ],
1475
+ "2023-01-01T00:00:00Z"
1476
+ ]
1477
+ ```
1478
+
1479
+ Example 5: Category contains any of ["Urgent", "High Priority"]
1480
+ ```json
1481
+ [
1482
+ "anyof",
1483
+ [
1484
+ "extract",
1485
+ "category"
1486
+ ],
1487
+ ["Urgent", "High Priority"]
1488
+ ]
1489
+ ```
1490
+ items:
1491
+ oneOf:
1492
+ - title: String
1493
+ type: string
1494
+ - title: Number
1495
+ type: number
1496
+ - title: Boolean
1497
+ type: boolean
1498
+ - title: Object
1499
+ type: object
1500
+ - title: Array
1501
+ type: array
1502
+ - title: 'Null'
1503
+ type: 'null'
1504
+ script:
1505
+ type: object
1506
+ description: |
1507
+ Configuration for programmable script-based filtering. This object enables complex, custom
1508
+ filtering logic beyond what expression-based filtering can provide.
1509
+
1510
+ **Usage context**
1511
+
1512
+ This object is REQUIRED when `filter.type` is set to "script" and should not be configured
1513
+ otherwise. It provides a way to execute custom JavaScript code to determine which items
1514
+ should be processed.
1515
+
1516
+ **Implementation approach**
1517
+
1518
+ Script-based filtering works by:
1519
+ 1. Executing the specified function from the referenced script
1520
+ 2. Passing item data to the function
1521
+ 3. Using the function's return value (true/false) to determine inclusion
1522
+
1523
+ **Common use cases**
1524
+
1525
+ Script filtering is ideal for:
1526
+ - Complex business logic that can't be expressed as simple rules
1527
+ - Dynamic filtering criteria that change based on external factors
1528
+ - Content-based filtering that requires deep inspection
1529
+ - Advanced pattern matching beyond simple wildcards
1530
+ - Multi-stage filtering with intermediate logic
1531
+
1532
+ For AI agents: Only use script-based filtering when expression-based filtering is insufficient.
1533
+ Script filtering requires maintaining custom code, which adds complexity to the integration.
1534
+ properties:
1535
+ _scriptId:
1536
+ type: string
1537
+ x-celigo-refModel: scripts
1538
+ description: |
1539
+ Reference to the Script resource that contains the filtering logic. This must be a valid
1540
+ ObjectId of a Script resource that exists in the system.
1541
+
1542
+ The referenced script must contain the function specified in the `function` field
1543
+ and must be written to handle filtering specifically. The script receives
1544
+ item data as its input and must return a boolean value indicating whether
1545
+ to process the item (true) or skip it (false).
1546
+
1547
+ Format: 24-character hexadecimal string (MongoDB ObjectId)
1548
+ examples:
1549
+ - 60a2c4e6f321d800129a1a3c
1550
+ - 5f8d43a1b9e5a80011a35f2c
1551
+ function:
1552
+ type: string
1553
+ description: |
1554
+ Name of the function within the script to execute for filtering decisions. This function
1555
+ must exist in the script referenced by _scriptId.
1556
+
1557
+ **Function requirements**
1558
+
1559
+ The specified function must:
1560
+ - Accept item data as its first parameter
1561
+ - Return a boolean value (true to process the item, false to skip it)
1562
+ - Handle errors gracefully
1563
+ - Execute efficiently (as it may run for many items)
1564
+
1565
+ **Function signature**
1566
+
1567
+ ```javascript
1568
+ function filterItems(itemData) {
1569
+ // itemData contains properties of the item being evaluated
1570
+ // Custom logic here
1571
+ return true; // or false to skip the item
1572
+ }
1573
+ ```
1574
+
1575
+ For AI agents: Ensure the function name exactly matches a function defined in the
1576
+ referenced script, as mismatches will cause the filter to fail.
1577
+ examples:
1578
+ - filterItems
1579
+ - shouldProcess
1580
+ - evaluateMatch
1581
+ SupportedBySection:
1582
+ type: object
1583
+ description: |-
1584
+ Conditions, pre-configured field values, and fields the user must set
1585
+ for one resource type (connection, export, import, or iClient) when it
1586
+ is created from this connector. All four sections share this shape.
1587
+ properties:
1588
+ preConfiguredFields:
1589
+ type: array
1590
+ description: Fields automatically set on the target resource. Not editable by the user.
1591
+ items:
1592
+ $ref: '#/components/schemas/SupportedByPreConfiguredField'
1593
+ fieldsUserMustSet:
1594
+ type: array
1595
+ description: Fields the user must provide values for when creating the target resource.
1596
+ items:
1597
+ $ref: '#/components/schemas/SupportedByFieldUserMustSet'
1598
+ fieldsToUnset:
1599
+ type: array
1600
+ description: Field paths to clear on the target resource.
1601
+ conditions:
1602
+ type: array
1603
+ description: |-
1604
+ Expression-based filters referenced by `_conditionIds` in
1605
+ `preConfiguredFields` and `fieldsUserMustSet` to conditionally
1606
+ apply those field configurations.
1607
+ items:
1608
+ type: object
1609
+ properties:
1610
+ _id:
1611
+ type: string
1612
+ format: objectId
1613
+ readOnly: true
1614
+ description: Unique identifier for this condition, referenced by `_conditionIds` in field entries.
1615
+ examples:
1616
+ - 5f8d43a1b9e5a80011a35f2c
1617
+ condition:
1618
+ $ref: '#/components/schemas/Filter'
1619
+ SupportedBy:
1620
+ type: object
1621
+ description: |-
1622
+ Framework-defined defaults that pre-configure fields and prompt users
1623
+ when a connection, export, import, or iClient is created from this
1624
+ connector (or from a specific version / API group).
1625
+ properties:
1626
+ connection:
1627
+ $ref: '#/components/schemas/SupportedBySection'
1628
+ export:
1629
+ $ref: '#/components/schemas/SupportedBySection'
1630
+ import:
1631
+ $ref: '#/components/schemas/SupportedBySection'
1632
+ iClient:
1633
+ $ref: '#/components/schemas/SupportedBySection'
1634
+ Version:
1635
+ type: object
1636
+ description: |-
1637
+ A version of the connector (or of an API group). Both contexts use the
1638
+ same shape.
1639
+ properties:
1640
+ _id:
1641
+ type: string
1642
+ format: objectId
1643
+ readOnly: true
1644
+ description: Unique identifier for this version.
1645
+ examples:
1646
+ - 63987132784a39b73aae63ce
1647
+ name:
1648
+ type: string
1649
+ description: Display name for this version (e.g. `v3`).
1650
+ examples:
1651
+ - v3
1652
+ published:
1653
+ type: boolean
1654
+ description: When true, this version is visible to users.
1655
+ baseURIs:
1656
+ type: array
1657
+ description: Base URI templates used for requests targeting this version.
1658
+ items:
1659
+ type: string
1660
+ examples:
1661
+ - https://api.acme.com/v3
1662
+ supportedBy:
1663
+ $ref: '#/components/schemas/SupportedBy'
1664
+ HTTPConnectorBase:
1665
+ type: object
1666
+ description: Writable fields shared by the request and response schemas.
1667
+ properties:
1668
+ name:
1669
+ type: string
1670
+ description: Display name for this HTTP Connector.
1671
+ maxLength: 255
1672
+ examples:
1673
+ - Acme API
1674
+ published:
1675
+ type: boolean
1676
+ description: When true, this connector is visible to users.
1677
+ baseURIs:
1678
+ type: array
1679
+ description: Base URI templates (used when `apis` is empty).
1680
+ items:
1681
+ type: string
1682
+ examples:
1683
+ - https://api.acme.com
1684
+ helpURL:
1685
+ type: string
1686
+ description: Documentation URL shown to users when configuring this connector.
1687
+ examples:
1688
+ - https://docs.celigo.com/hc/en-us/articles/4411468706203
1689
+ legacyId:
1690
+ type: string
1691
+ description: Legacy assistant ID for backward compatibility.
1692
+ examples:
1693
+ - acme
1694
+ isGraphQL:
1695
+ type: boolean
1696
+ description: When true, this connector targets a GraphQL API.
1697
+ requireBodyMatchForLinking:
1698
+ type: boolean
1699
+ description: Require request body matching when auto-linking exports/imports.
1700
+ disableAutoLinking:
1701
+ type: boolean
1702
+ description: Disable automatic linking of exports/imports to this connector.
1703
+ versioning:
1704
+ $ref: '#/components/schemas/Versioning'
1705
+ versions:
1706
+ type: array
1707
+ description: Connector versions (used when `apis` is empty).
1708
+ items:
1709
+ $ref: '#/components/schemas/Version'
1710
+ apis:
1711
+ type: array
1712
+ description: API groups under this connector. Each group has its own versions, baseURIs, and supportedBy config.
1713
+ items:
1714
+ type: object
1715
+ properties:
1716
+ _id:
1717
+ type: string
1718
+ format: objectId
1719
+ readOnly: true
1720
+ description: Unique identifier for this API group.
1721
+ examples:
1722
+ - 6a1b2c3d4e5f6789abcdef02
1723
+ name:
1724
+ type: string
1725
+ description: Display name for this API group.
1726
+ examples:
1727
+ - Profit
1728
+ description:
1729
+ type: string
1730
+ maxLength: 10240
1731
+ description: Explains what this API group covers, shown to users when selecting an API.
1732
+ examples:
1733
+ - Financial and ERP operations exposed by the Profit API.
1734
+ published:
1735
+ type: boolean
1736
+ description: When true, this API group is visible to users.
1737
+ baseURIs:
1738
+ type: array
1739
+ description: Base URI templates used for requests targeting this API group.
1740
+ items:
1741
+ type: string
1742
+ examples:
1743
+ - https://api.acme.com/profit
1744
+ helpURL:
1745
+ type: string
1746
+ description: Documentation URL shown to users when configuring this API group.
1747
+ examples:
1748
+ - https://docs.celigo.com/hc/en-us/articles/42612451102235
1749
+ legacyId:
1750
+ type: string
1751
+ description: Legacy assistant ID for backward compatibility.
1752
+ examples:
1753
+ - acme-profit
1754
+ isGraphQL:
1755
+ type: boolean
1756
+ description: When true, this API group targets a GraphQL API.
1757
+ versioning:
1758
+ $ref: '#/components/schemas/Versioning'
1759
+ versions:
1760
+ type: array
1761
+ description: Versions available under this API group.
1762
+ items:
1763
+ $ref: '#/components/schemas/Version'
1764
+ supportedBy:
1765
+ $ref: '#/components/schemas/SupportedBy'
1766
+ setDefault:
1767
+ type: boolean
1768
+ description: When true, this API group is the connector's default selection.
1769
+ supportedBy:
1770
+ allOf:
1771
+ - $ref: '#/components/schemas/SupportedBy'
1772
+ preBuiltExports:
1773
+ type: array
1774
+ description: Pre-built export templates associated with this connector.
1775
+ items:
1776
+ type: object
1777
+ properties:
1778
+ _exportId:
1779
+ type: string
1780
+ format: objectId
1781
+ x-celigo-refModel: exports
1782
+ description: Export resource that serves as the pre-built template.
1783
+ examples:
1784
+ - 66a1f2c3b4d5e6f7a8b9c0d1
1785
+ published:
1786
+ type: boolean
1787
+ description: When true, this pre-built export is visible to users.
1788
+ required:
1789
+ - _exportId
1790
+ preBuiltImports:
1791
+ type: array
1792
+ description: Pre-built import templates associated with this connector.
1793
+ items:
1794
+ type: object
1795
+ properties:
1796
+ _importId:
1797
+ type: string
1798
+ format: objectId
1799
+ x-celigo-refModel: imports
1800
+ description: Import resource that serves as the pre-built template.
1801
+ examples:
1802
+ - 66b2e3d4c5f6a7b8c9d0e1f2
1803
+ published:
1804
+ type: boolean
1805
+ description: When true, this pre-built import is visible to users.
1806
+ required:
1807
+ - _importId
1808
+ Request:
1809
+ type: object
1810
+ description: |-
1811
+ Fields for creating or updating an HTTP Connector. `name` is always
1812
+ required. On create, provide either `versions` (flat connector) or
1813
+ `apis` (grouped connector) -- most connectors use the flat pattern.
1814
+ required:
1815
+ - name
1816
+ allOf:
1817
+ - $ref: '#/components/schemas/HTTPConnectorBase'
1818
+ ResourceResponse:
1819
+ type: object
1820
+ description: Response
1821
+ x-celigo-ai-guidance:
1822
+ - Core response fields shared by all Celigo resources
1823
+ properties:
1824
+ _id:
1825
+ type: string
1826
+ format: objectId
1827
+ readOnly: true
1828
+ description: Unique identifier for the resource. Format is a 24-character hexadecimal string.
1829
+ x-celigo-ai-guidance:
1830
+ - |-
1831
+ The _id is used in:
1832
+ - API endpoints that operate on a specific resource (e.g., GET, PUT, DELETE)
1833
+ - References from other resources (e.g., flows that use this resource)
1834
+ - Job history and error tracking
1835
+ examples:
1836
+ - 5f8d43a1b9e5a80011a35f2c
1837
+ createdAt:
1838
+ type: string
1839
+ format: date-time
1840
+ readOnly: true
1841
+ description: Timestamp when the resource was created. Set automatically and cannot be modified.
1842
+ x-celigo-ai-guidance:
1843
+ - Recorded in ISO 8601 with a UTC timezone (Z suffix).
1844
+ examples:
1845
+ - '2023-04-01T09:15:32Z'
1846
+ lastModified:
1847
+ type: string
1848
+ format: date-time
1849
+ readOnly: true
1850
+ description: Timestamp when the resource was last updated. Changes whenever any property is modified.
1851
+ x-celigo-ai-guidance:
1852
+ - Recorded in ISO 8601 with a UTC timezone (Z suffix); always equal to or later than `createdAt`.
1853
+ examples:
1854
+ - '2023-04-15T14:30:15Z'
1855
+ deletedAt:
1856
+ type:
1857
+ - string
1858
+ - 'null'
1859
+ format: date-time
1860
+ readOnly: true
1861
+ description: Timestamp when the resource was soft-deleted. When null or absent, the resource is active.
1862
+ x-celigo-ai-guidance:
1863
+ - Non-null means the resource is soft-deleted (in the recycle bin) — recoverable within the retention period before permanent removal.
1864
+ examples:
1865
+ - '2023-05-20T11:45:32Z'
1866
+ required:
1867
+ - _id
1868
+ HTTPConnector:
1869
+ type: object
1870
+ required:
1871
+ - _id
1872
+ - _userId
1873
+ - name
1874
+ - createdAt
1875
+ - lastModified
1876
+ description: HTTP Connector object as returned by the detail (by-ID) endpoint.
1877
+ allOf:
1878
+ - $ref: '#/components/schemas/HTTPConnectorBase'
1879
+ - $ref: '#/components/schemas/ResourceResponse'
1880
+ - type: object
1881
+ properties:
1882
+ _userId:
1883
+ type: string
1884
+ format: objectId
1885
+ description: User who created this connector.
1886
+ readOnly: true
1887
+ x-celigo-refModel: users
1888
+ examples:
1889
+ - 6316f2b1e37e79778a43391c
1890
+ legacyIds:
1891
+ type: array
1892
+ description: All legacy assistant IDs associated with this connector.
1893
+ readOnly: true
1894
+ items:
1895
+ type: string
1896
+ examples:
1897
+ - acme
1898
+ supportsIClient:
1899
+ type: boolean
1900
+ description: When true, this connector supports shared iClient credentials.
1901
+ readOnly: true
1902
+ supportsWebhook:
1903
+ type: boolean
1904
+ description: When true, this connector supports webhook-based exports.
1905
+ readOnly: true
1906
+ hasBlobEndpoints:
1907
+ type: boolean
1908
+ description: When true, at least one endpoint under this connector handles binary/blob data.
1909
+ readOnly: true
1910
+ metadataLoadStrategy:
1911
+ type: string
1912
+ enum:
1913
+ - staged
1914
+ readOnly: true
1915
+ x-enumDescriptions:
1916
+ staged: Form metadata is loaded via catalog and resourceEndpointDetail routes
1917
+ description: |-
1918
+ Present only when the connector uses staged metadata loading. Omitted
1919
+ when the stored strategy is `full`.
1920
+ __numOfBlobEndpoints:
1921
+ type: number
1922
+ description: Number of blob endpoints for this connector
1923
+ readOnly: true
1924
+ examples:
1925
+ - 2
1926
+ metadata:
1927
+ type: object
1928
+ readOnly: true
1929
+ description: |-
1930
+ Connector metadata used by Data Intelligence tooling. Returned
1931
+ only by the detail (by-ID) endpoint — list responses omit it.
1932
+ properties:
1933
+ di:
1934
+ type: object
1935
+ description: Data Intelligence attributes for this connector.
1936
+ properties:
1937
+ isSourceOnboard:
1938
+ type: boolean
1939
+ description: When true, the connector is onboarded as a Data Intelligence source.
1940
+ apiResolution:
1941
+ type: object
1942
+ description: |-
1943
+ Which API group and version Data Intelligence resolves this
1944
+ connector to. Present only on connectors with multiple API
1945
+ groups or versions.
1946
+ properties:
1947
+ api:
1948
+ type: string
1949
+ description: Name of the resolved API group.
1950
+ examples:
1951
+ - Profit
1952
+ version:
1953
+ type: string
1954
+ description: Name of the resolved version.
1955
+ examples:
1956
+ - v3
1957
+ Error:
1958
+ type: object
1959
+ description: Standard error response envelope returned by integrator.io APIs.
1960
+ properties:
1961
+ errors:
1962
+ type: array
1963
+ description: List of errors that occurred while processing the request.
1964
+ items:
1965
+ type: object
1966
+ properties:
1967
+ code:
1968
+ oneOf:
1969
+ - type: string
1970
+ - type: integer
1971
+ description: |-
1972
+ Machine-readable error code. Usually a string like
1973
+ `invalid_ref`, `missing_required_field`, or `unauthorized`;
1974
+ may be an **integer** when the error mirrors an upstream HTTP
1975
+ status (e.g. `500`) — most commonly returned by connection-ping
1976
+ and adaptor-proxy responses.
1977
+ message:
1978
+ type: string
1979
+ description: Human-readable description of the error.
1980
+ field:
1981
+ type: string
1982
+ description: |-
1983
+ Optional pointer to the document field that caused the error.
1984
+ Used by structural validation errors (`missing_required_field`,
1985
+ `invalid_ref`) to indicate which field is at fault
1986
+ (e.g. `_id`, `type`, `http.baseURI`).
1987
+ source:
1988
+ type: string
1989
+ description: |-
1990
+ Optional origin layer for the error — e.g. `application` when
1991
+ the error came from the remote system the adaptor called,
1992
+ `connector` when the adaptor itself rejected the request.
1993
+ required:
1994
+ - message
1995
+ required:
1996
+ - errors
1997
+ CatalogEndpointSummary:
1998
+ type: object
1999
+ required:
2000
+ - id
2001
+ - name
2002
+ description: Projected endpoint summary in a form metadata catalog response.
2003
+ properties:
2004
+ id:
2005
+ type: string
2006
+ format: objectId
2007
+ description: HTTP Connector Endpoint ID.
2008
+ examples:
2009
+ - 63987132784a39b73aae63f1
2010
+ name:
2011
+ type: string
2012
+ description: Display name for this endpoint.
2013
+ examples:
2014
+ - Create order
2015
+ ignoreExisting:
2016
+ type: boolean
2017
+ description: When true, import flows ignore records that already exist. Present for import catalogs only.
2018
+ ignoreMissing:
2019
+ type: boolean
2020
+ description: When true, import flows ignore missing records. Present for import catalogs only.
2021
+ isIdentifierPresent:
2022
+ type: boolean
2023
+ description: When true, the import endpoint exposes an identifier field. Present for import catalogs only.
2024
+ CatalogResourceSummary:
2025
+ type: object
2026
+ required:
2027
+ - id
2028
+ - name
2029
+ - endpoints
2030
+ description: Projected resource summary in a form metadata catalog response.
2031
+ properties:
2032
+ id:
2033
+ type: string
2034
+ format: objectId
2035
+ description: HTTP Connector Resource ID.
2036
+ examples:
2037
+ - 63987132784a39b73aae63e7
2038
+ name:
2039
+ type: string
2040
+ description: Display name for this resource.
2041
+ examples:
2042
+ - Orders
2043
+ _httpConnectorApiId:
2044
+ type: string
2045
+ format: objectId
2046
+ x-celigo-refModel: httpconnectorapis
2047
+ description: API group this resource belongs to when the connector uses grouped APIs.
2048
+ examples:
2049
+ - 6a1b2c3d4e5f6789abcdef02
2050
+ _versionIds:
2051
+ type: array
2052
+ description: Version IDs this resource is associated with.
2053
+ items:
2054
+ type: string
2055
+ format: objectId
2056
+ versions:
2057
+ type: array
2058
+ description: Version labels associated with this resource.
2059
+ items:
2060
+ type: object
2061
+ properties:
2062
+ version:
2063
+ type: string
2064
+ description: Display name for the version.
2065
+ examples:
2066
+ - v1
2067
+ _id:
2068
+ type: string
2069
+ format: objectId
2070
+ description: Version ID.
2071
+ examples:
2072
+ - 63987132784a39b73aae63ce
2073
+ endpoints:
2074
+ type: array
2075
+ description: Endpoint summaries available on this resource for the requested plane.
2076
+ items:
2077
+ $ref: '#/components/schemas/CatalogEndpointSummary'
2078
+ HTTPConnectorCatalogResponse:
2079
+ type: object
2080
+ required:
2081
+ - resources
2082
+ description: Form metadata catalog for one import or export plane.
2083
+ properties:
2084
+ labels:
2085
+ type: object
2086
+ additionalProperties:
2087
+ type: string
2088
+ description: Display labels for catalog UI sections.
2089
+ versions:
2090
+ type: array
2091
+ description: Connector versions included in the catalog projection.
2092
+ items:
2093
+ type: object
2094
+ properties:
2095
+ version:
2096
+ type: string
2097
+ description: Display name for the version.
2098
+ examples:
2099
+ - v1
2100
+ _id:
2101
+ type: string
2102
+ format: objectId
2103
+ description: Version ID.
2104
+ examples:
2105
+ - 63987132784a39b73aae63ce
2106
+ resources:
2107
+ type: array
2108
+ description: Projected resources and their endpoints for the requested plane.
2109
+ items:
2110
+ $ref: '#/components/schemas/CatalogResourceSummary'
2111
+ HTTPConnectorResourceSummary:
2112
+ type: object
2113
+ description: Sanitized HTTP Connector Resource document returned by resourceEndpointDetail.
2114
+ additionalProperties: true
2115
+ HTTPConnectorEndpointSummary:
2116
+ type: object
2117
+ description: Sanitized HTTP Connector Endpoint document returned by resourceEndpointDetail.
2118
+ additionalProperties: true
2119
+ ResourceEndpointDetail:
2120
+ type: object
2121
+ required:
2122
+ - resolvedResourceId
2123
+ - httpConnectorResource
2124
+ description: |-
2125
+ Scoped resource and endpoint metadata for the HTTP connector form.
2126
+ Single-endpoint requests return `resolvedEndpointId` and
2127
+ `httpConnectorEndpoint`. Import batch requests (`endpointIds`) return
2128
+ `resolvedEndpointIds` and `httpConnectorEndpoints` instead.
2129
+ properties:
2130
+ resolvedResourceId:
2131
+ type: string
2132
+ format: objectId
2133
+ description: Resource ID resolved for the request.
2134
+ examples:
2135
+ - 63987132784a39b73aae63e7
2136
+ resolvedEndpointId:
2137
+ type: string
2138
+ format: objectId
2139
+ description: Endpoint ID for single-endpoint requests. Present when `resolvedEndpointIds` is absent.
2140
+ examples:
2141
+ - 63987132784a39b73aae63f1
2142
+ resolvedEndpointIds:
2143
+ type: array
2144
+ minItems: 2
2145
+ maxItems: 2
2146
+ description: Create/update endpoint ID pair for import batch requests. Present for batch responses.
2147
+ items:
2148
+ type: string
2149
+ format: objectId
2150
+ resolvedVersionId:
2151
+ type: string
2152
+ format: objectId
2153
+ description: Echoed when a version scope filter was supplied on the request.
2154
+ examples:
2155
+ - 63987132784a39b73aae63ce
2156
+ httpConnectorResource:
2157
+ $ref: '#/components/schemas/HTTPConnectorResourceSummary'
2158
+ httpConnectorEndpoint:
2159
+ $ref: '#/components/schemas/HTTPConnectorEndpointSummary'
2160
+ description: Endpoint document for single-endpoint requests. Present when `resolvedEndpointIds` is absent.
2161
+ httpConnectorEndpoints:
2162
+ type: array
2163
+ minItems: 2
2164
+ maxItems: 2
2165
+ description: Create/update endpoint documents for import batch requests. Present for batch responses.
2166
+ items:
2167
+ $ref: '#/components/schemas/HTTPConnectorEndpointSummary'
2168
+ lookupHttpConnectorEndpoint:
2169
+ $ref: '#/components/schemas/HTTPConnectorEndpointSummary'
2170
+ description: |-
2171
+ Present for import single-endpoint requests when a lookup endpoint
2172
+ resolves in scope.
2173
+ lookupHttpConnectorEndpoints:
2174
+ type: array
2175
+ description: Lookup endpoints resolved for import batch requests.
2176
+ items:
2177
+ $ref: '#/components/schemas/HTTPConnectorEndpointSummary'
2178
+ if:
2179
+ required:
2180
+ - resolvedEndpointIds
2181
+ then:
2182
+ required:
2183
+ - resolvedEndpointIds
2184
+ - httpConnectorEndpoints
2185
+ else:
2186
+ required:
2187
+ - resolvedEndpointId
2188
+ - httpConnectorEndpoint
2189
+ responses:
2190
+ 401-unauthorized:
2191
+ description: |-
2192
+ Unauthorized. The request lacks a valid bearer token, or the provided token
2193
+ failed to authenticate.
2194
+
2195
+ Note: the 401 response is produced by the auth middleware **before** the
2196
+ request reaches the endpoint handler, so it does **not** follow the
2197
+ standard `{errors: [...]}` envelope. Instead the body is a bare
2198
+ `{message: string}` object with no `code`, no `errors` array. Callers
2199
+ handling 401s should key off the HTTP status and the `message` string,
2200
+ not try to destructure an `errors[]`.
2201
+ content:
2202
+ application/json:
2203
+ schema:
2204
+ type: object
2205
+ properties:
2206
+ message:
2207
+ type: string
2208
+ description: |-
2209
+ Human-readable description of the auth failure. Known values:
2210
+ - `"Unauthorized"` — no `Authorization` header on the request.
2211
+ - `"Bearer Authentication Failed"` — header present but token
2212
+ is invalid, revoked, or expired.
2213
+ required:
2214
+ - message
2215
+ examples:
2216
+ missing_token:
2217
+ summary: No Authorization header sent
2218
+ value:
2219
+ message: Unauthorized
2220
+ invalid_token:
2221
+ summary: Bearer token invalid or revoked
2222
+ value:
2223
+ message: Bearer Authentication Failed
2224
+ 400-bad-request:
2225
+ description: |
2226
+ Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
2227
+ content:
2228
+ application/json:
2229
+ schema:
2230
+ $ref: '#/components/schemas/Error'
2231
+ examples:
2232
+ default:
2233
+ value:
2234
+ errors:
2235
+ - code: invalid_request
2236
+ message: The request body failed validation.
2237
+ 403-forbidden:
2238
+ description: |
2239
+ Forbidden. The authenticated caller does not have permission to perform this operation.
2240
+ content:
2241
+ application/json:
2242
+ schema:
2243
+ $ref: '#/components/schemas/Error'
2244
+ examples:
2245
+ default:
2246
+ value:
2247
+ errors:
2248
+ - code: forbidden
2249
+ message: You do not have permission to access this resource.
2250
+ 422-unprocessable-entity:
2251
+ description: |
2252
+ Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
2253
+ content:
2254
+ application/json:
2255
+ schema:
2256
+ $ref: '#/components/schemas/Error'
2257
+ examples:
2258
+ default:
2259
+ value:
2260
+ errors:
2261
+ - code: unprocessable_entity
2262
+ message: The request could not be processed due to a semantic error.
2263
+ 404-not-found:
2264
+ description: |
2265
+ Not found. The requested resource does not exist or is not visible to the caller.
2266
+ content:
2267
+ application/json:
2268
+ schema:
2269
+ $ref: '#/components/schemas/Error'
2270
+ examples:
2271
+ default:
2272
+ value:
2273
+ errors:
2274
+ - code: not_found
2275
+ message: The requested resource was not found.
2276
+ x-enable-proxy: true
2277
+ x-internal: false