@celigo/api-specs 0.2.137 → 0.2.139

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.
@@ -29,9 +29,10 @@ tags:
29
29
  `install`, `installSteps`) also appear on a standard integration created by the
30
30
  UI's clone-and-install, so they do not by themselves mean Integration App.
31
31
 
32
- Integrations support **Integration Lifecycle Management (ILM)**: clone an integration
33
- across environments, then use revisions (snapshot, pull, revert) to promote changes
34
- between them. Lifecycle operations carry every resource the integration contains.
32
+ Integrations support **Integration Lifecycle Management (ILM)**: revisions (snapshot,
33
+ pull, revert) promote changes between an integration and its lifecycle-linked clones,
34
+ and carry every resource the integration contains. Only the UI's clone-and-install
35
+ links a clone; `POST /v1/integrations/{_id}/clone` makes a standalone copy.
35
36
 
36
37
  ## Integration schema
37
38
 
@@ -339,7 +340,8 @@ paths:
339
340
  - Integrations
340
341
  description: |-
341
342
  Deletes an integration. The integration is soft-deleted and retained in the
342
- recycle bin for 30 days before permanent removal.
343
+ recycle bin for 30 days before permanent removal. Delete the APIs and Tools it
344
+ contains, and remove its aliases that point at lookup caches, first.
343
345
  parameters:
344
346
  - name: _id
345
347
  in: path
@@ -359,14 +361,28 @@ paths:
359
361
  '404':
360
362
  $ref: '#/components/responses/404-not-found'
361
363
  '422':
362
- $ref: '#/components/responses/422-dependency-conflict'
364
+ description: |-
365
+ The integration still contains resources that must be deleted first, APIs and Tools
366
+ among them (`dependencies_not_deleted`, one entry per blocking resource), or one of its
367
+ `aliases[]` still points at a lookup cache.
368
+ content:
369
+ application/json:
370
+ schema:
371
+ $ref: '#/components/schemas/Error'
372
+ examples:
373
+ lookup_cache_alias:
374
+ value:
375
+ errors:
376
+ - message: integration 6842261335b64c0bcb308e4f owns alias "customeridcache" pointing to lookupcache 68680d7111d1437fbcbce534. Alias must be deleted before this resource can be deleted.
363
377
  /v1/integrations/{_id}/clone:
364
378
  post:
365
379
  x-internal: false
366
380
  summary: Clone an integration
367
381
  description: |
368
- Creates a copy of an existing integration. When the source has registered
369
- connections, remap each one via `connectionMap`; mapped connections are reused, not cloned.
382
+ Creates a standalone copy of an existing integration: the copy records its source in
383
+ `_sourceId` but isn't lifecycle-linked to it, so a pull between the two finds no changes.
384
+ When the source has registered connections, remap each one via `connectionMap`; mapped
385
+ connections are reused, not cloned.
370
386
  operationId: cloneIntegration
371
387
  tags:
372
388
  - Integrations
@@ -416,6 +432,28 @@ paths:
416
432
  $ref: '#/components/responses/401-unauthorized'
417
433
  '404':
418
434
  $ref: '#/components/responses/404-not-found'
