@celigo/api-specs 0.2.38 → 0.2.40

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.
@@ -2,7 +2,7 @@ openapi: 3.2.0
2
2
  info:
3
3
  version: 1.0.0
4
4
  title: HTTP Connector Resources
5
- description: API for reading Celigo HTTP Connector Resources — logical API resource groupings within an HTTP Connector.
5
+ description: API for managing Celigo HTTP Connector Resources — logical API resource groupings within an HTTP Connector.
6
6
  servers:
7
7
  - url: https://api.integrator.io
8
8
  description: Production (US / default region)
@@ -17,36 +17,37 @@ security:
17
17
  tags:
18
18
  - name: HTTP Connector Resources
19
19
  description: |-
20
- API for reading HTTP Connector Resource objects in Celigo.
21
- HTTP Connector Resources represent logical API resource groupings (e.g. "Account",
22
- "Contact", "Order") within an HTTP Connector. Each resource is associated with one
23
- or more connector versions and contains HTTP Connector Endpoints that define the
24
- available operations.
20
+ HTTP Connector Resources are the logical API groupings (for example
21
+ "Account", "Contact", "Order") inside an HTTP Connector. Each resource
22
+ belongs to one connector, is available in one or more of its versions,
23
+ and owns the HTTP Connector Endpoints that define the operations users
24
+ can build exports and imports on.
25
25
 
26
- These endpoints are **read-only** — creating, updating, and deleting HTTP Connector
27
- Resources is only available through the Celigo UI (session authentication).
26
+ Manage your own resources through `/v1/httpconnectorresources`
27
+ (list, create) and `/v1/httpconnectorresources/{_id}` (get, update,
28
+ delete). The nested `/v1/httpconnectors/{_httpConnectorId}/...` routes
29
+ are read-only views scoped to one connector that also reach resources
30
+ published by other partners; a resource read through either route is
31
+ the same object.
28
32
 
29
33
  ## HTTP connector resource schema
30
34
 
31
35
  {% openapi-schemas spec="httpconnectorresource" schemas="HTTPConnectorResource" grouped="true" %}
32
36
  paths:
33
- /v1/httpconnectors/{_httpConnectorId}/httpconnectorresources:
37
+ /v1/httpconnectorresources:
34
38
  get:
35
39
  x-internal: false
36
- operationId: listHttpConnectorResources
40
+ operationId: listOwnHttpConnectorResources
37
41
  tags:
38
42
  - HTTP Connector Resources
39
- summary: List HTTP Connector Resources for a connector
43
+ summary: List your HTTP Connector Resources
40
44
  description: |-
41
- Returns all resources (logical API groupings) defined under the given
42
- HTTP Connector.
43
-
44
- The list response is abridged — it omits `published` and
45
- `_httpConnectorId` compared to the detail endpoint. Use
46
- `GET /v1/httpconnectors/{_httpConnectorId}/{_id}` for the full object.
47
-
48
- Each resource's `_id` doubles as the `_httpConnectorResourceId` path
49
- parameter used by the HTTP Connector Endpoints API.
45
+ Returns the full HTTP Connector Resources owned by the account, across all
46
+ of its connectors, sorted by name. This is the canonical CRUD listing; to
47
+ browse the resources of one connector — including resources published by
48
+ other partners — use the scoped
49
+ `GET /v1/httpconnectors/{_httpConnectorId}/httpconnectorresources`, which
50
+ returns an abridged shape.
50
51
  parameters:
51
52
  - name: limit
52
53
  in: query
@@ -57,6 +58,347 @@ paths:
57
58
  examples:
58
59
  - 100
59
60
  - $ref: '#/components/parameters/After'
61
+ responses:
62
+ '200':
63
+ description: Array of the account's HTTP Connector Resources.
64
+ headers:
65
+ Link:
66
+ description: |-
67
+ RFC-5988 pagination links. When more pages remain, includes a
68
+ `<...>; rel="next"` entry; absent on the final page.
69
+ schema:
70
+ type: string
71
+ content:
72
+ application/json:
73
+ schema:
74
+ type: array
75
+ items:
76
+ $ref: '#/components/schemas/HTTPConnectorResource'
77
+ examples:
78
+ two_resources:
79
+ value:
80
+ - _id: 6ab1f8b66c46f82ea7b1f20e
81
+ name: Account
82
+ createdAt: '2026-09-22T03:40:38.704Z'
83
+ lastModified: '2026-09-22T03:41:34.542Z'
84
+ published: true
85
+ _httpConnectorId: 6ab1f8b6d38090b49147cec4
86
+ _versionIds:
87
+ - 6ab1f8b6d38090b49147cec5
88
+ - _id: 6ab1f8c4c2e18361293b46b7
89
+ name: Contact
90
+ createdAt: '2026-09-22T03:40:52.719Z'
91
+ lastModified: '2026-09-22T03:40:52.740Z'
92
+ published: false
93
+ _httpConnectorId: 6ab1f8b6d38090b49147cec4
94
+ '204':
95
+ description: The account owns no HTTP Connector Resources.
96
+ '401':
97
+ $ref: '#/components/responses/401-unauthorized'
98
+ '403':
99
+ $ref: '#/components/responses/403-forbidden'
100
+ post:
101
+ x-internal: false
102
+ operationId: createHttpConnectorResource
103
+ tags:
104
+ - HTTP Connector Resources
105
+ summary: Create an HTTP Connector Resource
106
+ description: |-
107
+ Creates a resource grouping under one of your HTTP Connectors. Create the
108
+ connector first (`POST /v1/httpconnectors`) and pass its id as
109
+ `_httpConnectorId`; list the connector's `versions[]._id` values in
110
+ `_versionIds` to make the resource available in those versions. Endpoints
111
+ are then attached to the resource through
112
+ `POST /v1/httpconnectorendpoints`.
113
+ requestBody:
114
+ required: true
115
+ content:
116
+ application/json:
117
+ schema:
118
+ $ref: '#/components/schemas/Request'
119
+ examples:
120
+ minimal:
121
+ summary: Resource scoped to one connector version
122
+ value:
123
+ name: Account
124
+ _httpConnectorId: 6ab1f8b6d38090b49147cec4
125
+ _versionIds:
126
+ - 6ab1f8b6d38090b49147cec5
127
+ configured:
128
+ summary: Root resource with field catalog and export defaults
129
+ value:
130
+ name: Order
131
+ _httpConnectorId: 6ab1f8b6d38090b49147cec4
132
+ _versionIds:
133
+ - 6ab1f8b6d38090b49147cec5
134
+ isRoot: true
135
+ resourceFields:
136
+ - id: id
137
+ label: ID
138
+ dataType: string
139
+ - id: lines
140
+ label: Lines
141
+ dataType: objectarray
142
+ resourceFields:
143
+ - id: sku
144
+ dataType: string
145
+ supportedBy:
146
+ export:
147
+ preConfiguredFields:
148
+ - path: http.successMediaType
149
+ values:
150
+ - json
151
+ fieldsUserMustSet:
152
+ - path: name
153
+ fieldsToUnset:
154
+ - http.paging
155
+ import:
156
+ pathParameterToIdentifyExisting: id
157
+ responses:
158
+ '201':
159
+ description: Created resource.
160
+ content:
161
+ application/json:
162
+ schema:
163
+ $ref: '#/components/schemas/HTTPConnectorResource'
164
+ examples:
165
+ created:
166
+ value:
167
+ _id: 6ab1f8b66c46f82ea7b1f20e
168
+ name: Account
169
+ createdAt: '2026-09-22T03:40:38.704Z'
170
+ lastModified: '2026-09-22T03:40:38.736Z'
171
+ published: false
172
+ _httpConnectorId: 6ab1f8b6d38090b49147cec4
173
+ _versionIds:
174
+ - 6ab1f8b6d38090b49147cec5
175
+ '400':
176
+ $ref: '#/components/responses/400-bad-request'
177
+ '401':
178
+ $ref: '#/components/responses/401-unauthorized'
179
+ '403':
180
+ $ref: '#/components/responses/403-forbidden'
181
+ '422':
182
+ description: |-
183
+ A required field is missing, a referenced connector or version is not
184
+ yours or does not exist, or `isRoot` and `_parentResourceId` were sent
185
+ together.
186
+ content:
187
+ application/json:
188
+ schema:
189
+ $ref: '#/components/schemas/Error'
190
+ examples:
191
+ missing_name:
192
+ value:
193
+ errors:
194
+ - field: name
195
+ code: missing_required_field
196
+ message: Path `name` is required.
197
+ invalid_connector:
198
+ summary: _httpConnectorId missing or not owned by the account
199
+ value:
200
+ errors:
201
+ - field: _httpConnectorId
202
+ code: invalid_ref
203
+ message: 63987132784a39b73aae63cd is not a valid _httpConnectorId
204
+ invalid_version:
205
+ value:
206
+ errors:
207
+ - field: _versionId
208
+ code: invalid_ref
209
+ message: 6ab1f8b6d38090b491470000 is not a valid _versionId
210
+ root_with_parent:
211
+ value:
212
+ errors:
213
+ - field: _parentResourceId
214
+ code: invalid_field_value
215
+ message: 'Invalid value for field "_parentResourceId": isRoot cannot be true when _parentResourceId is set'
216
+ /v1/httpconnectorresources/{_id}:
217
+ get:
218
+ x-internal: false
219
+ operationId: getOwnHttpConnectorResourceById
220
+ tags:
221
+ - HTTP Connector Resources
222
+ summary: Get one of your HTTP Connector Resources
223
+ description: |-
224
+ Returns the full resource. The nested
225
+ `GET /v1/httpconnectors/{_httpConnectorId}/{_id}` returns the identical
226
+ object and additionally reaches resources published by other partners;
227
+ this route is limited to resources the account owns.
228
+ parameters:
229
+ - in: path
230
+ name: _id
231
+ required: true
232
+ schema:
233
+ type: string
234
+ format: objectId
235
+ x-celigo-refModel: httpconnectorresources
236
+ examples:
237
+ - 6ab1f8b66c46f82ea7b1f20e
238
+ description: HTTP Connector Resource ID.
239
+ responses:
240
+ '200':
241
+ description: The resource.
242
+ content:
243
+ application/json:
244
+ schema:
245
+ $ref: '#/components/schemas/HTTPConnectorResource'
246
+ examples:
247
+ detail:
248
+ value:
249
+ _id: 6ab1f8b66c46f82ea7b1f20e
250
+ name: Account
251
+ createdAt: '2026-09-22T03:40:38.704Z'
252
+ lastModified: '2026-09-22T03:41:34.542Z'
253
+ published: true
254
+ _httpConnectorId: 6ab1f8b6d38090b49147cec4
255
+ _versionIds:
256
+ - 6ab1f8b6d38090b49147cec5
257
+ '401':
258
+ $ref: '#/components/responses/401-unauthorized'
259
+ '403':
260
+ $ref: '#/components/responses/403-forbidden'
261
+ '404':
262
+ description: No resource with this id is owned by the account.
263
+ content:
264
+ application/json:
265
+ schema:
266
+ $ref: '#/components/schemas/Error'
267
+ examples:
268
+ not_found:
269
+ value:
270
+ errors:
271
+ - code: invalid_ref
272
+ message: HttpConnectorResource not found.
273
+ put:
274
+ x-internal: false
275
+ operationId: updateHttpConnectorResource
276
+ tags:
277
+ - HTTP Connector Resources
278
+ summary: Update an HTTP Connector Resource
279
+ description: |-
280
+ Replaces the resource with the request body. Send the complete document —
281
+ `_versionIds`, `metadata`, `resourceFields`, `supportedBy`, and the other
282
+ optional fields are cleared when left out, while `published` and `isRoot`
283
+ keep their stored values when omitted. `name` and `_httpConnectorId` are
284
+ required on every PUT. Publish a resource by sending `published: true`.
285
+ parameters:
286
+ - in: path
287
+ name: _id
288
+ required: true
289
+ schema:
290
+ type: string
291
+ format: objectId
292
+ x-celigo-refModel: httpconnectorresources
293
+ examples:
294
+ - 6ab1f8b66c46f82ea7b1f20e
295
+ description: HTTP Connector Resource ID.
296
+ requestBody:
297
+ required: true
298
+ content:
299
+ application/json:
300
+ schema:
301
+ $ref: '#/components/schemas/Request'
302
+ examples:
303
+ publish:
304
+ summary: Publish the resource
305
+ value:
306
+ name: Account
307
+ _httpConnectorId: 6ab1f8b6d38090b49147cec4
308
+ _versionIds:
309
+ - 6ab1f8b6d38090b49147cec5
310
+ published: true
311
+ responses:
312
+ '200':
313
+ description: Updated resource.
314
+ content:
315
+ application/json:
316
+ schema:
317
+ $ref: '#/components/schemas/HTTPConnectorResource'
318
+ examples:
319
+ published:
320
+ value:
321
+ _id: 6ab1f8b66c46f82ea7b1f20e
322
+ name: Account
323
+ createdAt: '2026-09-22T03:40:38.704Z'
324
+ lastModified: '2026-09-22T03:41:34.542Z'
325
+ published: true
326
+ _httpConnectorId: 6ab1f8b6d38090b49147cec4
327
+ _versionIds:
328
+ - 6ab1f8b6d38090b49147cec5
329
+ '400':
330
+ $ref: '#/components/responses/400-bad-request'
331
+ '401':
332
+ $ref: '#/components/responses/401-unauthorized'
333
+ '403':
334
+ $ref: '#/components/responses/403-forbidden'
335
+ '404':
336
+ $ref: '#/components/responses/404-not-found'
337
+ '422':
338
+ $ref: '#/components/responses/422-unprocessable-entity'
339
+ delete:
340
+ x-internal: false
341
+ operationId: deleteHttpConnectorResource
342
+ tags:
343
+ - HTTP Connector Resources
344
+ summary: Delete an HTTP Connector Resource
345
+ description: |-
346
+ Deletes the resource. Refused while any HTTP Connector Endpoint still
347
+ lists it in `_httpConnectorResourceIds` — delete or re-point those
348
+ endpoints first. A connector likewise cannot be deleted while it still has
349
+ resources. Not recoverable through the recycle bin.
350
+ parameters:
351
+ - in: path
352
+ name: _id
353
+ required: true
354
+ schema:
355
+ type: string
356
+ format: objectId
357
+ x-celigo-refModel: httpconnectorresources
358
+ examples:
359
+ - 6ab1f8b66c46f82ea7b1f20e
360
+ description: HTTP Connector Resource ID.
361
+ responses:
362
+ '204':
363
+ description: Resource deleted.
364
+ '401':
365
+ $ref: '#/components/responses/401-unauthorized'
366
+ '403':
367
+ $ref: '#/components/responses/403-forbidden'
368
+ '404':
369
+ $ref: '#/components/responses/404-not-found'
370
+ '422':
371
+ description: An endpoint still references the resource.
372
+ content:
373
+ application/json:
374
+ schema:
375
+ $ref: '#/components/schemas/Error'
376
+ examples:
377
+ referenced:
378
+ value:
379
+ errors:
380
+ - code: delete_not_allowed
381
+ message: 'this document is referenced by HttpConnectorEndpoint : 6ab1f999d38090b49147cf00'
382
+ /v1/httpconnectors/{_httpConnectorId}/httpconnectorresources:
383
+ get:
384
+ x-internal: false
385
+ operationId: listHttpConnectorResources
386
+ tags:
387
+ - HTTP Connector Resources
388
+ summary: List a connector's HTTP Connector Resources
389
+ description: |-
390
+ Returns the resources defined under the given HTTP Connector — your own
391
+ and, for connectors published by other partners, their published
392
+ resources — sorted by name. The whole list is returned in one response.
393
+
394
+ The shape is abridged: it omits `published`, `_httpConnectorId`, and the
395
+ configuration fields. Use `GET /v1/httpconnectors/{_httpConnectorId}/{_id}`
396
+ for the full object, or `GET /v1/httpconnectorresources` for the full
397
+ shape of everything your account owns.
398
+
399
+ Each resource's `_id` doubles as the `_httpConnectorResourceId` path
400
+ parameter used by the HTTP Connector Endpoints API.
401
+ parameters:
60
402
  - in: path
