@celigo/api-specs 0.2.99 → 0.2.101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/import.yml CHANGED
@@ -677,11 +677,11 @@ paths:
677
677
 
678
678
  The integrator.io UI never calls this path — the import editor's
679
679
  "Preview" and "Send" buttons both go through
680
- `POST /v1/pageProcessors/preview`. This endpoint is the API-only,
681
- unscoped counterpart to
682
- `POST /v1/integrations/{_integrationId}/flows/{_flowId}/imports/preview`
683
- — prefer this variant when previewing a standalone import that is not
684
- yet associated with a flow.
680
+ `POST /v1/pageProcessors/preview`. This is the only import preview
681
+ route on the public API: unlike exports, imports have no flow-scoped
682
+ sibling — `POST /v1/integrations/{_integrationId}/flows/{_flowId}/imports/preview`
683
+ answers 404 `resource_not_found`. To preview an import inside its
684
+ flow, use `POST /v1/pageProcessors/preview`.
685
685
  requestBody:
686
686
  required: true
687
687
  content:
@@ -934,82 +934,6 @@ paths:
934
934
  message: _connectionId is required.
935
935
  '401':
936
936
  $ref: '#/components/responses/401-unauthorized'
937
- /v1/integrations/{_integrationId}/flows/{_flowId}/imports/preview:
938
- post:
939
- x-internal: false
940
- summary: Preview import data
941
- description: |
942
- Runs the import pipeline — field mappings, transformations, and hooks —
943
- against the supplied sample data and returns the per-record results.
944
- Treat the preview as capable of executing the composed destination
945
- request: its unscoped sibling (`POST /v1/imports/preview`) is verified
946
- to write real records to live destinations and offers no option to
947
- disable the send, so do not preview create/update imports against
948
- production systems with data you do not want written. For a
949
- compose-only preview of the destination request, use
950
- `POST /v1/pageProcessors/preview` with `{preview: true}` on the
951
- target entry.
952
- operationId: previewImportData
953
- tags:
954
- - Imports
955
- parameters:
956
- - in: path
957
- name: _integrationId
958
- required: true
959
- schema:
960
- type: string
961
- format: objectId
962
- x-celigo-refModel: integrations
963
- examples:
964
- - 60a2c4e6f321d800129a1a3c
965
- description: Integration ID
966
- - in: path
967
- name: _flowId
968
- required: true
969
- schema:
970
- type: string
971
- format: objectId
972
- x-celigo-refModel: flows
973
- examples:
974
- - 64ff4b22612a134bd2f45538
975
- description: Flow ID
976
- requestBody:
977
- required: true
978
- content:
979
- application/json:
980
- schema:
981
- $ref: '#/components/schemas/PreviewRequest'
982
- examples:
983
- one_record:
984
- summary: Preview an existing import against one sample record
985
- value:
986
- _importId: 5f8d43a1b9e5a80011a35f2c
987
- sampleData:
988
- name: Acme Corp
989
- email: contact@acme.com
990
- responses:
991
- '200':
992
- description: Successfully previewed import data
993
- content:
994
- application/json:
995
- schema:
996
- $ref: '#/components/schemas/PreviewResponse'
997
- examples:
998
- mapped_record:
999
- summary: Mapped record as composed for the destination
1000
- value:
1001
- data:
1002
- - name: Acme Corp
1003
- email: contact@acme.com
1004
- errors: []
1005
- '400':
1006
- $ref: '#/components/responses/400-bad-request'
1007
- '401':
1008
- $ref: '#/components/responses/401-unauthorized'
1009
- '404':
1010
- $ref: '#/components/responses/404-not-found'
1011
- '422':
1012
- $ref: '#/components/responses/422-unprocessable-entity'
1013
937
  /v1/imports/{_id}/dependencies:
1014
938
  get:
1015
939
  x-internal: false
@@ -12363,7 +12287,11 @@ components:
12363
12287
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
12364
12288
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
12365
12289
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
12366
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
12290
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
12291
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
12292
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
12293
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
12294
+ name changes the output; it does not complete the row
12367
12295
 
12368
12296
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
12369
12297
  hierarchical structure with nested mappings:
@@ -12378,8 +12306,9 @@ components:
12378
12306
  }
12379
12307
  ```
12380
12308
 
12381
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
12382
- within a parent array.
12309
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
12310
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
12311
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
12383
12312
  examples:
12384
12313
  - name
12385
12314
  - address
@@ -13360,6 +13289,12 @@ components:
13360
13289
  object-array row left with no source, no destination and no remaining child `mappings` or
13361
13290
  `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
13362
13291
  wrapper that still has children, are kept.
13292
+
13293
+ The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
13294
+ record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
13295
+ the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
13296
+ source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
13297
+ bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
13363
13298
  x-celigo-ai-guidance:
13364
13299
  - |-
13365
13300
  Rows that exist in the saved document — including `Draft` and `Inactive` rows and