435
+ '422':
436
+ description: |-
437
+ A `connectionMap` key is missing or isn't one of the source's registered connections, or a
438
+ value isn't a connection in the target environment (`invalid_connectionId`). Nothing is
439
+ created.
440
+ content:
441
+ application/json:
442
+ schema:
443
+ $ref: '#/components/schemas/Error'
444
+ examples:
445
+ missing_key:
446
+ summary: A registered connection is missing from connectionMap
447
+ value:
448
+ errors:
449
+ - code: invalid_connectionId
450
+ message: 'The _connectionId provided for the key ''6553ebdeda62bb22e7fa81ff'': '''' is invalid.'
451
+ unknown_key:
452
+ summary: A key that isn't one of the source's registered connections
453
+ value:
454
+ errors:
455
+ - code: invalid_connectionId
456
+ message: The key '64a1234567890abcdef12399' in connectionMap doesn't match with any of the _id's of the connection documents.
419
457
  /v1/integrations/{_id}/clone/preview:
420
458
  get:
421
459
  x-internal: false
@@ -678,7 +716,7 @@ paths:
678
716
  operationId: getIntegrationRevisionDiff
679
717
  tags:
680
718
  - Integrations
681
- summary: Diff a pending revision
719
+ summary: Diff a pull or revert revision
682
720
  description: |-
683
721
  Returns the before/after diff for a pull or revert revision. The diff is materialized on `pull`
684
722
  and `revert` revisions and is retained on their `completed` state -- available for both
@@ -710,7 +748,7 @@ paths:
710
748
  - 6a28d2af6d42eb08f8e863e7
711
749
  responses:
712
750
  '200':
713
- description: Diff envelope for the pending revision.
751
+ description: Diff envelope for the revision.
714
752
  content:
715
753
  application/json:
716
754
  schema:
@@ -1815,8 +1853,12 @@ paths:
1815
1853
  cache does not already have one: `alias` is a slug of the cache name
1816
1854
  (lowercased, whitespace and special characters stripped, `_2`/`_3`/…
1817
1855
  appended on collision) and `_lookupCacheId` points at the cache. Scripts
1818
- and hooks use the alias as a stable handle for the cache, and
1819
- deregistering the cache is blocked until the alias is removed.
1856
+ and hooks use the alias as a stable handle for the cache, and the
1857
+ `{{getLookupCacheData}}` Handlebars helper reads the cache only through
1858
+ it: the alias is matched case-sensitively, and a cache `_id` in its place
1859
+ fails with `alias "…" not found in integration/flow aliases.`.
1860
+ Deregistering or deleting the cache, and deleting the integration, are
1861
+ blocked until the alias is removed.
1820
1862
  parameters:
1821
1863
  - name: _id
1822
1864
  in: path
@@ -1932,7 +1974,10 @@ paths:
1932
1974
  of the cache name (lowercased, whitespace and special characters stripped,
1933
1975
  `_2`/`_3`/… appended on collision) and `_lookupCacheId` points at the
1934
1976
  cache. Scripts and hooks use the alias as a stable handle for the cache,
1935
- and deregistering the cache is blocked until the alias is removed.
1977
+ and the `{{getLookupCacheData}}` Handlebars helper reads the cache only
1978
+ through it (matched case-sensitively; a cache `_id` is not accepted).
1979
+ Deregistering or deleting the cache, and deleting the integration, are
1980
+ blocked until the alias is removed.
1936
1981
  parameters:
1937
1982
  - name: _id
1938
1983
  in: path
@@ -3524,7 +3569,12 @@ components:
3524
3569
  examples:
3525
3570
  - install
3526
3571
  settings:
3527
- description: Integration App settings object for this integration.
3572
+ description: |-
3573
+ Integration App settings object for this integration. An Integration App can also keep
3574
+ its settings fields here, each with its current value: `settings.general` and
3575
+ `settings.sections[]` (tabs, then nested `sections[]`, then `fields[]`; a flow entry's own
3576
+ fields sit in its `settings[]`). When `settings.supportsMultiStore` is true, each
3577
+ `settings.sections[]` entry is a store and its own `sections[]` are the tabs.
3528
3578
  allOf:
3529
3579
  - description: |-
3530
3580
  Integration App settings object for this integration.
@@ -4212,12 +4262,12 @@ components:
4212
4262
  _sourceId:
4213
4263
  type: string
4214
4264
  format: objectId
4265
+ x-celigo-refModel: integrations
4215
4266
  examples:
4216
4267
  - 6842261335b64c0bcb308e4f
4217
4268
  description: |-
4218
- System-assigned source identifier for the integration.
4219
-
4220
- Typically system-managed; omit in normal create/update payloads.
4269
+ Integration this one was cloned from. Set on every clone, standalone copies included, so
4270
+ it doesn't by itself mean the two are lifecycle-linked. Omit in create and update payloads.
4221
4271
  sampleIntegration:
4222
4272
  type: boolean
4223
4273
  description: |-
@@ -4521,8 +4571,11 @@ components:
4521
4571
  Keys are source connection _ids on the original integration; values
4522
4572
  are target connection _ids in the destination environment.
4523
4573
  Required when the source integration has registered connections — omitting it or
4524
- sending an empty map fails with 400 `invalid_connectionMap`. Map a connection to
4525
- itself to reuse it in the clone; omit the map when the source has none.
4574
+ sending an empty map fails with 400 `invalid_connectionMap`. Every registered
4575
+ connection must be a key, mapped to a connection in the target environment: a missing or
4576
+ unknown key, or a value that isn't a connection there, fails with 422
4577
+ `invalid_connectionId`. Map a connection to itself to reuse it in the clone; omit the map
4578
+ when the source has none.
4526
4579
  additionalProperties:
4527
4580
  type: string
4528
4581
  example:
@@ -4760,13 +4813,13 @@ components:
4760
4813
  RevisionDiffResponse:
4761
4814
  type: object
4762
4815
  description: |-
4763
- Structured before/after diff for a revision. Only available while the revision is in a `pending`
4764
- state (e.g. a queued `pull` or `revert`). Completed snapshot revisions are read-only and return
4765
- HTTP 400 `invalid_revision_state` — the diff is computed during the apply window, not retained.
4816
+ Structured before/after diff for a `pull` or `revert` revision, available on an `inprogress`
4817
+ one once its install steps have materialized and kept once it is `completed`. Snapshot,
4818
+ `canceled` and `failed` revisions have none and return HTTP 400 `invalid_revision_state`.
4766
4819
 
4767
- Shape is the platform's internal diff document — a map of resource type → per-resource
4768
- before/after blocks. Treated as an opaque envelope here; specific field layout is not guaranteed
4769
- stable across platform versions.
4820
+ A `{before, after}` envelope: each side maps resource type to resource id to that resource's
4821
+ snapshot. Treated as an opaque envelope here; specific field layout is not guaranteed stable
4822
+ across platform versions.
4770
4823
  additionalProperties: true
4771
4824
  RevisionError:
4772
4825
  type: object
@@ -5457,19 +5510,5 @@ components:
5457
5510
  errors:
5458
5511
  - code: not_found
5459
5512
  message: The requested resource was not found.
5460
- 422-dependency-conflict:
5461
- description: |-
5462
- The resource has dependents that must be deleted first. Each entry
5463
- in the `errors` array names one blocking resource.
5464
- content:
5465
- application/json:
5466
- schema:
5467
- $ref: '#/components/schemas/Error'
5468
- examples:
5469
- default:
5470
- value:
5471
- errors:
5472
- - code: dependencies_not_deleted
5473
- message: export 6902d88c10b42b2eaac9b2a1 must be deleted before you can delete connection 6398ddf316be761fb16a6523
5474
5513
  x-enable-proxy: true
5475
5514
  x-internal: false
@@ -10,7 +10,9 @@ info:
10
10
  and cross-reference resolution.
11
11
 
12
12
  Each lookup cache:
13
- - Belongs to a specific integration
13
+ - Is account-level: an integration uses it once registered there
14
+ (`PUT /v1/integrations/{_id}/lookupcaches/register`), which also adds an alias to the
15
+ integration's `aliases[]`
14
16
  - Has a maximum size of 50 MB per cache
15
17
  - Is subject to a per-environment aggregate limit of 1 GB
16
18
  - Can optionally include its data when used in templates and cloning
@@ -119,8 +121,8 @@ paths:
119
121
  x-internal: false
120
122
  summary: Create a lookup cache
121
123
  description: |-
122
- Creates a new empty lookup cache. Only `name` is required. Populate
123
- it afterwards via `POST /v1/lookupcaches/{_id}/data`.
124
+ Creates a new empty lookup cache. Populate it afterwards via
125
+ `POST /v1/lookupcaches/{_id}/data`.
124
126
  operationId: createLookupCache
125
127
  tags:
126
128
  - Lookup Caches
@@ -354,6 +356,19 @@ paths:
354
356
  $ref: '#/components/responses/401-unauthorized'
355
357
  '404':
356
358
  $ref: '#/components/responses/404-not-found'
359
+ '422':
360
+ description: |-
361
+ An integration's `aliases[]` still points at the cache. Registering a cache adds such an
362
+ alias, so remove it from that integration's `aliases`, then delete again.
363
+ content:
364
+ application/json:
365
+ schema:
366
+ $ref: '#/components/schemas/Error'
367
+ examples:
368
+ alias_referenced:
369
+ value:
370
+ errors:
371
+ - message: lookupcache 69c2eb25365fb658aa39c642 is referenced by an alias on integration 6842261335b64c0bcb308e4f. Alias must be deleted before resource can be deleted.
357
372
  /v1/lookupcaches/{_id}/clone/preview:
358
373
  get:
359
374
  x-internal: false
@@ -418,8 +433,9 @@ paths:
418
433
  read-then-write per key. Values may be null, numbers, booleans,
419
434
  strings, or objects — arrays at the top level are rejected (wrap them in an
420
435
  object). One invalid entry fails the entire batch and nothing in it is written:
421
- a bad value returns `400 invalid_value`, and an empty, missing, or over-length
422
- key returns `400 cache_dynamodb_invalid_key`.
436
+ a bad value returns `400 invalid_value`, an empty, missing, or over-length
437
+ key returns `400 cache_dynamodb_invalid_key`, and a key that appears twice in
438
+ the batch returns 400 "Duplicate keys found in the request".
423
439
 
424
440
  The service rejects batches larger than ~1000 entries or ~5 MB of JSON.
425
441
  Callers uploading more than that should split their payload; the Celigo CLI
@@ -238,8 +238,8 @@ paths:
238
238
  description: |-
239
239
  No template matched the id. Most commonly: the id belongs to a
240
240
  Connector (Integration App) rather than a Template — Connectors are
241
- installed via `/v1/integrations/<id>/install`, not through this
242
- preview endpoint.
241
+ installed via `POST /v1/connectors/{_id}/install`, available only to
242
+ Celigo Partners, not through this preview endpoint.
243
243
  content:
244
244
  application/json:
245
245
  schema:
@@ -3761,21 +3761,11 @@ components:
3761
3761
  format: objectId
3762
3762
  x-celigo-refModel: connectors
3763
3763
  readOnly: true
3764
- description: |
3765
- Reference to the integration app that defines this resource.
3766
-
3767
- This field is only populated for resources that are part of an integration app.
3768
- It contains the unique identifier (_id) of the integration app (connector)
3769
- that defines the structure, behavior, and templates for this resource.
3770
-
3771
- The integration app is the published template that can be installed
3772
- multiple times across different accounts, with each installation creating
3773
- a separate integration instance (referenced by _integrationId).
3774
-
3775
- This reference enables:
3776
- - Identifying the source integration app for this resource
3777
- - Determining which template version is being used
3778
- - Linking to documentation, support, and marketplace information
3764
+ description: |-
3765
+ Integration App (connector) that defines this resource. Present only on resources an
3766
+ Integration App owns. The app locks parts of these documents, and a PUT that changes a
3767
+ locked field answers 200 but keeps the stored value, so read the document back to confirm
3768
+ a change.
3779
3769
  examples:
3780
3770
  - 5e8d43a1b9e5a80011a35f1b
3781
3771
  x-celigo-ai-guidance:
@@ -23,7 +23,8 @@ tags:
23
23
 
24
24
  These are one-shot transformation calls — they do not create or modify
25
25
  any resources. Use them to test parsing rules, preview file definitions,
26
- or transform data outside of a flow.
26
+ or transform data outside of a flow. The filter and Handlebars processors
27
+ test a step's filter rules or templates the same way.
27
28
 
28
29
  ## Processor descriptor schema
29
30
 
@@ -1047,6 +1048,212 @@ paths:
1047
1048
  type: string
1048
1049
  path:
1049
1050
  type: string
1051
+ /v1/processors/filter:
1052
+ post:
1053
+ x-internal: false
1054
+ operationId: evaluateFilterRules
1055
+ tags:
1056
+ - Parsers & Generators
1057
+ summary: Test filter rules against records
1058
+ description: |-
1059
+ Evaluates export and import filter rules (`Filter.expression`) against the records in `data` and
1060
+ returns the records that pass. Nothing is saved and no flow runs, so it checks a rule before the
1061
+ rule is saved on a step. Rules are validated as they are when a filter is saved: an unknown
1062
+ operator or a bare `extract` is refused with 422.
1063
+
1064
+ Send each record bare, the way it reaches a step's filter. A record wrapped as
1065
+ `{"record": {...}}` is evaluated as that wrapper, so field rules don't match it.
1066
+ requestBody:
1067
+ required: true
1068
+ content:
1069
+ application/json:
1070
+ schema:
1071
+ type: object
1072
+ required:
1073
+ - rules
1074
+ - data
1075
+ properties:
1076
+ rules:
1077
+ type: object
1078
+ description: The filter expression to evaluate, in the shape of a step's `filter.expression`.
1079
+ required:
1080
+ - version
1081
+ - rules
1082
+ properties:
1083
+ version:
1084
+ type: string
1085
+ enum:
1086
+ - '1'
1087
+ x-enumDescriptions:
1088
+ '1': Version 1 of the Celigo expression-based filter format.
1089
+ description: Version of the filter format used by `rules`.
1090
+ rules:
1091
+ type: array
1092
+ description: Prefix-notation rule in the grammar of `Filter.expression.rules`.
1093
+ x-celigo-agent:
1094
+ - filter
1095
+ items: {}
1096
+ data:
1097
+ type: array
1098
+ description: Records to evaluate, each a bare record object.
1099
+ items:
1100
+ type: object
1101
+ additionalProperties: true
1102
+ examples:
1103
+ default:
1104
+ summary: Keep the records whose email has a value
1105
+ value:
1106
+ rules:
1107
+ version: '1'
1108
+ rules:
1109
+ - notempty
1110
+ - - string
1111
+ - - extract
1112
+ - email
1113
+ data:
1114
+ - email: a@example.com
1115
+ - email: ''
1116
+ - {}
1117
+ responses:
1118
+ '200':
1119
+ description: The records that pass the rules.
1120
+ content:
1121
+ application/json:
1122
+ schema:
1123
+ type: object
1124
+ properties:
1125
+ mediaType:
1126
+ type: string
1127
+ description: Always `json` for the filter processor.
1128
+ enum:
1129
+ - json
1130
+ x-enumDescriptions:
1131
+ json: Response data is formatted as JSON.
1132
+ data:
1133
+ type: array
1134
+ description: The input records that pass the rules, unchanged and in input order.
1135
+ items:
1136
+ type: object
1137
+ additionalProperties: true
1138
+ duration:
1139
+ type: integer
1140
+ description: Processing time in milliseconds.
1141
+ examples:
1142
+ default:
1143
+ value:
1144
+ mediaType: json
1145
+ data:
1146
+ - email: a@example.com
1147
+ duration: 0
1148
+ '401':
1149
+ $ref: '#/components/responses/401-unauthorized'
1150
+ '422':
1151
+ description: |-
1152
+ The rules are invalid, for example an unknown operator ("Invalid operation: isnotempty.") or
1153
+ an `extract` that is not wrapped in a type conversion ("Field operation extract must be called
1154
+ by a Type Conversion Operation but was called by notempty.").
1155
+ content:
1156
+ application/json:
1157
+ schema:
1158
+ $ref: '#/components/schemas/Error'
1159
+ /v1/processors/handlebars:
1160
+ post:
1161
+ x-internal: false
1162
+ operationId: renderHandlebarsTemplate
1163
+ tags:
1164
+ - Parsers & Generators
1165
+ summary: Render a Handlebars template
1166
+ description: |-
1167
+ Renders a Handlebars template against the object in `data` and returns the result. Nothing is
1168
+ saved and no flow runs, so it tests a template or a helper before the template is saved on a
1169
+ step.
1170
+
1171
+ `data` is the template's root context: `{{name}}` reads `data.name`. A template written for a
1172
+ step reads the record as `{{record.<field>}}`, so send the record under `record`
1173
+ (`"data": {"record": {...}}`). Double braces HTML-escape the value (`&` renders as `&amp;`);
1174
+ triple braces insert it unchanged. A `timestamp` with no time zone renders in UTC.
1175
+
1176
+ An unknown helper is refused with 422. `GET /v1/processors` lists helpers under the handlebars
1177
+ entry's `helperFunctions`, but that list is not complete: `eq` and `truncateWords`, for
1178
+ example, render although it omits them, so render a doubtful helper once here before relying
1179
+ on it.
1180
+ requestBody:
1181
+ required: true
1182
+ content:
1183
+ application/json:
1184
+ schema:
1185
+ type: object
1186
+ required:
1187
+ - rules
1188
+ - data
1189
+ properties:
1190
+ rules:
1191
+ type: object
1192
+ required:
1193
+ - template
1194
+ properties:
1195
+ template:
1196
+ type: string
1197
+ description: The Handlebars template to render.
1198
+ x-celigo-agent:
1199
+ - handlebars
1200
+ resultMode:
1201
+ type: string
1202
+ description: Form of the result; `text` returns the rendered string.
1203
+ examples:
1204
+ - text
1205
+ data:
1206
+ type: object
1207
+ additionalProperties: true
1208
+ description: Root context the template renders against.
1209
+ examples:
1210
+ step_template:
1211
+ summary: Render a step template against a record
1212
+ value:
1213
+ rules:
1214
+ template: '{{record.name}} | {{{record.name}}}'
1215
+ resultMode: text
1216
+ data:
1217
+ record:
1218
+ name: Smith & Sons
1219
+ responses:
1220
+ '200':
1221
+ description: The rendered template.
1222
+ content:
1223
+ application/json:
1224
+ schema:
1225
+ type: object
1226
+ properties:
1227
+ mediaType:
1228
+ type: string
1229
+ description: Always `text` for the handlebars processor.
1230
+ enum:
1231
+ - text
1232
+ x-enumDescriptions:
1233
+ text: Response data is the rendered text.
1234
+ data:
1235
+ description: |-
1236
+ The rendered result, normally a string. A template that renders only a helper's
1237
+ numeric result can come back as a JSON number.
1238
+ duration:
1239
+ type: integer
1240
+ description: Processing time in milliseconds.
1241
+ examples:
1242
+ default:
1243
+ value:
1244
+ mediaType: text
1245
+ data: Smith &amp; Sons | Smith & Sons
1246
+ duration: 0
1247
+ '401':
1248
+ $ref: '#/components/responses/401-unauthorized'
1249
+ '422':
1250
+ description: |-
1251
+ The template could not be rendered, for example because it calls a helper that does not
1252
+ exist ('Missing helper: "first"').
1253
+ content:
1254
+ application/json:
1255
+ schema:
1256
+ $ref: '#/components/schemas/Error'
1050
1257
  components:
1051
1258
  securitySchemes:
1052
1259
  bearerAuth:
@@ -1219,6 +1426,46 @@ components:
1219
1426
  traceKeysDuplicate:
1220
1427
  type: boolean
1221
1428
  description: When true, duplicate trace keys were detected in the output records.
1429
+ Error:
1430
+ type: object
1431
+ description: Standard error response envelope returned by integrator.io APIs.
1432
+ properties:
1433
+ errors:
1434
+ type: array
1435
+ description: List of errors that occurred while processing the request.
1436
+ items:
1437
+ type: object
1438
+ properties:
1439
+ code:
1440
+ oneOf:
1441
+ - type: string
1442
+ - type: integer
1443
+ description: |-
1444
+ Machine-readable error code. Usually a string like
1445
+ `invalid_ref`, `missing_required_field`, or `unauthorized`;
1446
+ may be an **integer** when the error mirrors an upstream HTTP
1447
+ status (e.g. `500`) — most commonly returned by connection-ping
1448
+ and adaptor-proxy responses.
1449
+ message:
1450
+ type: string
1451
+ description: Human-readable description of the error.
1452
+ field:
1453
+ type: string
1454
+ description: |-
1455
+ Optional pointer to the document field that caused the error.
1456
+ Used by structural validation errors (`missing_required_field`,
1457
+ `invalid_ref`) to indicate which field is at fault
1458
+ (e.g. `_id`, `type`, `http.baseURI`).
1459
+ source:
1460
+ type: string
1461
+ description: |-
1462
+ Optional origin layer for the error — e.g. `application` when
1463
+ the error came from the remote system the adaptor called,
1464
+ `connector` when the adaptor itself rejected the request.
1465
+ required:
1466
+ - message
1467
+ required:
1468
+ - errors
1222
1469
  responses:
1223
1470
  401-unauthorized:
1224
1471
  description: |-
@@ -416,7 +416,10 @@ paths:
416
416
  description: |-
417
417
  Permanently purges a resource from the recycle bin. This action
418
418
  cannot be undone — the resource data is irrecoverably removed.
419
- Resources are auto-purged after 30 days.
419
+ Resources are auto-purged after 30 days. A purge removes only the
420
+ named resource: purge the bin entries that still reference it first
421
+ (a deleted flow references its integration and the exports and imports
422
+ it used).
420
423
  parameters:
421
424
  - $ref: '#/components/parameters/ResourceType'
422
425
  - name: _id
@@ -449,6 +452,17 @@ paths:
449
452
  message: Recycle Bin operations are not supported for the given model at this time
450
453
  '404':
451
454
  $ref: '#/components/responses/404-not-found'
455
+ '422':
456
+ description: |-
457
+ Another recycle-bin entry still references the resource. Purge that
458
+ entry first, then retry.
459
+ content:
460
+ application/json:
461
+ schema:
462
+ $ref: '#/components/schemas/Error'
463
+ example:
464
+ errors:
465
+ - message: 'this document is referenced by Flow : 60a2c4e6f321d800129a1a3c'
452
466
  /v1/recycleBinTTL/{resourceType}/{_id}/doCascadeRestore:
453
467
  post:
454
468
  x-internal: false