61
403
  name: _httpConnectorId
62
404
  required: true
@@ -66,17 +408,29 @@ paths:
66
408
  x-celigo-refModel: httpconnectors
67
409
  examples:
68
410
  - 63987132784a39b73aae63cd
69
- description: HTTP Connector ID
411
+ description: HTTP Connector ID.
412
+ - in: query
413
+ name: version
414
+ required: false
415
+ schema:
416
+ type: string
417
+ format: objectId
418
+ examples:
419
+ - 63987132784a39b73aae63ce
420
+ description: Return only resources available in this connector version (`versions[]._id`).
421
+ - in: query
422
+ name: publishedOnly
423
+ required: false
424
+ schema:
425
+ type: boolean
426
+ default: false
427
+ description: |-
428
+ When true, returns only published resources that belong to a published
429
+ version of the connector. The connector itself must be published,
430
+ otherwise the request fails with 404.
70
431
  responses:
71
432
  '200':
72
- description: Successfully retrieved list of HTTP Connector Resources
73
- headers:
74
- Link:
75
- description: |-
76
- RFC-5988 pagination links. When more pages remain, includes a `<...>; rel="next"` entry;
77
- absent on the final page.
78
- schema:
79
- type: string
433
+ description: Abridged resources of the connector.
80
434
  content:
81
435
  application/json:
82
436
  schema:
@@ -99,11 +453,21 @@ paths:
99
453
  _versionIds:
100
454
  - 63987132784a39b73aae63ce
101
455
  '204':
102
- description: No resources exist for this connector
456
+ description: The connector has no resources visible to the caller.
103
457
  '401':
104
458
  $ref: '#/components/responses/401-unauthorized'
105
459
  '404':
106
- $ref: '#/components/responses/404-not-found'
460
+ description: The connector does not exist, is not yours, and is not published.
461
+ content:
462
+ application/json:
463
+ schema:
464
+ $ref: '#/components/schemas/Error'
465
+ examples:
466
+ not_found:
467
+ value:
468
+ errors:
469
+ - code: invalid_ref
470
+ message: httpConnector not found or not published.
107
471
  /v1/httpconnectors/{_httpConnectorId}/{_id}:
108
472
  get:
109
473
  x-internal: false
@@ -112,15 +476,17 @@ paths:
112
476
  - HTTP Connector Resources
113
477
  summary: Get an HTTP connector resource
114
478
  description: |-
115
- Retrieves a specific HTTP Connector Resource by its unique identifier.
479
+ Retrieves a specific HTTP Connector Resource by its unique identifier —
480
+ the same object `GET /v1/httpconnectorresources/{_id}` returns, but this
481
+ route also reaches resources published by other partners.
116
482
 
117
483
  The path uses a shortcut form: `/v1/httpconnectors/{_httpConnectorId}/{_id}`
118
484
  where `{_id}` is the resource ID directly under the connector. The longer
119
485
  form `/v1/httpconnectors/{_httpConnectorId}/httpconnectorresources/{_id}`