@@ -13368,6 +13303,14 @@ components:
13368
13303
  them. Only a row with neither source nor destination — and, for an object or
13369
13304
  object-array row, no remaining children — can be left out; the save would drop it
13370
13305
  anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
13306
+ - |-
13307
+ A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
13308
+ missing destination: keep it unnamed when editing (naming it turns the output into an
13309
+ object, and a template that iterates `rows` then renders nothing), and author that
13310
+ shape only when the request body must be an array or a template iterates `rows`.
13311
+ The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
13312
+ any other row with a source and no `generate` fails with "One or more destination
13313
+ field values not entered".
13371
13314
  items:
13372
13315
  type: object
13373
13316
  properties:
@@ -13383,7 +13326,11 @@ components:
13383
13326
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
13384
13327
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
13385
13328
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
13386
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
13329
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
13330
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
13331
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
13332
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
13333
+ name changes the output; it does not complete the row
13387
13334
 
13388
13335
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
13389
13336
  hierarchical structure with nested mappings:
@@ -13398,8 +13345,9 @@ components:
13398
13345
  }
13399
13346
  ```
13400
13347
 
13401
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
13402
- within a parent array.
13348
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
13349
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
13350
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
13403
13351
  examples:
13404
13352
  - name
13405
13353
  - address
@@ -16364,6 +16312,23 @@ components:
16364
16312
  per-mode contract. Handlebars expressions in ``extract`` always
16365
16313
  reference ``{{record.field}}`` regardless — only JSONPath
16366
16314
  behavior flips with ``inputContext``.
16315
+ - |-
16316
+ ## JSON structure — record { } or rows [ ]
16317
+
16318
+ The shape of this array is the mapper's JSON structure. Named
16319
+ top-level items produce an object record; ``http.body`` and the
16320
+ other templates bind it as ``record``. Exactly one top-level item
16321
+ with ``dataType: objectarray`` and no ``generate`` is the
16322
+ ``rows [ ]`` structure: the mapped record is an array — one
16323
+ element per element the item's ``buildArrayHelper`` iterates —
16324
+ and templates bind it as ``rows`` (``{{#each rows}}``), with
16325
+ ``record.*`` undefined. The mapping editor shows that row's
16326
+ destination disabled; its save check accepts the unnamed root
16327
+ only in the ``rows [ ]`` structure and fails any other row that
16328
+ has a source and no ``generate`` with "One or more destination
16329
+ field values not entered". Keep the root unnamed when editing a
16330
+ ``rows [ ]`` mapping — naming it turns the output into an object
16331
+ and a ``{{#each rows}}`` body renders nothing.
16367
16332
  - |-
16368
16333
  ## IMPORT-SPECIFIC BEHAVIOR
16369
16334
 
@@ -17081,13 +17046,11 @@ components:
17081
17046
  ImportPreviewResponse:
17082
17047
  type: object
17083
17048
  description: |-
17084
- Envelope returned by `POST /v1/imports/preview` (and the scoped
17085
- `/v1/integrations/{_integrationId}/flows/{_flowId}/imports/preview`
17086
- variant). Carries per-stage diagnostics alongside the sampled records
17087
- produced by running the supplied source data through the import's
17088
- mapping/transform/target pipeline. The target stage executes the
17089
- composed destination request — see the operation descriptions for the
17090
- write-safety warning.
17049
+ Envelope returned by `POST /v1/imports/preview`. Carries per-stage
17050
+ diagnostics alongside the sampled records produced by running the
17051
+ supplied source data through the import's mapping/transform/target
17052
+ pipeline. The target stage executes the composed destination request —
17053
+ see the operation description for the write-safety warning.
17091
17054
  properties:
17092
17055
  data:
17093
17056
  type: array
@@ -17283,67 +17246,6 @@ components:
17283
17246
  celigo_classname:
17284
17247
  type: string
17285
17248
  description: Internal engine class name for the result (e.g. `Celigo.integrator.mapping.model.MapToNetSuiteResult`).
17286
- PreviewRequest:
17287
- type: object
17288
- description: |
17289
- Request body for running sample data through an import's pipeline
17290
- (mappings, transformations, hooks). The preview can execute the
17291
- composed destination request — see the operation descriptions for the
17292
- write-safety warning.
17293
- properties:
17294
- _importId:
17295
- type: string
17296
- format: objectId
17297
- x-celigo-refModel: imports
17298
- description: The import to preview. Required when previewing within a flow.
17299
- examples:
17300
- - 5f8d43a1b9e5a80011a35f2c
17301
- sampleData:
17302
- description: |
17303
- Sample source record(s) to run through the import's mappings and transformations.
17304
- May be a single object or an array of objects depending on the adaptor.
17305
- oneOf:
17306
- - title: Single record
17307
- type: object
17308
- additionalProperties: true
17309
- - title: Array of records
17310
- type: array
17311
- items:
17312
- type: object
17313
- additionalProperties: true
17314
- options:
17315
- type: object
17316
- description: Optional overrides applied only for this preview.
17317
- additionalProperties: true
17318
- additionalProperties: true
17319
- PreviewResponse:
17320
- type: object
17321
- description: |
17322
- Result of running a preview against the configured import. Shows the
17323
- mapped/transformed records as composed for the destination.
17324
- properties:
17325
- data:
17326
- type: array
17327
- description: Mapped and transformed records produced by the import.
17328
- items:
17329
- type: object
17330
- additionalProperties: true
17331
- errors:
17332
- type: array
17333
- description: Any validation or transformation errors encountered while building the preview.
17334
- items:
17335
- type: object
17336
- properties:
17337
- code:
17338
- type: string
17339
- description: Machine-readable code identifying the type of preview error.
17340
- message:
17341
- type: string
17342
- description: Human-readable explanation of what went wrong while building the preview.
17343
- path:
17344
- type: string
17345
- description: Path to the field or configuration element the error relates to.
17346
- additionalProperties: true
17347
17249
  DependencyEntry:
17348
17250
  type: object
17349
17251
  description: A single resource that depends on the queried resource.
@@ -365,8 +365,8 @@ paths:
365
365
  x-internal: false
366
366
  summary: Clone an integration
367
367
  description: |
368
- Creates a copy of an existing integration.
369
- Supports optionally remapping referenced connections (via connectionMap).
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.
370
370
  operationId: cloneIntegration
371
371
  tags:
372
372
  - Integrations
@@ -382,7 +382,7 @@ paths:
382
382
  examples:
383
383
  - 69680d7111d1437fbcbce534
384
384
  requestBody:
385
- required: false
385
+ required: true
386
386
  content:
387
387
  application/json:
388
388
  schema:
@@ -397,8 +397,8 @@ paths:
397
397
  626168f90b6ef816b50c82d7: 64a1234567890abcdef12345
398
398
  6553ebdeda62bb22e7fa81ff: 64a1234567890abcdef12346
399
399
  responses:
400
- '200':
401
- description: Integration cloned successfully
400
+ '201':
401
+ description: Integration cloned successfully. Returns a manifest of the resources the clone created.
402
402
  content:
403
403
  application/json:
404
404
  schema:
@@ -4063,7 +4063,10 @@ components:
4063
4063
  description: |-
4064
4064
  UI grouping configuration that groups an integration's flows into named
4065
4065
  sections. Works on ANY integration — this is NOT an Integration-App-only
4066
- feature; a plain integration can define flow groupings too.
4066
+ feature; a plain integration can define flow groupings too. Create groupings
4067
+ here, then assign flows to them via `PUT /v1/flows/updateFlowGrouping`. A
4068
+ grouping that still has member flows survives being removed from this array —
4069
+ ungroup its flows first.
4067
4070
 
4068
4071
  Omit unless you are explicitly configuring flow grouping behavior.
4069
4072
  x-celigo-ai-guidance:
@@ -4071,6 +4074,17 @@ components:
4071
4074
  Set this ONLY when the user explicitly asks to group flows into named sections (e.g.
4072
4075
  "create the integration with flow groups Order Intake and Fulfillment").
4073
4076
  Otherwise omit it — do not synthesize groupings the user did not ask for.
4077
+ - |-
4078
+ `Unassigned` is a reserved name (422 `invalid_flowgrouping_name`) and names and `_id`s
4079
+ must be unique within the integration (422 `duplicate_field`) — on POST, PUT and PATCH
4080
+ alike.
4081
+ - |-
4082
+ Removing a grouping that still has member flows returns success but leaves the
4083
+ grouping in place; move those flows with `PUT /v1/flows/updateFlowGrouping` first.
4084
+ - |-
4085
+ `POST` and `PUT` answer with the saved integration, so a new grouping's `_id` is
4086
+ in the response; `PATCH` answers `204` with no body, so after a patch the `_id`
4087
+ comes from a follow-up `GET`.
4074
4088
  items:
4075
4089
  type: object
4076
4090
  additionalProperties: true
@@ -4478,11 +4492,11 @@ components:
4478
4492
  type: object
4479
4493
  description: Request body for cloning an integration.
4480
4494
  required:
4481
- - connectionMap
4495
+ - name
4482
4496
  properties:
4483
4497
  name:
4484
4498
  type: string
4485
- description: Name for the cloned integration. If omitted, the server generates "Clone - <original name>".
4499
+ description: Name for the cloned integration.
4486
4500
  examples:
4487
4501
  - Clone - Integration 1
4488
4502
  description:
@@ -4506,6 +4520,9 @@ components:
4506
4520
  Mapping of original connection _ids to replacement connection _ids.
4507
4521
  Keys are source connection _ids on the original integration; values
4508
4522
  are target connection _ids in the destination environment.
4523
+ 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.
4509
4526
  additionalProperties:
4510
4527
  type: string
4511
4528
  example: