@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/ai-agent.yml CHANGED
@@ -2118,7 +2118,11 @@ components:
2118
2118
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
2119
2119
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
2120
2120
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
2121
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
2121
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
2122
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
2123
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
2124
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
2125
+ name changes the output; it does not complete the row
2122
2126
 
2123
2127
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
2124
2128
  hierarchical structure with nested mappings:
@@ -2133,8 +2137,9 @@ components:
2133
2137
  }
2134
2138
  ```
2135
2139
 
2136
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
2137
- within a parent array.
2140
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
2141
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
2142
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
2138
2143
  examples:
2139
2144
  - name
2140
2145
  - address
@@ -3115,6 +3120,12 @@ components:
3115
3120
  object-array row left with no source, no destination and no remaining child `mappings` or
3116
3121
  `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
3117
3122
  wrapper that still has children, are kept.
3123
+
3124
+ The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
3125
+ record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
3126
+ the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
3127
+ source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
3128
+ bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
3118
3129
  x-celigo-ai-guidance:
3119
3130
  - |-
3120
3131
  Rows that exist in the saved document — including `Draft` and `Inactive` rows and
@@ -3123,6 +3134,14 @@ components:
3123
3134
  them. Only a row with neither source nor destination — and, for an object or
3124
3135
  object-array row, no remaining children — can be left out; the save would drop it
3125
3136
  anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
3137
+ - |-
3138
+ A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
3139
+ missing destination: keep it unnamed when editing (naming it turns the output into an
3140
+ object, and a template that iterates `rows` then renders nothing), and author that
3141
+ shape only when the request body must be an array or a template iterates `rows`.
3142
+ The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
3143
+ any other row with a source and no `generate` fails with "One or more destination
3144
+ field values not entered".
3126
3145
  items:
3127
3146
  type: object
3128
3147
  properties:
@@ -3138,7 +3157,11 @@ components:
3138
3157
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
3139
3158
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
3140
3159
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
3141
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
3160
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
3161
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
3162
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
3163
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
3164
+ name changes the output; it does not complete the row
3142
3165
 
3143
3166
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
3144
3167
  hierarchical structure with nested mappings:
@@ -3153,8 +3176,9 @@ components:
3153
3176
  }
3154
3177
  ```
3155
3178
 
3156
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
3157
- within a parent array.
3179
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
3180
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
3181
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
3158
3182
  examples:
3159
3183
  - name
3160
3184
  - address
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. Cursor faults fail the invocation with `400`:
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
- Absent from responses until set.
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). When
3564
- false, a `Celigo-Next-Cursor` header is rejected with `400
3565
- cursor_not_supported_for_api`.
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:
@@ -505,7 +505,11 @@ components:
505
505
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
506
506
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
507
507
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
508
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
508
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
509
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
510
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
511
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
512
+ name changes the output; it does not complete the row
509
513
 
510
514
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
511
515
  hierarchical structure with nested mappings:
@@ -520,8 +524,9 @@ components:
520
524
  }
521
525
  ```
522
526
 
523
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
524
- within a parent array.
527
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
528
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
529
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
525
530
  examples:
526
531
  - name
527
532
  - address
@@ -1502,6 +1507,12 @@ components:
1502
1507
  object-array row left with no source, no destination and no remaining child `mappings` or
1503
1508
  `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
1504
1509
  wrapper that still has children, are kept.
1510
+
1511
+ The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
1512
+ record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
1513
+ the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
1514
+ source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
1515
+ bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
1505
1516
  x-celigo-ai-guidance:
1506
1517
  - |-
1507
1518
  Rows that exist in the saved document — including `Draft` and `Inactive` rows and
@@ -1510,6 +1521,14 @@ components:
1510
1521
  them. Only a row with neither source nor destination — and, for an object or
1511
1522
  object-array row, no remaining children — can be left out; the save would drop it
1512
1523
  anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
1524
+ - |-
1525
+ A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
1526
+ missing destination: keep it unnamed when editing (naming it turns the output into an
1527
+ object, and a template that iterates `rows` then renders nothing), and author that
1528
+ shape only when the request body must be an array or a template iterates `rows`.
1529
+ The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
1530
+ any other row with a source and no `generate` fails with "One or more destination
1531
+ field values not entered".
1513
1532
  items:
1514
1533
  type: object
1515
1534
  properties:
@@ -1525,7 +1544,11 @@ components:
1525
1544
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
1526
1545
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
1527
1546
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
1528
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
1547
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
1548
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
1549
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
1550
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
1551
+ name changes the output; it does not complete the row
1529
1552
 
1530
1553
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
1531
1554
  hierarchical structure with nested mappings:
@@ -1540,8 +1563,9 @@ components:
1540
1563
  }
1541
1564
  ```
1542
1565
 
1543
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
1544
- within a parent array.
1566
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
1567
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
1568
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
1545
1569
  examples:
1546
1570
  - name
1547
1571
  - address
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: 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.
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
  - |-
@@ -12308,7 +12311,11 @@ components:
12308
12311
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
12309
12312
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
12310
12313
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
12311
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
12314
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
12315
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
12316
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
12317
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
12318
+ name changes the output; it does not complete the row
12312
12319
 
12313
12320
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
12314
12321
  hierarchical structure with nested mappings:
@@ -12323,8 +12330,9 @@ components:
12323
12330
  }
12324
12331
  ```
12325
12332
 
12326
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
12327
- within a parent array.
12333
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
12334
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
12335
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
12328
12336
  examples:
12329
12337
  - name
12330
12338
  - address
@@ -13305,6 +13313,12 @@ components:
13305
13313
  object-array row left with no source, no destination and no remaining child `mappings` or
13306
13314
  `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
13307
13315
  wrapper that still has children, are kept.
13316
+
13317
+ The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
13318
+ record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
13319
+ the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
13320
+ source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
13321
+ bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
13308
13322
  x-celigo-ai-guidance:
13309
13323
  - |-
13310
13324
  Rows that exist in the saved document — including `Draft` and `Inactive` rows and
@@ -13313,6 +13327,14 @@ components:
13313
13327
  them. Only a row with neither source nor destination — and, for an object or
13314
13328
  object-array row, no remaining children — can be left out; the save would drop it
13315
13329
  anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
13330
+ - |-
13331
+ A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
13332
+ missing destination: keep it unnamed when editing (naming it turns the output into an
13333
+ object, and a template that iterates `rows` then renders nothing), and author that
13334
+ shape only when the request body must be an array or a template iterates `rows`.
13335
+ The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
13336
+ any other row with a source and no `generate` fails with "One or more destination
13337
+ field values not entered".
13316
13338
  items:
13317
13339
  type: object
13318
13340
  properties:
@@ -13328,7 +13350,11 @@ components:
13328
13350
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
13329
13351
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
13330
13352
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
13331
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
13353
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
13354
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
13355
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
13356
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
13357
+ name changes the output; it does not complete the row
13332
13358
 
13333
13359
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
13334
13360
  hierarchical structure with nested mappings:
@@ -13343,8 +13369,9 @@ components:
13343
13369
  }
13344
13370
  ```
13345
13371
 
13346
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
13347
- within a parent array.
13372
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
13373
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
13374
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
13348
13375
  examples:
13349
13376
  - name
13350
13377
  - address
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
- The flows referenced in `_flowIds` must all belong to the same integration as the target
1010
- `_flowGroupingId`. Pass `_flowGroupingId: null` (or an empty string, depending on platform version)
1011
- to remove the flows from their current group back to the integration's default section.
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}` with a
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. The server does not validate the grouping id —
1039
- nonexistent `_flowGroupingId` values are also accepted with 204.
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
- $ref: '#/components/responses/400-bad-request'
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); invalid ids are
5517
- silently dropped by the server. At runtime the flow's steps read the referenced
5518
- group's `settings` under the fixed scope key `flowGrouping` (e.g.
5519
- `{{settings.flowGrouping.<fieldId>}}`).
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: The flows to move. All must belong to the same integration as the target flow group.
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
- Id of the flow group (within the integration's `flowGroupings[]`). Pass `null` (or an empty
6185
- string, depending on platform version) to remove the flows from their current group back to the
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: |-