120
486
  is not supported and fails with an `invalid_ref` error.
121
487
 
122
- The detail response includes `published` and `_httpConnectorId` fields
123
- that are omitted from the list endpoint.
488
+ The detail response includes `published`, `_httpConnectorId`, and the
489
+ configuration fields that are omitted from the list endpoint.
124
490
  parameters:
125
491
  - in: path
126
492
  name: _httpConnectorId
@@ -204,47 +570,715 @@ components:
204
570
  schema:
205
571
  type: string
206
572
  schemas:
207
- ListItem:
573
+ ResourceField:
208
574
  type: object
209
- description: |-
210
- Abridged HTTP Connector Resource as returned in list responses. Omits
211
- `published` and `_httpConnectorId` compared to the detail response.
575
+ description: One field of the resource's records, optionally with nested child fields.
576
+ required:
577
+ - id
212
578
  properties:
213
- _id:
579
+ id:
214
580
  type: string
215
- format: objectId
216
- description: Unique identifier
217
- readOnly: true
218
- x-celigo-refModel: httpconnectorresources
581
+ description: Field identifier as it appears in the record.
219
582
  examples:
220
- - 63987132784a39b73aae63e7
583
+ - id
584
+ label:
585
+ type: string
586
+ description: Display label for the field.
587
+ examples:
588
+ - ID
589
+ description:
590
+ type: string
591
+ description: Help text describing the field.
592
+ examples:
593
+ - Record identifier
594
+ dataType:
595
+ type: string
596
+ description: Data type label for the field, stored as given.
597
+ examples:
598
+ - string
599
+ metadata:
600
+ type: object
601
+ additionalProperties: true
602
+ description: Free-form metadata for the field.
603
+ resourceFields:
604
+ type: array
605
+ description: Child fields of an object or array field. Absent when the field is scalar.
606
+ items:
607
+ type: object
608
+ additionalProperties: true
609
+ description: Nested field with the same shape as its parent.
610
+ Filter:
611
+ type: object
612
+ description: |
613
+ Configuration for selectively processing records based on specified criteria. This object enables
614
+ precise control over which items are included or excluded from processing operations.
615
+
616
+ **Filter behavior**
617
+
618
+ When configured, the filter is applied before processing begins:
619
+ - Items that match the filter criteria are processed
620
+ - Items that don't match are completely skipped
621
+ - No partial processing is performed
622
+
623
+ **Implementation approaches**
624
+
625
+ There are two distinct filtering mechanisms available:
626
+
627
+ **Rule-Based Filtering (`type: "expression"`)**
628
+ - **Best For**: Common filtering patterns based on standard attributes
629
+ - **Capabilities**: Filter by names, values, dates, numerical ranges, text patterns
630
+ - **Advantages**: Declarative, no coding required, consistent performance
631
+ - **Configuration**: Define rules in the `expression` object
632
+ - **Use When**: You have clear, static criteria for selection
633
+
634
+ **Script-Based Filtering (`type: "script"`)**
635
+ - **Best For**: Complex logic, dynamic criteria, or business rules
636
+ - **Capabilities**: Full programmatic control, access to complete metadata
637
+ - **Advantages**: Maximum flexibility, can implement any filtering logic
638
+ - **Configuration**: Reference a script in the `script` object
639
+ - **Use When**: Simple rules aren't sufficient or logic needs to be dynamic
640
+ properties:
641
+ type:
642
+ type: string
643
+ description: |
644
+ Determines which filtering mechanism to use. This choice affects which properties
645
+ must be configured and how filtering logic is implemented.
646
+
647
+ **Available types**
648
+
649
+ **Rule-Based Filtering (`"expression"`)**
650
+ - **Required Config**: The `expression` object with rule definitions
651
+ - **Behavior**: Evaluates declarative rules against item attributes
652
+ - **Best For**: Common patterns like name matching, date ranges, value limits
653
+ - **Advantages**: Simpler to configure, no custom code required
654
+
655
+ **Script-Based Filtering (`"script"`)**
656
+ - **Required Config**: The `script` object with _scriptId and function
657
+ - **Behavior**: Executes custom JavaScript to determine which items to process
658
+ - **Best For**: Complex conditions, business logic, dynamic criteria
659
+ - **Advantages**: Maximum flexibility, can implement any logic
660
+
661
+ **Implementation guidance**
662
+
663
+ 1. For standard filtering needs (name, size, date), use `"expression"`
664
+ 2. For complex logic or conditions not covered by expressions, use `"script"`
665
+ 3. When selecting a type, you must configure the corresponding object:
666
+ - `type: "expression"` requires the `expression` object
667
+ - `type: "script"` requires the `script` object
668
+ enum:
669
+ - expression
670
+ - script
671
+ x-enumDescriptions:
672
+ expression: Rule-based filtering using declarative conditions.
673
+ script: Script-based filtering using custom JavaScript logic.
674
+ examples:
675
+ - expression
676
+ - script
677
+ expression:
678
+ type: object
679
+ description: |
680
+ Configuration for declarative rule-based filtering. This object enables filtering
681
+ items based on common attributes without requiring custom code.
682
+
683
+ **Usage context**
684
+
685
+ This object is REQUIRED when `filter.type` is set to "expression" and should not be
686
+ configured otherwise. It provides a standardized way to define filtering rules that
687
+ can match against item attributes like name, type, value, date, and other properties.
688
+
689
+ **Implementation guidance**
690
+
691
+ The expression system uses a rule-based approach where:
692
+ - Rules can be combined with AND/OR logic
693
+ - Each rule can check a specific attribute
694
+ - Multiple conditions can be applied (ranges, pattern matching, exact matches)
695
+
696
+ **Common filter patterns**
697
+
698
+ 1. **Pattern matching**: Using wildcards like `*` and `?`
699
+ 2. **Value range filtering**: Numbers between min and max values
700
+ 3. **Date range filtering**: Items created/modified within specific time ranges
701
+ 4. **Status checking**: Items with specific status values or properties
702
+
703
+ For AI agents: Rule-based filtering should be your first choice when the filtering criteria
704
+ can be expressed in terms of standard attributes. Only use script-based filtering when
705
+ more complex logic is required.
706
+ properties:
707
+ version:
708
+ type: string
709
+ description: |
710
+ Version identifier for the expression format. Currently only version "1" is supported.
711
+
712
+ This field ensures future compatibility if the expression format evolves. Always set to "1"
713
+ for current implementations.
714
+ enum:
715
+ - '1'
716
+ x-enumDescriptions:
717
+ '1': Current and only supported filter expression version.
718
+ examples:
719
+ - '1'
720
+ rules:
721
+ type: array
722
+ description: |
723
+ Expression array defining filter conditions using prefix notation. The first element is the operator,
724
+ followed by its operands which may themselves be nested expression arrays.
725
+
726
+ The rule expression follows this pattern:
727
+ - First element: Operator name (string)
728
+ - Remaining elements: Operands for that operator (values or nested expressions)
729
+
730
+ **Expression structure**
731
+
732
+ Filter expressions use a prefix notation where operators appear before their operands:
733
+ ```
734
+ [operator, operand1, operand2, ...]
735
+ ```
736
+
737
+ **Comparison Operators**
738
+ - `"equals"`: Exact match (equals)
739
+ - `"notequals"`: Not equal to value (not equals)
740
+ - `"greaterthan"`: Value is greater than specified value (is greater than)
741
+ - `"greaterthanequals"`: Value is greater than or equal to specified value (is greater than or equals)
742
+ - `"lessthan"`: Value is less than specified value (is less than)
743
+ - `"lessthanequals"`: Value is less than or equal to specified value (is less than or equals)
744
+ - `"startswith"`: String starts with specified prefix (starts with)
745
+ - `"endswith"`: String ends with specified suffix (ends with)
746
+ - `"contains"`: String contains specified substring (contains)
747
+ - `"doesnotcontain"`: String does not contain specified substring (does not contain)
748
+ - `"isempty"`: Field is empty or null (is empty)
749
+ - `"isnotempty"`: Field contains a value (is not empty)
750
+ - `"matches"`: Matches specified pattern (matches)
751
+
752
+ **Logical Operators**
753
+ - `"and"`: All conditions must be true
754
+ - `"or"`: At least one condition must be true
755
+ - `"not"`: Negates the condition
756
+
757
+ **Field Access and Type Conversion**
758
+ - `"extract"`: Access a field from the item by name
759
+ - `"settings"`: Access a custom setting from the flow, flow step, or integration configuration
760
+ - `"boolean"`: Convert value to Boolean type
761
+ - `"epochtime"`: Convert value to Epoch Time (Unix timestamp)
762
+ - `"number"`: Convert value to Number type
763
+ - `"string"`: Convert value to String type
764
+
765
+ **Field Access Details**
766
+
767
+ **Using `extract` to access record fields:**
768
+ - Retrieves values from the current record being processed
769
+ - Can access nested properties using dot notation (e.g., `"customer.email"`)
770
+ - Returns the raw field value which may need type conversion
771
+
772
+ **Using `settings` to access configuration values:**
773
+ - Retrieves values from the integration's configuration settings
774
+ - Supports different scopes with prefix notation:
775
+ - `flow.settingName`: Access flow-level settings
776
+ - `export.settingName`: Access export-level settings
777
+ - `import.settingName`: Access import-level settings
778
+ - `integration.settingName`: Access integration-level settings
779
+ - Useful for dynamic filtering based on configuration
780
+
781
+ **Field Transformations**
782
+ - `"lowercase"`: Convert string to lowercase
783
+ - `"uppercase"`: Convert string to uppercase
784
+ - `"ceiling"`: Round number up to the nearest integer
785
+ - `"floor"`: Round number down to the nearest integer
786
+ - `"abs"`: Get absolute value of a number
787
+
788
+ Type conversion operators are often necessary when comparing extracted field values against literals or when the field type doesn't match the comparison operator's expected type. For example:
789
+
790
+ ```json
791
+ [
792
+ "equals",
793
+ [
794
+ "number", // Convert to number before comparison
795
+ [
796
+ "extract",
797
+ "quantity"
798
+ ]
799
+ ],
800
+ 100
801
+ ]
802
+ ```
803
+
804
+ Example with datetime conversion:
805
+ ```json
806
+ [
807
+ "greaterthan",
808
+ [
809
+ "epochtime", // Convert to Unix timestamp before comparison
810
+ [
811
+ "extract",
812
+ "createdDate"
813
+ ]
814
+ ],
815
+ 1609459200000 // January 1, 2021 as Unix timestamp in milliseconds
816
+ ]
817
+ ```
818
+
819
+ Example with transformations:
820
+ ```json
821
+ [
822
+ "and",
823
+ [
824
+ "matches",
825
+ [
826
+ "lowercase", // Convert to lowercase before matching
827
+ [
828
+ "string",
829
+ [
830
+ "extract",
831
+ "categories"
832
+ ]
833
+ ]
834
+ ],
835
+ "netsuite"
836
+ ],
837
+ [
838
+ "notequals",
839
+ [
840
+ "string",
841
+ [
842
+ "extract",
843
+ "recurrence.pattern.type"
844
+ ]
845
+ ],
846
+ ""
847
+ ]
848
+ ]
849
+ ```
850
+
851
+ Example comparing a record field with a flow setting:
852
+ ```json
853
+ [
854
+ "equals",
855
+ [
856
+ "string",
857
+ [
858
+ "extract",
859
+ "trantype"
860
+ ]
861
+ ],
862
+ [
863
+ "string",
864
+ [
865
+ "settings",
866
+ "flow.trantype"
867
+ ]
868
+ ]
869
+ ]
870
+ ```
871
+
872
+ **Examples**
873
+
874
+ Example 1: Status field is not equal to "cancelled"
875
+ ```json
876
+ [
877
+ "notequals",
878
+ [
879
+ "extract",
880
+ "status"
881
+ ],
882
+ "cancelled"
883
+ ]
884
+ ```
885
+
886
+ Example 2: Filename starts with "HC"
887
+ ```json
888
+ [
889
+ "startswith",
890
+ [
891
+ "extract",
892
+ "filename"
893
+ ],
894
+ "HC"
895
+ ]
896
+ ```
897
+
898
+ Example 3: Amount is greater than 100
899
+ ```json
900
+ [
901
+ "greaterthan",
902
+ [
903
+ "number",
904
+ [
905
+ "extract",
906
+ "amount"
907
+ ]
908
+ ],
909
+ 100
910
+ ]
911
+ ```
912
+
913
+ Example 4: Order date is after January 1, 2023
914
+ ```json
915
+ [
916
+ "greaterthan",
917
+ [
918
+ "extract",
919
+ "orderDate"
920
+ ],
921
+ "2023-01-01T00:00:00Z"
922
+ ]
923
+ ```
924
+
925
+ Example 5: Category contains any of ["Urgent", "High Priority"]
926
+ ```json
927
+ [
928
+ "anyof",
929
+ [
930
+ "extract",
931
+ "category"
932
+ ],
933
+ ["Urgent", "High Priority"]
934
+ ]
935
+ ```
936
+ items:
937
+ oneOf:
938
+ - title: String
939
+ type: string
940
+ - title: Number
941
+ type: number
942
+ - title: Boolean
943
+ type: boolean
944
+ - title: Object
945
+ type: object
946
+ - title: Array
947
+ type: array
948
+ - title: 'Null'
949
+ type: 'null'
950
+ script:
951
+ type: object
952
+ description: |
953
+ Configuration for programmable script-based filtering. This object enables complex, custom
954
+ filtering logic beyond what expression-based filtering can provide.
955
+
956
+ **Usage context**
957
+
958
+ This object is REQUIRED when `filter.type` is set to "script" and should not be configured
959
+ otherwise. It provides a way to execute custom JavaScript code to determine which items
960
+ should be processed.
961
+
962
+ **Implementation approach**
963
+
964
+ Script-based filtering works by:
965
+ 1. Executing the specified function from the referenced script
966
+ 2. Passing item data to the function
967
+ 3. Using the function's return value (true/false) to determine inclusion
968
+
969
+ **Common use cases**
970
+
971
+ Script filtering is ideal for:
972
+ - Complex business logic that can't be expressed as simple rules
973
+ - Dynamic filtering criteria that change based on external factors
974
+ - Content-based filtering that requires deep inspection
975
+ - Advanced pattern matching beyond simple wildcards
976
+ - Multi-stage filtering with intermediate logic
977
+
978
+ For AI agents: Only use script-based filtering when expression-based filtering is insufficient.
979
+ Script filtering requires maintaining custom code, which adds complexity to the integration.
980
+ properties:
981
+ _scriptId:
982
+ type: string
983
+ x-celigo-refModel: scripts
984
+ description: |
985
+ Reference to the Script resource that contains the filtering logic. This must be a valid
986
+ ObjectId of a Script resource that exists in the system.
987
+
988
+ The referenced script must contain the function specified in the `function` field
989
+ and must be written to handle filtering specifically. The script receives
990
+ item data as its input and must return a boolean value indicating whether
991
+ to process the item (true) or skip it (false).
992
+
993
+ Format: 24-character hexadecimal string (MongoDB ObjectId)
994
+ examples:
995
+ - 60a2c4e6f321d800129a1a3c
996
+ - 5f8d43a1b9e5a80011a35f2c
997
+ function:
998
+ type: string
999
+ description: |
1000
+ Name of the function within the script to execute for filtering decisions. This function
1001
+ must exist in the script referenced by _scriptId.
1002
+
1003
+ **Function requirements**
1004
+
1005
+ The specified function must:
1006
+ - Accept item data as its first parameter
1007
+ - Return a boolean value (true to process the item, false to skip it)
1008
+ - Handle errors gracefully
1009
+ - Execute efficiently (as it may run for many items)
1010
+
1011
+ **Function signature**
1012
+
1013
+ ```javascript
1014
+ function filterItems(itemData) {
1015
+ // itemData contains properties of the item being evaluated
1016
+ // Custom logic here
1017
+ return true; // or false to skip the item
1018
+ }
1019
+ ```
1020
+
1021
+ For AI agents: Ensure the function name exactly matches a function defined in the
1022
+ referenced script, as mismatches will cause the filter to fail.
1023
+ examples:
1024
+ - filterItems
1025
+ - shouldProcess
1026
+ - evaluateMatch
1027
+ ResourceSupportedBySection:
1028
+ type: object
1029
+ description: |-
1030
+ Conditions, pre-configured field values, required user inputs, and
1031
+ fields to clear for one resource type (export or import) created from
1032
+ this resource.
1033
+ properties:
1034
+ conditions:
1035
+ type: array
1036
+ description: |-
1037
+ Expression-based filters referenced by `_conditionIds` in
1038
+ `preConfiguredFields` and `fieldsUserMustSet` to apply those entries
1039
+ conditionally.
1040
+ items:
1041
+ type: object
1042
+ properties:
1043
+ _id:
1044
+ type: string
1045
+ format: objectId
1046
+ readOnly: true
1047
+ description: Identifier of this condition, referenced by `_conditionIds` in field entries.
1048
+ examples:
1049
+ - 5f8d43a1b9e5a80011a35f2c
1050
+ condition:
1051
+ $ref: '#/components/schemas/Filter'
1052
+ preConfiguredFields:
1053
+ type: array
1054
+ description: Fields set automatically on the generated export or import. Not editable by the user.
1055
+ items:
1056
+ type: object
1057
+ properties:
1058
+ path:
1059
+ type: string
1060
+ description: Dot-notation path of the field on the generated export or import.
1061
+ examples:
1062
+ - http.successMediaType
1063
+ values:
1064
+ type: array
1065
+ description: Value(s) to assign. Typically a single-element array; entries may be any JSON type.
1066
+ examples:
1067
+ - - json
1068
+ _conditionIds:
1069
+ type: array
1070
+ description: Condition IDs that must be satisfied for this entry to apply. Always applies when absent.
1071
+ items:
1072
+ type: string
1073
+ format: objectId
1074
+ examples:
1075
+ - 5f8d43a1b9e5a80011a35f2c
1076
+ fieldsUserMustSet:
1077
+ type: array
1078
+ description: Fields the user must provide values for on the generated export or import.
1079
+ items:
1080
+ type: object
1081
+ properties:
1082
+ path:
1083
+ type: string
1084
+ description: Dot-notation path of the field on the generated export or import.
1085
+ examples:
1086
+ - name
1087
+ values:
1088
+ type: array
1089
+ description: Optional suggested or constrained values. Entries may be any JSON type.
1090
+ examples:
1091
+ - - delta
1092
+ - test
1093
+ _conditionIds:
1094
+ type: array
1095
+ description: Condition IDs that must be satisfied for this entry to apply.
1096
+ items:
1097
+ type: string
1098
+ format: objectId
1099
+ examples:
1100
+ - 5f8d43a1b9e5a80011a35f2c
1101
+ helpURL:
1102
+ type: string
1103
+ description: URL to documentation for this field.
1104
+ examples:
1105
+ - https://docs.celigo.com/hc/en-us
1106
+ labelOverride:
1107
+ type: string
1108
+ description: Custom label shown in the UI instead of the default.
1109
+ examples:
1110
+ - Record name
1111
+ fieldsToUnset:
1112
+ type: array
1113
+ description: Dot-notation paths to clear on the generated export or import.
1114
+ items:
1115
+ type: string
1116
+ examples:
1117
+ - http.paging
1118
+ ResourceSupportedBy:
1119
+ type: object
1120
+ description: |-
1121
+ Defaults the connector framework applies when a user builds an export or
1122
+ an import on one of this resource's endpoints. Each section
1123
+ pre-configures fields, lists the fields the user must still fill in, and
1124
+ clears fields that do not apply.
1125
+ properties:
1126
+ export:
1127
+ $ref: '#/components/schemas/ResourceSupportedBySection'
1128
+ import:
1129
+ allOf:
1130
+ - $ref: '#/components/schemas/ResourceSupportedBySection'
1131
+ - type: object
1132
+ properties:
1133
+ pathParameterToIdentifyExisting:
1134
+ type: string
1135
+ description: |-
1136
+ Path parameter whose value identifies the existing record on
1137
+ an update or upsert import. Needed only when the endpoint has
1138
+ more than one path parameter.
1139
+ examples:
1140
+ - id
1141
+ lookupToIdentifyExisting:
1142
+ type: object
1143
+ description: |-
1144
+ Lookup the import runs to find out whether a record already
1145
+ exists before deciding between create and update. Both
1146
+ fields go together — sending one without the other is
1147
+ rejected.
1148
+ properties:
1149
+ _httpConnectorEndpointId:
1150
+ type: string
1151
+ format: objectId
1152
+ x-celigo-refModel: httpconnectorendpoints
1153
+ description: |-
1154
+ HTTP Connector Endpoint that performs the lookup. Must be
1155
+ an existing endpoint.
1156
+ examples:
1157
+ - 63987132784a39b73aae63ea
1158
+ extract:
1159
+ type: string
1160
+ description: Path in the lookup response to read the existing record's identifier from.
1161
+ examples:
1162
+ - data.0.id
1163
+ HTTPConnectorResourceBase:
1164
+ type: object
1165
+ description: Writable fields shared by the request and response schemas.
1166
+ properties:
221
1167
  name:
