@celigo/api-specs 0.2.99 → 0.2.100
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/api.yml +40 -6
- package/dist/export.yml +4 -1
- package/dist/flow.yml +50 -17
- package/dist/integration.yml +25 -8
- package/dist/tool.yml +88 -11
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/api.yml
CHANGED
|
@@ -1685,6 +1685,10 @@ paths:
|
|
|
1685
1685
|
`runId` is the parent `flowJob._id`.
|
|
1686
1686
|
|
|
1687
1687
|
Test-run invocations do **not** surface in `GET /v1/apis/{_id}/logs`.
|
|
1688
|
+
|
|
1689
|
+
Test runs never paginate, whatever `pagination.enabled` says: the captured success
|
|
1690
|
+
response carries no `pagination` object, and a `Celigo-Next-Cursor` entry in
|
|
1691
|
+
`mockRequest.headers` is not validated — a malformed value does not fail the run.
|
|
1688
1692
|
parameters:
|
|
1689
1693
|
- name: _id
|
|
1690
1694
|
in: path
|
|
@@ -3527,7 +3531,8 @@ components:
|
|
|
3527
3531
|
Callers fetch the next page by resending the request unchanged with
|
|
3528
3532
|
the cursor in the `Celigo-Next-Cursor` request header — for every
|
|
3529
3533
|
HTTP method; a `next_cursor` field in the request body is ordinary
|
|
3530
|
-
payload, not a cursor.
|
|
3534
|
+
payload, not a cursor. Resending a cursor returns the same page again.
|
|
3535
|
+
Cursor faults fail the invocation with `400`:
|
|
3531
3536
|
`invalid_cursor_format`, `cursor_signature_invalid` (the cursor was
|
|
3532
3537
|
altered), `cursor_version_unsupported`, `cursor_api_mismatch` (the
|
|
3533
3538
|
cursor was issued by a different API), `cursor_filter_mismatch` (the
|
|
@@ -3536,7 +3541,19 @@ components:
|
|
|
3536
3541
|
pagination is off). Cursors expire and are then rejected with `410
|
|
3537
3542
|
cursor_expired`; a response hook that turns the mapped body into a
|
|
3538
3543
|
non-object fails with `422 api_pagination_response_not_object`.
|
|
3539
|
-
|
|
3544
|
+
|
|
3545
|
+
Saving the volume-driver export — even with no changes — invalidates
|
|
3546
|
+
every cursor issued so far: the next call with one returns `200` with
|
|
3547
|
+
an empty final page, `{"pagination": {"has_more": false}}`, as if the
|
|
3548
|
+
source were exhausted; restart from the first page without a cursor.
|
|
3549
|
+
Saving the API document itself leaves issued cursors valid.
|
|
3550
|
+
A success response whose `statusCode` is `204` returns no body, so the
|
|
3551
|
+
`pagination` object and cursor are lost with it — a paginated API
|
|
3552
|
+
needs a body-bearing success status.
|
|
3553
|
+
|
|
3554
|
+
Absent from responses until set. A PUT that omits `pagination` keeps
|
|
3555
|
+
the stored value; send `{"enabled": null}` to clear it (the field is
|
|
3556
|
+
then absent again).
|
|
3540
3557
|
x-celigo-ai-guidance:
|
|
3541
3558
|
- |-
|
|
3542
3559
|
When calling a paginated API, read `pagination.next_cursor` from the
|
|
@@ -3544,7 +3561,11 @@ components:
|
|
|
3544
3561
|
the identical path, query string, and body; putting it in the body
|
|
3545
3562
|
returns the first page again, and adding or changing a query
|
|
3546
3563
|
parameter fails with 400 `cursor_filter_mismatch`. Loop until
|
|
3547
|
-
`has_more` is false — the final page carries no `next_cursor`.
|
|
3564
|
+
`has_more` is false — the final page carries no `next_cursor`. Saving
|
|
3565
|
+
the volume-driver export mid-walk ends the walk early without an
|
|
3566
|
+
error: the next cursor call returns an empty
|
|
3567
|
+
`{"pagination": {"has_more": false}}` page, so restart from the first
|
|
3568
|
+
page after any save of that export.
|
|
3548
3569
|
- |-
|
|
3549
3570
|
Script-mode APIs never paginate: POST and PUT silently drop
|
|
3550
3571
|
`pagination` (it never reads back), and `PATCH /pagination/enabled`
|
|
@@ -3560,9 +3581,15 @@ components:
|
|
|
3560
3581
|
with source paging configured; otherwise the write fails with
|
|
3561
3582
|
`422` `api_pagination_no_volume_driver` (no lookup at all),
|
|
3562
3583
|
`api_pagination_adapter_not_supported` (any other adaptor), or
|
|
3563
|
-
`api_pagination_source_not_paged` (lookup without paging).
|
|
3564
|
-
|
|
3565
|
-
|
|
3584
|
+
`api_pagination_source_not_paged` (lookup without paging). The
|
|
3585
|
+
same check repeats on every later save of the API and at every
|
|
3586
|
+
invocation while the stored value is true: if the volume driver
|
|
3587
|
+
loses its paging afterwards (the export save itself succeeds),
|
|
3588
|
+
every call fails with `400 api_pagination_source_not_paged` and
|
|
3589
|
+
every PUT or PATCH of the API — including one that omits
|
|
3590
|
+
`pagination` — is refused with the `422` until paging is restored
|
|
3591
|
+
or this flag is set to false. When false, a `Celigo-Next-Cursor`
|
|
3592
|
+
header is rejected with `400 cursor_not_supported_for_api`.
|
|
3566
3593
|
examples:
|
|
3567
3594
|
- true
|
|
3568
3595
|
x-celigo-ai-guidance:
|
|
@@ -3573,6 +3600,13 @@ components:
|
|
|
3573
3600
|
webhook, or other non-HTTP/Salesforce/NetSuite lookup with 422
|
|
3574
3601
|
`api_pagination_adapter_not_supported`, and an API with no lookup
|
|
3575
3602
|
with 422 `api_pagination_no_volume_driver`.
|
|
3603
|
+
- |-
|
|
3604
|
+
Before removing paging from the volume-driver export of an API
|
|
3605
|
+
whose `enabled` is true, PATCH `/pagination/enabled` to false
|
|
3606
|
+
first (that PATCH succeeds even while the lookup is unpaged).
|
|
3607
|
+
Otherwise the export save returns 200 but every call to the API
|
|
3608
|
+
fails 400 `api_pagination_source_not_paged` and every save of
|
|
3609
|
+
the API fails 422 with the same code.
|
|
3576
3610
|
script:
|
|
3577
3611
|
$ref: '#/components/schemas/Script'
|
|
3578
3612
|
builder:
|
package/dist/export.yml
CHANGED
|
@@ -6558,7 +6558,10 @@ components:
|
|
|
6558
6558
|
- '{"records": [{"id": "{{record.id}}", "exported": true}]}'
|
|
6559
6559
|
paging:
|
|
6560
6560
|
type: object
|
|
6561
|
-
description:
|
|
6561
|
+
description: |-
|
|
6562
|
+
Controls how the export requests subsequent pages when the API returns multi-page responses. The `method` field determines which companion fields are required and how each next page is requested. For the page, skip, and token methods, reference the matching pagination variable (`{{export.http.paging.page}}`, `{{export.http.paging.skip}}`, or `{{export.http.paging.token}}`) in the relative URI or request body — misconfigured pagination is a common cause of incomplete data retrieval.
|
|
6563
|
+
|
|
6564
|
+
When this export is the first lookup of a builder-mode API with `pagination.enabled` set, it is that API's volume driver: saving the export (even unchanged) invalidates the API's issued cursors, so a caller mid-walk gets an empty final page, and removing `paging` is accepted on save but makes every call to the API fail with `400 api_pagination_source_not_paged` until paging is restored or the API's flag is turned off.
|
|
6562
6565
|
x-celigo-ai-guidance:
|
|
6563
6566
|
- Configuration object for navigating through multi-page API responses.
|
|
6564
6567
|
- |-
|
package/dist/flow.yml
CHANGED
|
@@ -1006,12 +1006,13 @@ paths:
|
|
|
1006
1006
|
collection-level endpoint used by the UI's "move to section" action — it updates multiple flows in a
|
|
1007
1007
|
single call rather than requiring a per-flow `PUT /v1/flows/{_id}` with a modified `_flowGroupingId`.
|
|
1008
1008
|
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1009
|
+
Every flow in `_flowIds` must belong to the same integration, and `_flowGroupingId` must be one
|
|
1010
|
+
of that integration's `flowGroupings` — a grouping that does not exist or belongs to another
|
|
1011
|
+
integration is rejected with 400 `flowgrouping_update_error`. Pass `_flowGroupingId: null` or
|
|
1012
|
+
omit it to move the flows back to the integration's default (Unassigned) section.
|
|
1012
1013
|
|
|
1013
|
-
Flow groupings are managed on the parent integration (`PUT /v1/integrations/{_id}`
|
|
1014
|
-
modified `flowGroupings[]` array) — create the group first, then call this to populate it.
|
|
1014
|
+
Flow groupings are managed on the parent integration (`PUT` or `PATCH /v1/integrations/{_id}`
|
|
1015
|
+
with a modified `flowGroupings[]` array) — create the group first, then call this to populate it.
|
|
1015
1016
|
requestBody:
|
|
1016
1017
|
required: true
|
|
1017
1018
|
content:
|
|
@@ -1035,10 +1036,37 @@ paths:
|
|
|
1035
1036
|
responses:
|
|
1036
1037
|
'204':
|
|
1037
1038
|
description: |-
|
|
1038
|
-
Flows reassigned. Empty response body.
|
|
1039
|
-
|
|
1039
|
+
Flows reassigned. Empty response body. Flow ids that match no flow in the account are
|
|
1040
|
+
silently skipped, so an unknown `_flowIds` entry (or an empty list) also answers 204.
|
|
1040
1041
|
'400':
|
|
1041
|
-
|
|
1042
|
+
description: |-
|
|
1043
|
+
The request was rejected: the flows span more than one integration (`invalid_request`),
|
|
1044
|
+
the grouping is not one of the flows' integration's `flowGroupings`
|
|
1045
|
+
(`flowgrouping_update_error`), or an id is not a well-formed ObjectId (`invalid_ref` —
|
|
1046
|
+
an empty-string `_flowGroupingId` fails this way; use `null` to ungroup).
|
|
1047
|
+
content:
|
|
1048
|
+
application/json:
|
|
1049
|
+
schema:
|
|
1050
|
+
$ref: '#/components/schemas/Error'
|
|
1051
|
+
examples:
|
|
1052
|
+
differentIntegrations:
|
|
1053
|
+
summary: Flows belong to different integrations
|
|
1054
|
+
value:
|
|
1055
|
+
errors:
|
|
1056
|
+
- code: invalid_request
|
|
1057
|
+
message: Unable to update flows for flowgrouping, since flows belongs to different integrations.
|
|
1058
|
+
groupingNotInIntegration:
|
|
1059
|
+
summary: Grouping does not exist or belongs to another integration
|
|
1060
|
+
value:
|
|
1061
|
+
errors:
|
|
1062
|
+
- code: flowgrouping_update_error
|
|
1063
|
+
message: 'Failed to update flow grouping for flow: Order sync. Error: Sorry, Failed to link flowGroupingId. FlowGrouping does not belong to Integration: 6ac1ef49fa3e52974f433c1b.'
|
|
1064
|
+
malformedGroupingId:
|
|
1065
|
+
summary: Grouping id is not an ObjectId (including an empty string)
|
|
1066
|
+
value:
|
|
1067
|
+
errors:
|
|
1068
|
+
- code: invalid_ref
|
|
1069
|
+
message: Please provide a valid _flowGroupingId.
|
|
1042
1070
|
'401':
|
|
1043
1071
|
$ref: '#/components/responses/401-unauthorized'
|
|
1044
1072
|
'404':
|
|
@@ -5513,10 +5541,12 @@ components:
|
|
|
5513
5541
|
format: objectId
|
|
5514
5542
|
description: |-
|
|
5515
5543
|
Flow grouping for organizing related flows in the UI. References an entry in the
|
|
5516
|
-
integration's `flowGroupings` array (not a standalone collection);
|
|
5517
|
-
|
|
5518
|
-
|
|
5519
|
-
`
|
|
5544
|
+
integration's `flowGroupings` array (not a standalone collection); an id that is not
|
|
5545
|
+
one of the flow's own integration's groupings — nonexistent, or a grouping of another
|
|
5546
|
+
integration — fails POST and PUT with 422 `flowgrouping_not_belong`. Omit it or pass
|
|
5547
|
+
`null` to leave the flow in the integration's default section. At runtime the flow's
|
|
5548
|
+
steps read the referenced group's `settings` under the fixed scope key `flowGrouping`
|
|
5549
|
+
(e.g. `{{settings.flowGrouping.<fieldId>}}`).
|
|
5520
5550
|
examples:
|
|
5521
5551
|
- 60a2c4e6f321d800129a1a3c
|
|
5522
5552
|
_keepDeltaBehindFlowId:
|
|
@@ -6170,7 +6200,9 @@ components:
|
|
|
6170
6200
|
properties:
|
|
6171
6201
|
_flowIds:
|
|
6172
6202
|
type: array
|
|
6173
|
-
description:
|
|
6203
|
+
description: |-
|
|
6204
|
+
The flows to move. All must belong to the same integration as the target flow group
|
|
6205
|
+
(400 `invalid_request` otherwise); ids that match no flow are silently skipped.
|
|
6174
6206
|
minItems: 1
|
|
6175
6207
|
items:
|
|
6176
6208
|
type: string
|
|
@@ -6180,13 +6212,14 @@ components:
|
|
|
6180
6212
|
type:
|
|
6181
6213
|
- string
|
|
6182
6214
|
- 'null'
|
|
6215
|
+
format: objectId
|
|
6183
6216
|
description: |-
|
|
6184
|
-
|
|
6185
|
-
|
|
6186
|
-
integration's default section
|
|
6217
|
+
Grouping within the integration's `flowGroupings[]` to move the flows into. Must belong to
|
|
6218
|
+
the flows' own integration (400 `flowgrouping_update_error` otherwise). Pass `null` or omit
|
|
6219
|
+
it to move the flows back to the integration's default section; an empty string is rejected
|
|
6220
|
+
with 400 `invalid_ref`.
|
|
6187
6221
|
required:
|
|
6188
6222
|
- _flowIds
|
|
6189
|
-
- _flowGroupingId
|
|
6190
6223
|
FlowStepError:
|
|
6191
6224
|
type: object
|
|
6192
6225
|
description: |-
|
package/dist/integration.yml
CHANGED
|
@@ -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
|
-
|
|
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:
|
|
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
|
-
'
|
|
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
|
-
-
|
|
4495
|
+
- name
|
|
4482
4496
|
properties:
|
|
4483
4497
|
name:
|
|
4484
4498
|
type: string
|
|
4485
|
-
description: Name for the cloned integration.
|
|
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:
|
package/dist/tool.yml
CHANGED
|
@@ -710,14 +710,26 @@ paths:
|
|
|
710
710
|
- Tools
|
|
711
711
|
summary: Clone a tool
|
|
712
712
|
description: |-
|
|
713
|
-
Creates a copy of a tool in the target integration
|
|
714
|
-
|
|
715
|
-
places it in the source
|
|
713
|
+
Creates a copy of a tool in the target integration, together with the export and
|
|
714
|
+
import steps it references, and returns a manifest of the resources the clone
|
|
715
|
+
created. The clone records its lineage in `_sourceId`, which places it in the source
|
|
716
|
+
tool's clone family.
|
|
716
717
|
|
|
717
718
|
The target integration is never inferred from the source tool — pass the source
|
|
718
|
-
tool's own integration id to clone in place.
|
|
719
|
+
tool's own integration id to clone in place. When any step of the tool references a
|
|
720
|
+
connection, `connectionMap` is required as well: every connection the tool uses must
|
|
721
|
+
appear as a key, mapped to itself to reuse it or to another connection of the account
|
|
722
|
+
to repoint the cloned steps. A tool with no connection-bearing steps clones without it.
|
|
719
723
|
|
|
720
|
-
Use `GET /v1/tools/{_id}/clone/preview` first to see what the clone would create
|
|
724
|
+
Use `GET /v1/tools/{_id}/clone/preview` first to see what the clone would create —
|
|
725
|
+
each `Connection` object in the preview is a key `connectionMap` must carry.
|
|
726
|
+
x-celigo-ai-guidance:
|
|
727
|
+
- |-
|
|
728
|
+
Build `connectionMap` from the clone preview: one key per `Connection` object it lists,
|
|
729
|
+
each mapped to its own id unless the user asked to repoint the clone. Omitting the map
|
|
730
|
+
(or sending `{}`) when a step references a connection fails with 400
|
|
731
|
+
`invalid_connectionMap`; a key the tool does not reference, or a value that is not a
|
|
732
|
+
connection in the account, fails with 422 `invalid_connectionId` and nothing is created.
|
|
721
733
|
parameters:
|
|
722
734
|
- name: _id
|
|
723
735
|
in: path
|
|
@@ -750,15 +762,37 @@ paths:
|
|
|
750
762
|
description: Name for the cloned tool. Defaults to `Clone - <source tool name>` when omitted.
|
|
751
763
|
examples:
|
|
752
764
|
- Customer enrichment tool (copy)
|
|
765
|
+
connectionMap:
|
|
766
|
+
type: object
|
|
767
|
+
description: |-
|
|
768
|
+
Connection ids the tool's steps reference, each mapped to the connection the
|
|
769
|
+
cloned steps use instead. Required when any step references a connection —
|
|
770
|
+
omitted or empty, the clone fails with 400 `invalid_connectionMap`. Map an id
|
|
771
|
+
to itself to keep the connection; every key must be a connection the tool
|
|
772
|
+
references and every value a connection in the account.
|
|
773
|
+
additionalProperties:
|
|
774
|
+
type: string
|
|
775
|
+
format: objectId
|
|
776
|
+
examples:
|
|
777
|
+
- 6ac1ef4a38b24d95ffac2545: 6ac1ef4a38b24d95ffac2545
|
|
753
778
|
examples:
|
|
754
779
|
default:
|
|
755
|
-
summary: Clone into the same integration
|
|
780
|
+
summary: Clone a tool with no connection-bearing steps into the same integration
|
|
756
781
|
value:
|
|
757
782
|
_integrationId: 6a429af50547257e3301246c
|
|
758
783
|
name: Customer enrichment tool (copy)
|
|
784
|
+
with_connection_map:
|
|
785
|
+
summary: Clone a tool whose lookup step uses a connection, reusing that connection
|
|
786
|
+
value:
|
|
787
|
+
_integrationId: 6a429af50547257e3301246c
|
|
788
|
+
name: Customer enrichment tool (copy)
|
|
789
|
+
connectionMap:
|
|
790
|
+
6ac1ef4a38b24d95ffac2545: 6ac1ef4a38b24d95ffac2545
|
|
759
791
|
responses:
|
|
760
792
|
'201':
|
|
761
|
-
description:
|
|
793
|
+
description: |-
|
|
794
|
+
The clone was created. Returns a manifest of every resource the clone created —
|
|
795
|
+
the new tool plus the export and import steps it copied.
|
|
762
796
|
content:
|
|
763
797
|
application/json:
|
|
764
798
|
schema:
|
|
@@ -769,7 +803,7 @@ paths:
|
|
|
769
803
|
properties:
|
|
770
804
|
model:
|
|
771
805
|
type: string
|
|
772
|
-
description: Model name of the created resource (e.g. `Tool`).
|
|
806
|
+
description: Model name of the created resource (e.g. `Tool`, `Export`, `Import`).
|
|
773
807
|
examples:
|
|
774
808
|
- Tool
|
|
775
809
|
_id:
|
|
@@ -780,12 +814,22 @@ paths:
|
|
|
780
814
|
- 6a869d2f3ae8ccee42a45c44
|
|
781
815
|
examples:
|
|
782
816
|
default:
|
|
783
|
-
summary: Clone created a tool
|
|
817
|
+
summary: Clone created a tool with no steps
|
|
784
818
|
value:
|
|
785
819
|
- model: Tool
|
|
786
820
|
_id: 6a869d2f3ae8ccee42a45c44
|
|
821
|
+
with_steps:
|
|
822
|
+
summary: Clone created a tool and the lookup export it references
|
|
823
|
+
value:
|
|
824
|
+
- model: Export
|
|
825
|
+
_id: 6ac1ef8a38b24d95ffac2d64
|
|
826
|
+
- model: Tool
|
|
827
|
+
_id: 6ac1ef8a38b24d95ffac2d78
|
|
787
828
|
'400':
|
|
788
|
-
description:
|
|
829
|
+
description: |-
|
|
830
|
+
The body omits `_integrationId` (`required_field_missing`), or the tool's steps
|
|
831
|
+
reference a connection and `connectionMap` is missing or empty
|
|
832
|
+
(`invalid_connectionMap`).
|
|
789
833
|
content:
|
|
790
834
|
application/json:
|
|
791
835
|
schema:
|
|
@@ -797,10 +841,40 @@ paths:
|
|
|
797
841
|
errors:
|
|
798
842
|
- code: required_field_missing
|
|
799
843
|
message: 'required field: _integrationId is missing'
|
|
844
|
+
missingConnectionMap:
|
|
845
|
+
summary: A step references a connection but no connectionMap was sent
|
|
846
|
+
value:
|
|
847
|
+
errors:
|
|
848
|
+
- code: invalid_connectionMap
|
|
849
|
+
message: The resource which you are trying to create requires a connectionMap.
|
|
800
850
|
'401':
|
|
801
851
|
$ref: '#/components/responses/401-unauthorized'
|
|
802
852
|
'404':
|
|
803
853
|
$ref: '#/components/responses/404-not-found'
|
|
854
|
+
'422':
|
|
855
|
+
description: |-
|
|
856
|
+
`connectionMap` does not match the tool: a value is not a connection in the account,
|
|
857
|
+
or a key is not a connection the tool's steps reference (the unmapped connection is
|
|
858
|
+
reported alongside). Nothing is created.
|
|
859
|
+
content:
|
|
860
|
+
application/json:
|
|
861
|
+
schema:
|
|
862
|
+
$ref: '#/components/schemas/Error'
|
|
863
|
+
examples:
|
|
864
|
+
unknownTargetConnection:
|
|
865
|
+
summary: A mapped value is not a connection in the account
|
|
866
|
+
value:
|
|
867
|
+
errors:
|
|
868
|
+
- code: invalid_connectionId
|
|
869
|
+
message: 'The _connectionId provided for the key ''6ac1ef4a38b24d95ffac2545'': ''000000000000000000000001'' is invalid.'
|
|
870
|
+
keyNotReferenced:
|
|
871
|
+
summary: A key is not one of the tool's connections, so the real one is unmapped
|
|
872
|
+
value:
|
|
873
|
+
errors:
|
|
874
|
+
- code: invalid_connectionId
|
|
875
|
+
message: The key '000000000000000000000001' in connectionMap doesn't match with any of the _id's of the connection documents.
|
|
876
|
+
- code: invalid_connectionId
|
|
877
|
+
message: 'The _connectionId provided for the key ''6ac1ef4a38b24d95ffac2545'': '''' is invalid.'
|
|
804
878
|
/v1/tools/{_id}/clone/preview:
|
|
805
879
|
get:
|
|
806
880
|
x-internal: false
|
|
@@ -30365,7 +30439,10 @@ components:
|
|
|
30365
30439
|
- '{"records": [{"id": "{{record.id}}", "exported": true}]}'
|
|
30366
30440
|
paging:
|
|
30367
30441
|
type: object
|
|
30368
|
-
description:
|
|
30442
|
+
description: |-
|
|
30443
|
+
Controls how the export requests subsequent pages when the API returns multi-page responses. The `method` field determines which companion fields are required and how each next page is requested. For the page, skip, and token methods, reference the matching pagination variable (`{{export.http.paging.page}}`, `{{export.http.paging.skip}}`, or `{{export.http.paging.token}}`) in the relative URI or request body — misconfigured pagination is a common cause of incomplete data retrieval.
|
|
30444
|
+
|
|
30445
|
+
When this export is the first lookup of a builder-mode API with `pagination.enabled` set, it is that API's volume driver: saving the export (even unchanged) invalidates the API's issued cursors, so a caller mid-walk gets an empty final page, and removing `paging` is accepted on save but makes every call to the API fail with `400 api_pagination_source_not_paged` until paging is restored or the API's flag is turned off.
|
|
30369
30446
|
x-celigo-ai-guidance:
|
|
30370
30447
|
- Configuration object for navigating through multi-page API responses.
|
|
30371
30448
|
- |-
|
package/package.json
CHANGED