222
1168
  type: string
223
- description: Resource name
1169
+ description: Human-readable name of the API resource this grouping represents (for example "Account", "Contact", "Order").
224
1170
  examples:
225
1171
  - Account
1172
+ published:
1173
+ type: boolean
1174
+ default: false
1175
+ description: |-
1176
+ When true, the resource is visible to users of the connector's
1177
+ published catalog. Only resources whose owner may publish HTTP
1178
+ connectors appear to other accounts.
1179
+ _httpConnectorId:
1180
+ type: string
1181
+ format: objectId
1182
+ x-celigo-refModel: httpconnectors
1183
+ description: |-
1184
+ HTTP Connector this resource belongs to. Must be a connector owned by
1185
+ the caller's account.
1186
+ examples:
1187
+ - 63987132784a39b73aae63cd
1188
+ _httpConnectorApiId:
1189
+ type: string
1190
+ format: objectId
1191
+ description: |-
1192
+ API group (an entry of the connector's `apis[]`) this resource belongs
1193
+ to. Set only for grouped connectors; flat connectors scope resources by
1194
+ `_versionIds` instead.
1195
+ examples:
1196
+ - 63987132784a39b73aae63d0
226
1197
  _versionIds:
227
1198
  type: array
228
- description: Connector version IDs this resource belongs to
1199
+ description: |-
1200
+ Connector (or API group) versions this resource is available in. Each
1201
+ id must be one of the connector's `versions[]._id` values.
229
1202
  items:
230
1203
  type: string
231
1204
  format: objectId
232
- examples:
233
- - 63987132784a39b73aae63ce
234
- createdAt:
235
- type: string
236
- format: date-time
237
- readOnly: true
238
- description: Timestamp when created
239
1205
  examples:
240
- - '2023-01-17T09:51:53.665Z'
241
- lastModified:
1206
+ - - 63987132784a39b73aae63ce
1207
+ _parentResourceId:
242
1208
  type: string
243
- format: date-time
244
- readOnly: true
245
- description: Timestamp when last modified
1209
+ format: objectId
1210
+ x-celigo-refModel: httpconnectorresources
1211
+ description: |-
1212
+ Parent resource when this resource is nested under another one (for
1213
+ example "Order line" under "Order"). Omit for top-level resources;
1214
+ cannot be combined with `isRoot: true`.
246
1215
  examples:
247
- - '2024-05-23T07:00:29.858Z'
1216
+ - 63987132784a39b73aae63e7
1217
+ isRoot:
1218
+ type: boolean
1219
+ default: false
1220
+ description: |-
1221
+ When true, marks the resource as the root of a resource hierarchy.
1222
+ Rejected together with `_parentResourceId`.
1223
+ metadata:
1224
+ type: object
1225
+ additionalProperties: true
1226
+ description: Free-form metadata stored with the resource, for example Data Intelligence attributes.
1227
+ examples:
1228
+ - note: Primary sales object
1229
+ resourceFields:
1230
+ type: array
1231
+ description: |-
1232
+ Field catalog of the records this resource returns, used by tooling to
1233
+ describe the API's payloads. Fields nest through their own
1234
+ `resourceFields`.
1235
+ items:
1236
+ $ref: '#/components/schemas/ResourceField'
1237
+ supportedBy:
1238
+ $ref: '#/components/schemas/ResourceSupportedBy'
1239
+ HTTPConnectorResource:
1240
+ type: object
1241
+ required:
1242
+ - _id
1243
+ - _httpConnectorId
1244
+ - name
1245
+ - published
1246
+ - createdAt
1247
+ - lastModified
1248
+ description: |-
1249
+ HTTP Connector Resource as returned by `GET /v1/httpconnectorresources`,
1250
+ `GET /v1/httpconnectorresources/{_id}`, and the nested
1251
+ `GET /v1/httpconnectors/{_httpConnectorId}/{_id}` — all three return the
1252
+ same object. Optional fields that were never set are absent.
1253
+ allOf:
1254
+ - $ref: '#/components/schemas/HTTPConnectorResourceBase'
1255
+ - type: object
1256
+ properties:
1257
+ _id:
1258
+ type: string
1259
+ format: objectId
1260
+ readOnly: true
1261
+ x-celigo-refModel: httpconnectorresources
1262
+ description: |-
1263
+ Unique identifier for the resource. Doubles as the
1264
+ `_httpConnectorResourceId` path parameter of the HTTP Connector
1265
+ Endpoints API.
1266
+ examples:
1267
+ - 63987132784a39b73aae63e7
1268
+ createdAt:
1269
+ type: string
1270
+ format: date-time
1271
+ readOnly: true
1272
+ description: Timestamp when the resource was created.
1273
+ examples:
1274
+ - '2023-01-17T09:51:53.665Z'
1275
+ lastModified:
1276
+ type: string
1277
+ format: date-time
1278
+ readOnly: true
1279
+ description: Timestamp when the resource was last updated. Changes on every PUT.
1280
+ examples:
1281
+ - '2024-05-23T07:00:31.350Z'
248
1282
  Error:
249
1283
  type: object
250
1284
  description: Standard error response envelope returned by integrator.io APIs.
@@ -285,65 +1319,68 @@ components:
285
1319
  - message
286
1320
  required:
287
1321
  - errors
288
- HTTPConnectorResource:
1322
+ Request:
289
1323
  type: object
1324
+ description: |-
1325
+ Fields for creating or updating an HTTP Connector Resource through
1326
+ `POST /v1/httpconnectorresources` and `PUT /v1/httpconnectorresources/{_id}`.
1327
+ PUT replaces the whole document — omitted optional fields are cleared,
1328
+ except `published` and `isRoot`, which keep their stored values.
290
1329
  required:
291
- - _id
1330
+ - name
292
1331
  - _httpConnectorId
1332
+ x-celigo-ai-guidance:
1333
+ - Omitting _httpConnectorId fails with 422 invalid_ref " is not a valid _httpConnectorId"; omitting name fails with 422 missing_required_field. _versionIds is optional but each id must be one of the connector's versions[]._id values or the create fails with 422 invalid_ref "<id> is not a valid _versionId".
1334
+ allOf:
1335
+ - $ref: '#/components/schemas/HTTPConnectorResourceBase'
1336
+ ListItem:
1337
+ type: object
1338
+ description: |-
1339
+ Abridged HTTP Connector Resource returned by the nested
1340
+ `GET /v1/httpconnectors/{_httpConnectorId}/httpconnectorresources`
1341
+ catalog listing. Omits `published`, `_httpConnectorId`, and the
1342
+ configuration fields; fetch the full object by id.
1343
+ required:
1344
+ - _id
293
1345
  - name
294
- - published
295
1346
  - createdAt
296
1347
  - lastModified
297
- description: HTTP Connector Resource object as returned by the API
298
1348
  properties:
299
1349
  _id:
300
1350
  type: string
301
1351
  format: objectId
302
- description: Unique identifier for the HTTP Connector Resource
303
1352
  readOnly: true
304
1353
  x-celigo-refModel: httpconnectorresources
1354
+ description: Unique identifier for the resource.
305
1355
  examples:
306
1356
  - 63987132784a39b73aae63e7
307
1357
  name:
308
1358
  type: string
309
- description: Human-readable name for this resource (e.g. "Account", "Contact", "Order")
1359
+ description: Human-readable name of the API resource.
310
1360
  examples:
311
1361
  - Account
312
- published:
313
- type: boolean
314
- description: When true, this resource is published and visible to users.
315
- _httpConnectorId:
316
- type: string
317
- format: objectId
318
- description: |-
319
- Parent HTTP Connector ID. Only present in the detail (by-ID) response,
320
- omitted from list responses.
321
- readOnly: true
322
- x-celigo-refModel: httpconnectors
323
- examples:
324
- - 63987132784a39b73aae63cd
325
1362
  _versionIds:
326
1363
  type: array
327
- description: Connector version IDs this resource belongs to
1364
+ description: Connector version IDs this resource is available in. Absent when the resource is not tied to a version.
328
1365
  items:
329
1366
  type: string
330
1367
  format: objectId
331
- examples:
332
- - 63987132784a39b73aae63ce
1368
+ examples:
1369
+ - - 63987132784a39b73aae63ce
333
1370
  createdAt:
334
1371
  type: string
335
1372
  format: date-time
336
- description: Timestamp when created
337
1373
  readOnly: true
1374
+ description: Timestamp when the resource was created.
338
1375
  examples:
339
1376
  - '2023-01-17T09:51:53.665Z'
340
1377
  lastModified:
341
1378
  type: string
342
1379
  format: date-time
343
- description: Timestamp when last modified
344
1380
  readOnly: true
1381
+ description: Timestamp when the resource was last updated.
345
1382
  examples:
346
- - '2024-05-23T07:00:31.350Z'
1383
+ - '2024-05-23T07:00:29.858Z'
347
1384
  responses:
348
1385
  401-unauthorized:
349
1386
  description: |-
@@ -379,6 +1416,32 @@ components:
379
1416
  summary: Bearer token invalid or revoked
380
1417
  value:
381
1418
  message: Bearer Authentication Failed
1419
+ 403-forbidden:
1420
+ description: |
1421
+ Forbidden. The authenticated caller does not have permission to perform this operation.
1422
+ content:
1423
+ application/json:
1424
+ schema:
1425
+ $ref: '#/components/schemas/Error'
1426
+ examples:
1427
+ default:
1428
+ value:
1429
+ errors:
1430
+ - code: forbidden
1431
+ message: You do not have permission to access this resource.
1432
+ 400-bad-request:
1433
+ description: |
1434
+ Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
1435
+ content:
1436
+ application/json:
1437
+ schema:
1438
+ $ref: '#/components/schemas/Error'
1439
+ examples:
1440
+ default:
1441
+ value:
1442
+ errors:
1443
+ - code: invalid_request
1444
+ message: The request body failed validation.
382
1445
  404-not-found:
383
1446
  description: |
384
1447
  Not found. The requested resource does not exist or is not visible to the caller.
@@ -392,5 +1455,18 @@ components:
392
1455
  errors:
393
1456
  - code: not_found
394
1457
  message: The requested resource was not found.
1458
+ 422-unprocessable-entity:
1459
+ description: |
1460
+ Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
1461
+ content:
1462
+ application/json:
1463
+ schema:
1464
+ $ref: '#/components/schemas/Error'
1465
+ examples:
1466
+ default:
1467
+ value:
1468
+ errors:
1469
+ - code: unprocessable_entity
1470
+ message: The request could not be processed due to a semantic error.
395
1471
  x-enable-proxy: true
396
1472
  x-internal: false