@celigo/api-specs 0.2.1
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/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/account.yml +592 -0
- package/dist/agent.yml +908 -0
- package/dist/ai-agent.yml +5471 -0
- package/dist/api.yml +4140 -0
- package/dist/apim.yml +1286 -0
- package/dist/asynchelper.yml +3391 -0
- package/dist/audit.yml +2006 -0
- package/dist/connection.yml +8665 -0
- package/dist/connector.yml +1406 -0
- package/dist/ediprofile.yml +911 -0
- package/dist/editransaction.yml +1210 -0
- package/dist/enduser.yml +1724 -0
- package/dist/environment.yml +568 -0
- package/dist/eventreport.yml +692 -0
- package/dist/export.yml +17610 -0
- package/dist/filedefinition.yml +1396 -0
- package/dist/filestorage.yml +3102 -0
- package/dist/flow.yml +7928 -0
- package/dist/guardrail.yml +2763 -0
- package/dist/httpconnector.yml +2277 -0
- package/dist/httpconnectorendpoint.yml +722 -0
- package/dist/httpconnectorresource.yml +396 -0
- package/dist/iclient.yml +4452 -0
- package/dist/import.yml +15381 -0
- package/dist/integration.yml +4406 -0
- package/dist/job.yml +2014 -0
- package/dist/lookupcache.yml +1325 -0
- package/dist/marketplace.yml +685 -0
- package/dist/mcp-oauth-provider.yml +590 -0
- package/dist/mcp-server.yml +2656 -0
- package/dist/notification.yml +488 -0
- package/dist/processor.yml +1253 -0
- package/dist/profile.yml +455 -0
- package/dist/recyclebin.yml +768 -0
- package/dist/script.yml +1128 -0
- package/dist/stack.yml +1291 -0
- package/dist/state.yml +894 -0
- package/dist/subscription.yml +1405 -0
- package/dist/sync.yml +4857 -0
- package/dist/tag.yml +553 -0
- package/dist/template.yml +897 -0
- package/dist/tool.yml +33656 -0
- package/dist/tradingpartnerconnector.yml +1490 -0
- package/dist/user.yml +831 -0
- package/package.json +41 -0
- package/schemas.json +8420 -0
|
@@ -0,0 +1,1253 @@
|
|
|
1
|
+
openapi: 3.2.0
|
|
2
|
+
info:
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
title: Parsers & Generators
|
|
5
|
+
description: API for one-shot parse/generate calls that convert between raw formats (XML, CSV, EDI) and structured JSON.
|
|
6
|
+
servers:
|
|
7
|
+
- url: https://api.integrator.io
|
|
8
|
+
description: Production (US / default region)
|
|
9
|
+
- url: https://api.eu.integrator.io
|
|
10
|
+
description: Production (EU region)
|
|
11
|
+
- url: https://api.au.integrator.io
|
|
12
|
+
description: Production (AU region)
|
|
13
|
+
- url: https://api.ca.integrator.io
|
|
14
|
+
description: Production (CA region)
|
|
15
|
+
security:
|
|
16
|
+
- bearerAuth: []
|
|
17
|
+
tags:
|
|
18
|
+
- name: Parsers & Generators
|
|
19
|
+
description: |-
|
|
20
|
+
Stateless data transformation processors that convert between raw formats
|
|
21
|
+
(XML, CSV, EDI) and structured JSON. Parsers accept raw data and return
|
|
22
|
+
JSON records; generators accept JSON and produce formatted output.
|
|
23
|
+
|
|
24
|
+
These are one-shot transformation calls — they do not create or modify
|
|
25
|
+
any resources. Use them to test parsing rules, preview file definitions,
|
|
26
|
+
or transform data outside of a flow.
|
|
27
|
+
|
|
28
|
+
## Processor descriptor schema
|
|
29
|
+
|
|
30
|
+
{% openapi-schemas spec="processor" schemas="ProcessorDescriptor" grouped="true" %}
|
|
31
|
+
paths:
|
|
32
|
+
/v1/processors:
|
|
33
|
+
get:
|
|
34
|
+
x-internal: false
|
|
35
|
+
operationId: listProcessorTypes
|
|
36
|
+
tags:
|
|
37
|
+
- Parsers & Generators
|
|
38
|
+
summary: List available flow processor types
|
|
39
|
+
description: |-
|
|
40
|
+
Returns the catalog of processor types the flow engine supports — filter,
|
|
41
|
+
transform, handlebars, javascript, mapper, CSV/XML parser / generator,
|
|
42
|
+
branch filter, merge, etc. Each entry carries a label, description, and
|
|
43
|
+
the input/output media types the processor accepts. The response is
|
|
44
|
+
keyed by processor name (not an array).
|
|
45
|
+
responses:
|
|
46
|
+
'200':
|
|
47
|
+
description: Processor catalog, keyed by processor name.
|
|
48
|
+
content:
|
|
49
|
+
application/json:
|
|
50
|
+
schema:
|
|
51
|
+
$ref: '#/components/schemas/ProcessorsResponse'
|
|
52
|
+
examples:
|
|
53
|
+
default:
|
|
54
|
+
value:
|
|
55
|
+
handlebars:
|
|
56
|
+
name: handlebars
|
|
57
|
+
label: Handlebars
|
|
58
|
+
description: Handlebars template processor.
|
|
59
|
+
ruleMediaType: text
|
|
60
|
+
dataMediaType: json
|
|
61
|
+
resultMediaType: text
|
|
62
|
+
javascript:
|
|
63
|
+
name: javascript
|
|
64
|
+
label: JavaScript
|
|
65
|
+
description: JavaScript hook processor.
|
|
66
|
+
ruleMediaType: javascript
|
|
67
|
+
dataMediaType: json
|
|
68
|
+
resultMediaType: json
|
|
69
|
+
'401':
|
|
70
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
71
|
+
/v1/processors/xmlParser:
|
|
72
|
+
post:
|
|
73
|
+
x-internal: false
|
|
74
|
+
operationId: parseXml
|
|
75
|
+
tags:
|
|
76
|
+
- Parsers & Generators
|
|
77
|
+
summary: Convert XML to JSON
|
|
78
|
+
description: |-
|
|
79
|
+
Parses XML data into JSON records using the specified parsing rules
|
|
80
|
+
and resource path.
|
|
81
|
+
|
|
82
|
+
**Resource path format** — Use XPath-style slash-separated paths
|
|
83
|
+
(e.g. `/root/item`). Dot-separated paths (e.g. `root.item`) do not
|
|
84
|
+
work.
|
|
85
|
+
|
|
86
|
+
**Legacy vs modern output** — Without `doc.parsers` configured, or
|
|
87
|
+
with `V0_json: true`, the parser produces a legacy format where
|
|
88
|
+
element text appears as `[{"_": "value"}]` arrays and attributes
|
|
89
|
+
appear under a `$` key. Setting `V0_json: false` produces clean
|
|
90
|
+
key-value pairs and flattens attributes into the record.
|
|
91
|
+
|
|
92
|
+
When `groupByFields` is used the response shape changes: `data`
|
|
93
|
+
becomes an array of arrays and `dataRecordTraceKeys` /
|
|
94
|
+
`traceKeysDuplicate` are omitted.
|
|
95
|
+
|
|
96
|
+
Invalid XML returns a 422 with code `cannot_parse_xml`.
|
|
97
|
+
Namespaced XPath expressions (e.g. `ns:element`) return a 422
|
|
98
|
+
with code `invalid_xpath`.
|
|
99
|
+
requestBody:
|
|
100
|
+
required: true
|
|
101
|
+
content:
|
|
102
|
+
application/json:
|
|
103
|
+
schema:
|
|
104
|
+
type: object
|
|
105
|
+
properties:
|
|
106
|
+
data:
|
|
107
|
+
type: string
|
|
108
|
+
examples:
|
|
109
|
+
- <orders><order><id>101</id><item>Widget</item></order></orders>
|
|
110
|
+
description: The XML data to parse (as a string).
|
|
111
|
+
rules:
|
|
112
|
+
type: object
|
|
113
|
+
description: |-
|
|
114
|
+
Parsing rules. At minimum, provide `resourcePath` to select
|
|
115
|
+
which XML elements become records. Add `doc.parsers` to
|
|
116
|
+
control the output format.
|
|
117
|
+
properties:
|
|
118
|
+
resourcePath:
|
|
119
|
+
type: string
|
|
120
|
+
examples:
|
|
121
|
+
- /orders/order
|
|
122
|
+
description: |-
|
|
123
|
+
Slash-separated path to the repeating element in the XML
|
|
124
|
+
(e.g. `/root/items/item`). Each matching element becomes
|
|
125
|
+
one output record.
|
|
126
|
+
groupByFields:
|
|
127
|
+
type: array
|
|
128
|
+
items:
|
|
129
|
+
type: string
|
|
130
|
+
description: |-
|
|
131
|
+
Group parsed records by these field names. Changes the
|
|
132
|
+
response `data` to an array of arrays and omits
|
|
133
|
+
`dataRecordTraceKeys` and `traceKeysDuplicate`.
|
|
134
|
+
sortByFields:
|
|
135
|
+
type: array
|
|
136
|
+
items:
|
|
137
|
+
type: string
|
|
138
|
+
doc:
|
|
139
|
+
type: object
|
|
140
|
+
properties:
|
|
141
|
+
fileParser:
|
|
142
|
+
type: boolean
|
|
143
|
+
parsers:
|
|
144
|
+
type: array
|
|
145
|
+
description: |-
|
|
146
|
+
Array of parser configurations. Typically contains a
|
|
147
|
+
single XML parser entry.
|
|
148
|
+
items:
|
|
149
|
+
type: object
|
|
150
|
+
properties:
|
|
151
|
+
type:
|
|
152
|
+
type: string
|
|
153
|
+
enum:
|
|
154
|
+
- xml
|
|
155
|
+
x-enumDescriptions:
|
|
156
|
+
xml: XML parser configuration.
|
|
157
|
+
version:
|
|
158
|
+
type: integer
|
|
159
|
+
examples:
|
|
160
|
+
- 1
|
|
161
|
+
rules:
|
|
162
|
+
type: object
|
|
163
|
+
properties:
|
|
164
|
+
V0_json:
|
|
165
|
+
type: boolean
|
|
166
|
+
description: |-
|
|
167
|
+
When `false`, produces clean key-value output
|
|
168
|
+
and flattens XML attributes into the record.
|
|
169
|
+
When `true` (default), uses legacy format with
|
|
170
|
+
`_` and `$` keys.
|
|
171
|
+
trimSpaces:
|
|
172
|
+
type: boolean
|
|
173
|
+
description: Trim leading/trailing whitespace from text nodes.
|
|
174
|
+
stripNewLineChars:
|
|
175
|
+
type: boolean
|
|
176
|
+
description: Remove newline characters from text nodes.
|
|
177
|
+
attributePrefix:
|
|
178
|
+
type: string
|
|
179
|
+
examples:
|
|
180
|
+
- '@'
|
|
181
|
+
description: |-
|
|
182
|
+
Prefix prepended to XML attribute names in the
|
|
183
|
+
JSON output (e.g. `@` produces `@id`). Only
|
|
184
|
+
active when `V0_json` is `false`.
|
|
185
|
+
textNodeName:
|
|
186
|
+
type: string
|
|
187
|
+
examples:
|
|
188
|
+
- '&txt'
|
|
189
|
+
description: |-
|
|
190
|
+
Property name for text content in mixed-content
|
|
191
|
+
elements. Defaults to `&txt`. Only active when
|
|
192
|
+
`V0_json` is `false`.
|
|
193
|
+
listNodes:
|
|
194
|
+
type: array
|
|
195
|
+
items:
|
|
196
|
+
type: string
|
|
197
|
+
description: |-
|
|
198
|
+
Element names that should always be arrays in the
|
|
199
|
+
output, even when containing a single item. Only
|
|
200
|
+
active when `V0_json` is `false`.
|
|
201
|
+
includeNodes:
|
|
202
|
+
type: array
|
|
203
|
+
items:
|
|
204
|
+
type: string
|
|
205
|
+
description: |-
|
|
206
|
+
Only include these element names in the output.
|
|
207
|
+
All other elements are dropped. Only active when
|
|
208
|
+
`V0_json` is `false`.
|
|
209
|
+
excludeNodes:
|
|
210
|
+
type: array
|
|
211
|
+
items:
|
|
212
|
+
type: string
|
|
213
|
+
description: |-
|
|
214
|
+
Exclude these element names from the output. Only
|
|
215
|
+
active when `V0_json` is `false`.
|
|
216
|
+
mixedNodes:
|
|
217
|
+
type: array
|
|
218
|
+
items:
|
|
219
|
+
type: string
|
|
220
|
+
description: |-
|
|
221
|
+
Element names that contain mixed content (text
|
|
222
|
+
interleaved with child elements). Text is
|
|
223
|
+
extracted into the `textNodeName` property. Only
|
|
224
|
+
active when `V0_json` is `false`.
|
|
225
|
+
examples:
|
|
226
|
+
modern:
|
|
227
|
+
summary: Parse XML with clean output (V0_json false)
|
|
228
|
+
value:
|
|
229
|
+
data: <orders><order><id>101</id><item>Widget</item></order><order><id>102</id><item>Gadget</item></order></orders>
|
|
230
|
+
rules:
|
|
231
|
+
resourcePath: /orders/order
|
|
232
|
+
doc:
|
|
233
|
+
fileParser: true
|
|
234
|
+
parsers:
|
|
235
|
+
- type: xml
|
|
236
|
+
version: 1
|
|
237
|
+
rules:
|
|
238
|
+
V0_json: false
|
|
239
|
+
legacy:
|
|
240
|
+
summary: Parse XML with legacy output (default)
|
|
241
|
+
value:
|
|
242
|
+
data: <orders><order><id>101</id><item>Widget</item></order></orders>
|
|
243
|
+
rules:
|
|
244
|
+
resourcePath: /orders/order
|
|
245
|
+
responses:
|
|
246
|
+
'200':
|
|
247
|
+
description: Parsed JSON records.
|
|
248
|
+
content:
|
|
249
|
+
application/json:
|
|
250
|
+
schema:
|
|
251
|
+
$ref: '#/components/schemas/ParserResponse'
|
|
252
|
+
examples:
|
|
253
|
+
modern:
|
|
254
|
+
summary: Clean output (V0_json false)
|
|
255
|
+
value:
|
|
256
|
+
mediaType: json
|
|
257
|
+
data:
|
|
258
|
+
- id: '101'
|
|
259
|
+
item: Widget
|
|
260
|
+
- id: '102'
|
|
261
|
+
item: Gadget
|
|
262
|
+
duration: 1
|
|
263
|
+
dataRecordTraceKeys:
|
|
264
|
+
- null
|
|
265
|
+
- null
|
|
266
|
+
traceKeysDuplicate: false
|
|
267
|
+
legacy:
|
|
268
|
+
summary: Legacy output (default)
|
|
269
|
+
value:
|
|
270
|
+
mediaType: json
|
|
271
|
+
data:
|
|
272
|
+
- id:
|
|
273
|
+
- _: '101'
|
|
274
|
+
item:
|
|
275
|
+
- _: Widget
|
|
276
|
+
duration: 1
|
|
277
|
+
dataRecordTraceKeys:
|
|
278
|
+
- null
|
|
279
|
+
traceKeysDuplicate: false
|
|
280
|
+
'401':
|
|
281
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
282
|
+
'422':
|
|
283
|
+
description: Invalid XPath expression or processing rule error.
|
|
284
|
+
content:
|
|
285
|
+
application/json:
|
|
286
|
+
schema:
|
|
287
|
+
type: object
|
|
288
|
+
properties:
|
|
289
|
+
code:
|
|
290
|
+
type: string
|
|
291
|
+
enum:
|
|
292
|
+
- invalid_xpath
|
|
293
|
+
- cannot_parse_xml
|
|
294
|
+
x-enumDescriptions:
|
|
295
|
+
invalid_xpath: The resourcePath contains an invalid or namespaced XPath expression.
|
|
296
|
+
cannot_parse_xml: The input data is not well-formed XML.
|
|
297
|
+
message:
|
|
298
|
+
type: string
|
|
299
|
+
source:
|
|
300
|
+
type: string
|
|
301
|
+
resolved:
|
|
302
|
+
type: boolean
|
|
303
|
+
occurredAt:
|
|
304
|
+
type: integer
|
|
305
|
+
path:
|
|
306
|
+
type: string
|
|
307
|
+
/v1/processors/csvParser:
|
|
308
|
+
post:
|
|
309
|
+
x-internal: false
|
|
310
|
+
operationId: parseCsv
|
|
311
|
+
tags:
|
|
312
|
+
- Parsers & Generators
|
|
313
|
+
summary: Convert CSV to JSON
|
|
314
|
+
description: |-
|
|
315
|
+
Parses CSV data into JSON records using the specified delimiter and
|
|
316
|
+
formatting rules.
|
|
317
|
+
|
|
318
|
+
Both `data` and `rules` are technically optional — omitting either
|
|
319
|
+
returns an empty result rather than an error. When `hasHeaderRow` is
|
|
320
|
+
false, columns are named `Column0`, `Column1`, etc. When
|
|
321
|
+
`includeEmptyValues` is true, missing values become JSON `null`
|
|
322
|
+
instead of being omitted from the record.
|
|
323
|
+
|
|
324
|
+
When `groupByFields` is used the response shape changes: `data`
|
|
325
|
+
becomes an array of arrays (grouped records) and the
|
|
326
|
+
`dataRecordTraceKeys` / `traceKeysDuplicate` fields are omitted.
|
|
327
|
+
This is a stateless transformation. All values are returned as
|
|
328
|
+
strings, even numeric CSV columns.
|
|
329
|
+
requestBody:
|
|
330
|
+
required: true
|
|
331
|
+
content:
|
|
332
|
+
application/json:
|
|
333
|
+
schema:
|
|
334
|
+
type: object
|
|
335
|
+
properties:
|
|
336
|
+
data:
|
|
337
|
+
type: string
|
|
338
|
+
examples:
|
|
339
|
+
- |-
|
|
340
|
+
name,email,age
|
|
341
|
+
Alice,alice@example.com,30
|
|
342
|
+
Bob,bob@example.com,25
|
|
343
|
+
description: The CSV data to parse.
|
|
344
|
+
rules:
|
|
345
|
+
type: object
|
|
346
|
+
description: Parsing rules controlling delimiters, headers, and grouping.
|
|
347
|
+
properties:
|
|
348
|
+
columnDelimiter:
|
|
349
|
+
type: string
|
|
350
|
+
examples:
|
|
351
|
+
- ','
|
|
352
|
+
description: Column delimiter character (e.g. `,`, `\t`).
|
|
353
|
+
rowDelimiter:
|
|
354
|
+
type: string
|
|
355
|
+
examples:
|
|
356
|
+
- |+
|
|
357
|
+
|
|
358
|
+
description: Row delimiter (e.g. `\n`, `|`).
|
|
359
|
+
trimSpaces:
|
|
360
|
+
type: boolean
|
|
361
|
+
description: When true, trims leading and trailing spaces from parsed values.
|
|
362
|
+
hasHeaderRow:
|
|
363
|
+
type: boolean
|
|
364
|
+
description: |-
|
|
365
|
+
When true, the first row is treated as column headers. When false,
|
|
366
|
+
columns are named Column0, Column1, etc.
|
|
367
|
+
rowsPerRecord:
|
|
368
|
+
type: boolean
|
|
369
|
+
rowsToSkip:
|
|
370
|
+
type: integer
|
|
371
|
+
examples:
|
|
372
|
+
- 0
|
|
373
|
+
description: Number of rows to skip before parsing begins.
|
|
374
|
+
multipleRowsPerRecord:
|
|
375
|
+
type: boolean
|
|
376
|
+
keyColumns:
|
|
377
|
+
type: array
|
|
378
|
+
items:
|
|
379
|
+
type: string
|
|
380
|
+
description: |-
|
|
381
|
+
Group consecutive rows into multi-row records by
|
|
382
|
+
these column names. When a new value appears in a
|
|
383
|
+
key column, a new record group starts. Changes the
|
|
384
|
+
response `data` to an array of arrays.
|
|
385
|
+
disableQuoteAndStripEnclosingQuotes:
|
|
386
|
+
type: boolean
|
|
387
|
+
description: |-
|
|
388
|
+
Disables CSV quote handling and strips enclosing
|
|
389
|
+
quotes from values.
|
|
390
|
+
groupByFields:
|
|
391
|
+
type: array
|
|
392
|
+
items:
|
|
393
|
+
type: string
|
|
394
|
+
description: |-
|
|
395
|
+
Group parsed records by these field names. Changes the
|
|
396
|
+
response `data` to an array of arrays and omits
|
|
397
|
+
`dataRecordTraceKeys` and `traceKeysDuplicate`.
|
|
398
|
+
sortByFields:
|
|
399
|
+
type: array
|
|
400
|
+
items:
|
|
401
|
+
type: string
|
|
402
|
+
options:
|
|
403
|
+
type: object
|
|
404
|
+
properties:
|
|
405
|
+
includeEmptyValues:
|
|
406
|
+
type: boolean
|
|
407
|
+
description: |-
|
|
408
|
+
When true, empty CSV values are returned as JSON `null`.
|
|
409
|
+
When false (default), empty values are omitted from the
|
|
410
|
+
record.
|
|
411
|
+
examples:
|
|
412
|
+
default:
|
|
413
|
+
summary: Parse a simple CSV with headers
|
|
414
|
+
value:
|
|
415
|
+
data: |-
|
|
416
|
+
name,email,age
|
|
417
|
+
Alice,alice@example.com,30
|
|
418
|
+
Bob,bob@example.com,25
|
|
419
|
+
rules:
|
|
420
|
+
columnDelimiter: ','
|
|
421
|
+
hasHeaderRow: true
|
|
422
|
+
options:
|
|
423
|
+
includeEmptyValues: false
|
|
424
|
+
responses:
|
|
425
|
+
'200':
|
|
426
|
+
description: Parsed JSON records.
|
|
427
|
+
content:
|
|
428
|
+
application/json:
|
|
429
|
+
schema:
|
|
430
|
+
$ref: '#/components/schemas/ParserResponse'
|
|
431
|
+
examples:
|
|
432
|
+
default:
|
|
433
|
+
value:
|
|
434
|
+
mediaType: json
|
|
435
|
+
data:
|
|
436
|
+
- name: Alice
|
|
437
|
+
email: alice@example.com
|
|
438
|
+
age: '30'
|
|
439
|
+
- name: Bob
|
|
440
|
+
email: bob@example.com
|
|
441
|
+
age: '25'
|
|
442
|
+
duration: 0
|
|
443
|
+
dataRecordTraceKeys:
|
|
444
|
+
- null
|
|
445
|
+
- null
|
|
446
|
+
traceKeysDuplicate: false
|
|
447
|
+
'401':
|
|
448
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
449
|
+
/v1/processors/csvDataGenerator:
|
|
450
|
+
post:
|
|
451
|
+
x-internal: false
|
|
452
|
+
operationId: generateCsv
|
|
453
|
+
tags:
|
|
454
|
+
- Parsers & Generators
|
|
455
|
+
summary: Generate CSV from JSON
|
|
456
|
+
description: |-
|
|
457
|
+
Generates CSV output from JSON records using the specified delimiter
|
|
458
|
+
and formatting rules.
|
|
459
|
+
|
|
460
|
+
The response always has `mediaType: "text"` and does not include
|
|
461
|
+
`dataRecordTraceKeys` or `traceKeysDuplicate`. This is a stateless
|
|
462
|
+
transformation.
|
|
463
|
+
requestBody:
|
|
464
|
+
required: true
|
|
465
|
+
content:
|
|
466
|
+
application/json:
|
|
467
|
+
schema:
|
|
468
|
+
type: object
|
|
469
|
+
properties:
|
|
470
|
+
data:
|
|
471
|
+
description: |-
|
|
472
|
+
Records to convert to CSV. Accepts a flat array of objects
|
|
473
|
+
(e.g. `[{"a":"1"}, {"a":"2"}]`) or an array of arrays for
|
|
474
|
+
batch processing (e.g. `[[{"a":"1"}], [{"a":"2"}]]`). Each
|
|
475
|
+
object's keys become column names when `includeHeader` is
|
|
476
|
+
true.
|
|
477
|
+
oneOf:
|
|
478
|
+
- type: array
|
|
479
|
+
items:
|
|
480
|
+
type: object
|
|
481
|
+
additionalProperties: true
|
|
482
|
+
- type: array
|
|
483
|
+
items:
|
|
484
|
+
type: array
|
|
485
|
+
items:
|
|
486
|
+
type: object
|
|
487
|
+
additionalProperties: true
|
|
488
|
+
rules:
|
|
489
|
+
type: object
|
|
490
|
+
description: |-
|
|
491
|
+
Generation rules controlling delimiters, headers, and
|
|
492
|
+
formatting.
|
|
493
|
+
properties:
|
|
494
|
+
columnDelimiter:
|
|
495
|
+
type: string
|
|
496
|
+
examples:
|
|
497
|
+
- ','
|
|
498
|
+
description: Column delimiter character (e.g. `,`, `\t`).
|
|
499
|
+
rowDelimiter:
|
|
500
|
+
type: string
|
|
501
|
+
examples:
|
|
502
|
+
- |+
|
|
503
|
+
|
|
504
|
+
description: |-
|
|
505
|
+
Row delimiter character (default `\n`). Appended after
|
|
506
|
+
each row including the last unless
|
|
507
|
+
`truncateLastRowDelimiter` is true.
|
|
508
|
+
includeHeader:
|
|
509
|
+
type: boolean
|
|
510
|
+
description: When true, includes a header row with column names in the output.
|
|
511
|
+
truncateLastRowDelimiter:
|
|
512
|
+
type: boolean
|
|
513
|
+
description: |-
|
|
514
|
+
When true, omits the trailing row delimiter after the
|
|
515
|
+
last data row.
|
|
516
|
+
replaceTabWithSpace:
|
|
517
|
+
type: boolean
|
|
518
|
+
description: Replace tab characters in values with spaces.
|
|
519
|
+
replaceNewlineWithSpace:
|
|
520
|
+
type: boolean
|
|
521
|
+
description: Replace newline characters in values with spaces.
|
|
522
|
+
wrapWithQuotes:
|
|
523
|
+
type: boolean
|
|
524
|
+
description: Wrap every value (including headers) in double quotes.
|
|
525
|
+
customHeaderRows:
|
|
526
|
+
type: array
|
|
527
|
+
items:
|
|
528
|
+
type: string
|
|
529
|
+
description: |-
|
|
530
|
+
Custom header lines prepended before the column header
|
|
531
|
+
row and data rows. Each string becomes one line in the
|
|
532
|
+
output.
|
|
533
|
+
examples:
|
|
534
|
+
default:
|
|
535
|
+
summary: Generate CSV with header row
|
|
536
|
+
value:
|
|
537
|
+
data:
|
|
538
|
+
- name: Alice
|
|
539
|
+
email: alice@example.com
|
|
540
|
+
- name: Bob
|
|
541
|
+
email: bob@example.com
|
|
542
|
+
rules:
|
|
543
|
+
columnDelimiter: ','
|
|
544
|
+
rowDelimiter: |+
|
|
545
|
+
|
|
546
|
+
includeHeader: true
|
|
547
|
+
responses:
|
|
548
|
+
'200':
|
|
549
|
+
description: Generated CSV data.
|
|
550
|
+
content:
|
|
551
|
+
application/json:
|
|
552
|
+
schema:
|
|
553
|
+
$ref: '#/components/schemas/GeneratorResponse'
|
|
554
|
+
examples:
|
|
555
|
+
default:
|
|
556
|
+
value:
|
|
557
|
+
mediaType: text
|
|
558
|
+
data: |
|
|
559
|
+
name,email
|
|
560
|
+
Alice,alice@example.com
|
|
561
|
+
Bob,bob@example.com
|
|
562
|
+
duration: 0
|
|
563
|
+
'401':
|
|
564
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
565
|
+
/v1/processors/structuredFileParser:
|
|
566
|
+
post:
|
|
567
|
+
x-internal: false
|
|
568
|
+
operationId: parseStructuredFile
|
|
569
|
+
tags:
|
|
570
|
+
- Parsers & Generators
|
|
571
|
+
summary: Parse structured file (EDI) to JSON
|
|
572
|
+
description: |-
|
|
573
|
+
Parses EDI or other structured/delimited file data into JSON using
|
|
574
|
+
a file definition (parsing rules). Commonly used for X12 and EDIFACT
|
|
575
|
+
documents.
|
|
576
|
+
|
|
577
|
+
The file definition must be provided inside a `rules.fileDefinition`
|
|
578
|
+
wrapper object, or referenced by ID via `rules._fileDefinitionId`.
|
|
579
|
+
This differs from the generator endpoint which places definition
|
|
580
|
+
fields directly in `rules`.
|
|
581
|
+
|
|
582
|
+
The response includes a `recordLevelErrors` array not present on
|
|
583
|
+
other processor responses. This is a stateless transformation.
|
|
584
|
+
Provide the file definition inline via `rules.fileDefinition` or
|
|
585
|
+
reference an existing one via `rules._fileDefinitionId` (not both).
|
|
586
|
+
The generator endpoint places definition fields directly in `rules`
|
|
587
|
+
(no `fileDefinition` wrapper).
|
|
588
|
+
|
|
589
|
+
**Required file definition fields** — `name`, `version` (string
|
|
590
|
+
`"1"` or `"2"`), `format` (`delimited`, `delimited/x12`,
|
|
591
|
+
`delimited/edifact`, or `fixed`), and the corresponding format
|
|
592
|
+
sub-object (`delimited` or `fixed`) with at least `rowDelimiter`
|
|
593
|
+
and `colDelimiter` (for delimited) or `rowDelimiter` and
|
|
594
|
+
`paddingChar` (for fixed). The `rules` property defines the
|
|
595
|
+
segment/element hierarchy.
|
|
596
|
+
requestBody:
|
|
597
|
+
required: true
|
|
598
|
+
content:
|
|
599
|
+
application/json:
|
|
600
|
+
schema:
|
|
601
|
+
type: object
|
|
602
|
+
required:
|
|
603
|
+
- data
|
|
604
|
+
- rules
|
|
605
|
+
properties:
|
|
606
|
+
data:
|
|
607
|
+
type: string
|
|
608
|
+
examples:
|
|
609
|
+
- |-
|
|
610
|
+
HDR~John~Doe
|
|
611
|
+
DTL~100~USD
|
|
612
|
+
description: The raw structured file content to parse.
|
|
613
|
+
rules:
|
|
614
|
+
type: object
|
|
615
|
+
description: |-
|
|
616
|
+
Provide either a `fileDefinition` object with the full
|
|
617
|
+
definition inline, or a `_fileDefinitionId` to reference
|
|
618
|
+
an existing file definition resource.
|
|
619
|
+
properties:
|
|
620
|
+
fileDefinition:
|
|
621
|
+
type: object
|
|
622
|
+
description: |-
|
|
623
|
+
Inline file definition. Must include `name`, `version`,
|
|
624
|
+
`format`, the format-specific sub-object, and `rules`.
|
|
625
|
+
properties:
|
|
626
|
+
name:
|
|
627
|
+
type: string
|
|
628
|
+
examples:
|
|
629
|
+
- simple-delimited
|
|
630
|
+
description:
|
|
631
|
+
type: string
|
|
632
|
+
examples:
|
|
633
|
+
- Simple tilde-delimited header/detail file.
|
|
634
|
+
version:
|
|
635
|
+
type: string
|
|
636
|
+
enum:
|
|
637
|
+
- '1'
|
|
638
|
+
- '2'
|
|
639
|
+
x-enumDescriptions:
|
|
640
|
+
'1': Original file definition schema version.
|
|
641
|
+
'2': Updated file definition schema version with breaking changes.
|
|
642
|
+
format:
|
|
643
|
+
type: string
|
|
644
|
+
description: File format type.
|
|
645
|
+
enum:
|
|
646
|
+
- delimited
|
|
647
|
+
- delimited/x12
|
|
648
|
+
- delimited/edifact
|
|
649
|
+
- fixed
|
|
650
|
+
x-enumDescriptions:
|
|
651
|
+
delimited: Generic delimited file (CSV, TSV, pipe-delimited, etc.).
|
|
652
|
+
delimited/x12: X12 EDI format with ISA/GS/ST envelope segments.
|
|
653
|
+
delimited/edifact: UN/EDIFACT format with UNA/UNB/UNH envelope segments.
|
|
654
|
+
fixed: Fixed-width columns padded to defined lengths.
|
|
655
|
+
delimited:
|
|
656
|
+
type: object
|
|
657
|
+
description: Required when `format` starts with `delimited`.
|
|
658
|
+
properties:
|
|
659
|
+
rowSuffix:
|
|
660
|
+
type: string
|
|
661
|
+
examples:
|
|
662
|
+
- '~'
|
|
663
|
+
rowDelimiter:
|
|
664
|
+
type: string
|
|
665
|
+
examples:
|
|
666
|
+
- |+
|
|
667
|
+
|
|
668
|
+
description: Row delimiter (required).
|
|
669
|
+
colDelimiter:
|
|
670
|
+
type: string
|
|
671
|
+
examples:
|
|
672
|
+
- '~'
|
|
673
|
+
description: Column delimiter (required for delimited).
|
|
674
|
+
compositeDelimiter:
|
|
675
|
+
type: string
|
|
676
|
+
examples:
|
|
677
|
+
- ':'
|
|
678
|
+
description: Composite element delimiter (EDI formats).
|
|
679
|
+
fixed:
|
|
680
|
+
type: object
|
|
681
|
+
description: Required when `format` is `fixed`.
|
|
682
|
+
properties:
|
|
683
|
+
rowSuffix:
|
|
684
|
+
type: string
|
|
685
|
+
examples:
|
|
686
|
+
- '~'
|
|
687
|
+
rowDelimiter:
|
|
688
|
+
type: string
|
|
689
|
+
examples:
|
|
690
|
+
- |+
|
|
691
|
+
|
|
692
|
+
description: Row delimiter (required).
|
|
693
|
+
paddingChar:
|
|
694
|
+
type: string
|
|
695
|
+
examples:
|
|
696
|
+
- ' '
|
|
697
|
+
description: Padding character (required, single char).
|
|
698
|
+
skipEmptyEndColDelimiter:
|
|
699
|
+
type: boolean
|
|
700
|
+
skipIntermittentEmptyLines:
|
|
701
|
+
type: boolean
|
|
702
|
+
skipEDIValidation:
|
|
703
|
+
type: boolean
|
|
704
|
+
skipEDIProfileValidation:
|
|
705
|
+
type: boolean
|
|
706
|
+
rules:
|
|
707
|
+
description: |-
|
|
708
|
+
Segment/element hierarchy. Can be an array of
|
|
709
|
+
segment objects or a single root container object
|
|
710
|
+
with `children`.
|
|
711
|
+
oneOf:
|
|
712
|
+
- title: Segment array
|
|
713
|
+
type: array
|
|
714
|
+
items:
|
|
715
|
+
type: object
|
|
716
|
+
additionalProperties: true
|
|
717
|
+
- title: Root container
|
|
718
|
+
type: object
|
|
719
|
+
additionalProperties: true
|
|
720
|
+
required:
|
|
721
|
+
- name
|
|
722
|
+
- version
|
|
723
|
+
- format
|
|
724
|
+
- rules
|
|
725
|
+
_fileDefinitionId:
|
|
726
|
+
type: string
|
|
727
|
+
x-celigo-refModel: filedefinitions
|
|
728
|
+
examples:
|
|
729
|
+
- 60a2c4e6f321d800129a1a3c
|
|
730
|
+
description: |-
|
|
731
|
+
Reference an existing file definition by ID instead of
|
|
732
|
+
providing an inline definition.
|
|
733
|
+
resourcePath:
|
|
734
|
+
type: string
|
|
735
|
+
examples:
|
|
736
|
+
- DTL
|
|
737
|
+
description: |-
|
|
738
|
+
Dot-separated path into the parsed document to select
|
|
739
|
+
which segment's data to return as records.
|
|
740
|
+
options:
|
|
741
|
+
type: object
|
|
742
|
+
properties:
|
|
743
|
+
ediProfile:
|
|
744
|
+
type: object
|
|
745
|
+
additionalProperties: true
|
|
746
|
+
description: Optional EDI profile for ISA/GS envelope context.
|
|
747
|
+
examples:
|
|
748
|
+
inline-definition:
|
|
749
|
+
summary: Parse with inline file definition
|
|
750
|
+
value:
|
|
751
|
+
data: |-
|
|
752
|
+
HDR~John~Doe
|
|
753
|
+
DTL~100~USD
|
|
754
|
+
rules:
|
|
755
|
+
fileDefinition:
|
|
756
|
+
name: simple-delimited
|
|
757
|
+
version: '1'
|
|
758
|
+
format: delimited
|
|
759
|
+
delimited:
|
|
760
|
+
rowDelimiter: |+
|
|
761
|
+
|
|
762
|
+
colDelimiter: '~'
|
|
763
|
+
rules:
|
|
764
|
+
- name: HDR
|
|
765
|
+
elements:
|
|
766
|
+
- name: firstName
|
|
767
|
+
- name: lastName
|
|
768
|
+
- name: DTL
|
|
769
|
+
elements:
|
|
770
|
+
- name: amount
|
|
771
|
+
- name: currency
|
|
772
|
+
by-reference:
|
|
773
|
+
summary: Parse with file definition reference
|
|
774
|
+
value:
|
|
775
|
+
data: HDR~John~Doe
|
|
776
|
+
rules:
|
|
777
|
+
_fileDefinitionId: 60a2c4e6f321d800129a1a3c
|
|
778
|
+
responses:
|
|
779
|
+
'200':
|
|
780
|
+
description: Parsed JSON records.
|
|
781
|
+
content:
|
|
782
|
+
application/json:
|
|
783
|
+
schema:
|
|
784
|
+
$ref: '#/components/schemas/StructuredFileParserResponse'
|
|
785
|
+
examples:
|
|
786
|
+
default:
|
|
787
|
+
value:
|
|
788
|
+
mediaType: json
|
|
789
|
+
data:
|
|
790
|
+
- HDR:
|
|
791
|
+
firstName: John
|
|
792
|
+
lastName: Doe
|
|
793
|
+
DTL:
|
|
794
|
+
amount: '100'
|
|
795
|
+
currency: USD
|
|
796
|
+
recordLevelErrors: []
|
|
797
|
+
duration: 1
|
|
798
|
+
dataRecordTraceKeys:
|
|
799
|
+
- null
|
|
800
|
+
traceKeysDuplicate: false
|
|
801
|
+
'401':
|
|
802
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
803
|
+
'422':
|
|
804
|
+
description: File definition validation error or missing required segment.
|
|
805
|
+
content:
|
|
806
|
+
application/json:
|
|
807
|
+
schema:
|
|
808
|
+
type: object
|
|
809
|
+
properties:
|
|
810
|
+
message:
|
|
811
|
+
type: string
|
|
812
|
+
source:
|
|
813
|
+
type: string
|
|
814
|
+
code:
|
|
815
|
+
type: string
|
|
816
|
+
description: |-
|
|
817
|
+
Error code. Common values: `file_definition_error`,
|
|
818
|
+
`missing_row`, `WRONG_MAX_OCCURRENCE`.
|
|
819
|
+
resolved:
|
|
820
|
+
type: boolean
|
|
821
|
+
occurredAt:
|
|
822
|
+
type: integer
|
|
823
|
+
path:
|
|
824
|
+
type: string
|
|
825
|
+
/v1/processors/structuredFileGenerator:
|
|
826
|
+
post:
|
|
827
|
+
x-internal: false
|
|
828
|
+
operationId: generateStructuredFile
|
|
829
|
+
tags:
|
|
830
|
+
- Parsers & Generators
|
|
831
|
+
summary: Generate structured file (EDI) from JSON
|
|
832
|
+
description: |-
|
|
833
|
+
Generates EDI or other structured/delimited file content from JSON
|
|
834
|
+
records using a file definition (generation rules). Commonly used
|
|
835
|
+
for producing X12 and EDIFACT documents.
|
|
836
|
+
|
|
837
|
+
Unlike the parser endpoint, the generator places file definition
|
|
838
|
+
fields directly in `rules` (no `fileDefinition` wrapper). Each
|
|
839
|
+
element in the definition must include a `value` property containing
|
|
840
|
+
the literal text to output for that field.
|
|
841
|
+
|
|
842
|
+
The `data` field must be an array of objects. Each object in the
|
|
843
|
+
array represents one document to generate. The response has
|
|
844
|
+
`mediaType: "text"` and does not include `dataRecordTraceKeys` or
|
|
845
|
+
`traceKeysDuplicate`.
|
|
846
|
+
|
|
847
|
+
**Required file definition fields** — `name`, `version` (string
|
|
848
|
+
`"1"` or `"2"`), `format`, the format sub-object with
|
|
849
|
+
`rowDelimiter` + `colDelimiter` (and optionally `rowSuffix`), and
|
|
850
|
+
`rules` defining segments with elements that each have `name` and
|
|
851
|
+
`value`. This is a stateless transformation. File definition fields
|
|
852
|
+
go directly in `rules` (no `fileDefinition` wrapper, unlike the
|
|
853
|
+
parser endpoint).
|
|
854
|
+
requestBody:
|
|
855
|
+
required: true
|
|
856
|
+
content:
|
|
857
|
+
application/json:
|
|
858
|
+
schema:
|
|
859
|
+
type: object
|
|
860
|
+
required:
|
|
861
|
+
- data
|
|
862
|
+
- rules
|
|
863
|
+
properties:
|
|
864
|
+
data:
|
|
865
|
+
type: array
|
|
866
|
+
description: |-
|
|
867
|
+
Array of record objects. Each object represents one
|
|
868
|
+
document to generate. The generator uses element `value`
|
|
869
|
+
properties from the rules, not field values from these
|
|
870
|
+
objects.
|
|
871
|
+
items:
|
|
872
|
+
type: object
|
|
873
|
+
additionalProperties: true
|
|
874
|
+
rules:
|
|
875
|
+
type: object
|
|
876
|
+
description: |-
|
|
877
|
+
File definition placed directly at this level (no
|
|
878
|
+
`fileDefinition` wrapper). Must include `name`, `version`,
|
|
879
|
+
`format`, the format sub-object, and `rules`.
|
|
880
|
+
required:
|
|
881
|
+
- name
|
|
882
|
+
- version
|
|
883
|
+
- format
|
|
884
|
+
- rules
|
|
885
|
+
properties:
|
|
886
|
+
name:
|
|
887
|
+
type: string
|
|
888
|
+
examples:
|
|
889
|
+
- simple-delimited
|
|
890
|
+
description:
|
|
891
|
+
type: string
|
|
892
|
+
examples:
|
|
893
|
+
- Simple tilde-delimited header/detail file.
|
|
894
|
+
version:
|
|
895
|
+
type: string
|
|
896
|
+
enum:
|
|
897
|
+
- '1'
|
|
898
|
+
- '2'
|
|
899
|
+
x-enumDescriptions:
|
|
900
|
+
'1': Original file definition schema version.
|
|
901
|
+
'2': Updated file definition schema version with breaking changes.
|
|
902
|
+
format:
|
|
903
|
+
type: string
|
|
904
|
+
description: File format type.
|
|
905
|
+
enum:
|
|
906
|
+
- delimited
|
|
907
|
+
- delimited/x12
|
|
908
|
+
- delimited/edifact
|
|
909
|
+
- fixed
|
|
910
|
+
x-enumDescriptions:
|
|
911
|
+
delimited: Generic delimited file (CSV, TSV, pipe-delimited, etc.).
|
|
912
|
+
delimited/x12: X12 EDI format with ISA/GS/ST envelope segments.
|
|
913
|
+
delimited/edifact: UN/EDIFACT format with UNA/UNB/UNH envelope segments.
|
|
914
|
+
fixed: Fixed-width columns padded to defined lengths.
|
|
915
|
+
delimited:
|
|
916
|
+
type: object
|
|
917
|
+
description: Required when `format` starts with `delimited`.
|
|
918
|
+
properties:
|
|
919
|
+
rowSuffix:
|
|
920
|
+
type: string
|
|
921
|
+
examples:
|
|
922
|
+
- '~'
|
|
923
|
+
description: Appended after each row.
|
|
924
|
+
rowDelimiter:
|
|
925
|
+
type: string
|
|
926
|
+
examples:
|
|
927
|
+
- |+
|
|
928
|
+
|
|
929
|
+
description: Row delimiter (required).
|
|
930
|
+
colDelimiter:
|
|
931
|
+
type: string
|
|
932
|
+
examples:
|
|
933
|
+
- '~'
|
|
934
|
+
description: Column delimiter (required for delimited).
|
|
935
|
+
compositeDelimiter:
|
|
936
|
+
type: string
|
|
937
|
+
examples:
|
|
938
|
+
- ':'
|
|
939
|
+
description: Composite element delimiter (EDI formats).
|
|
940
|
+
fixed:
|
|
941
|
+
type: object
|
|
942
|
+
description: Required when `format` is `fixed`.
|
|
943
|
+
properties:
|
|
944
|
+
rowSuffix:
|
|
945
|
+
type: string
|
|
946
|
+
examples:
|
|
947
|
+
- '~'
|
|
948
|
+
rowDelimiter:
|
|
949
|
+
type: string
|
|
950
|
+
examples:
|
|
951
|
+
- |+
|
|
952
|
+
|
|
953
|
+
description: Row delimiter (required).
|
|
954
|
+
paddingChar:
|
|
955
|
+
type: string
|
|
956
|
+
examples:
|
|
957
|
+
- ' '
|
|
958
|
+
description: Padding character (required, single char).
|
|
959
|
+
skipEmptyEndColDelimiter:
|
|
960
|
+
type: boolean
|
|
961
|
+
rules:
|
|
962
|
+
type: array
|
|
963
|
+
description: |-
|
|
964
|
+
Array of segment definitions. Each segment has a `name`
|
|
965
|
+
and `elements` array. Each element must have `name` and
|
|
966
|
+
`value` (the literal text to output).
|
|
967
|
+
items:
|
|
968
|
+
type: object
|
|
969
|
+
additionalProperties: true
|
|
970
|
+
additionalProperties: true
|
|
971
|
+
options:
|
|
972
|
+
type: object
|
|
973
|
+
properties:
|
|
974
|
+
ediProfile:
|
|
975
|
+
type: object
|
|
976
|
+
additionalProperties: true
|
|
977
|
+
description: Optional EDI profile for ISA/GS envelope context.
|
|
978
|
+
examples:
|
|
979
|
+
default:
|
|
980
|
+
summary: Generate a simple delimited file
|
|
981
|
+
value:
|
|
982
|
+
data:
|
|
983
|
+
- {}
|
|
984
|
+
rules:
|
|
985
|
+
name: simple-delimited
|
|
986
|
+
version: '1'
|
|
987
|
+
format: delimited
|
|
988
|
+
delimited:
|
|
989
|
+
rowDelimiter: |+
|
|
990
|
+
|
|
991
|
+
colDelimiter: '~'
|
|
992
|
+
rules:
|
|
993
|
+
- name: HDR
|
|
994
|
+
elements:
|
|
995
|
+
- name: firstName
|
|
996
|
+
value: John
|
|
997
|
+
- name: lastName
|
|
998
|
+
value: Doe
|
|
999
|
+
responses:
|
|
1000
|
+
'200':
|
|
1001
|
+
description: Generated structured file content.
|
|
1002
|
+
content:
|
|
1003
|
+
application/json:
|
|
1004
|
+
schema:
|
|
1005
|
+
$ref: '#/components/schemas/GeneratorResponse'
|
|
1006
|
+
examples:
|
|
1007
|
+
default:
|
|
1008
|
+
value:
|
|
1009
|
+
mediaType: text
|
|
1010
|
+
data: |
|
|
1011
|
+
HDR~John~Doe
|
|
1012
|
+
duration: 0
|
|
1013
|
+
'401':
|
|
1014
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1015
|
+
'422':
|
|
1016
|
+
description: File definition validation error.
|
|
1017
|
+
content:
|
|
1018
|
+
application/json:
|
|
1019
|
+
schema:
|
|
1020
|
+
type: object
|
|
1021
|
+
properties:
|
|
1022
|
+
source:
|
|
1023
|
+
type: string
|
|
1024
|
+
code:
|
|
1025
|
+
type: string
|
|
1026
|
+
description: |-
|
|
1027
|
+
Error code. Typically `INVALID_FILE_DEFINITION` or
|
|
1028
|
+
`wrong_data_type`.
|
|
1029
|
+
message:
|
|
1030
|
+
type: string
|
|
1031
|
+
details:
|
|
1032
|
+
type: array
|
|
1033
|
+
description: Detailed validation errors.
|
|
1034
|
+
items:
|
|
1035
|
+
type: object
|
|
1036
|
+
properties:
|
|
1037
|
+
path:
|
|
1038
|
+
type: string
|
|
1039
|
+
message:
|
|
1040
|
+
type: string
|
|
1041
|
+
name:
|
|
1042
|
+
type: string
|
|
1043
|
+
path:
|
|
1044
|
+
type: string
|
|
1045
|
+
components:
|
|
1046
|
+
securitySchemes:
|
|
1047
|
+
bearerAuth:
|
|
1048
|
+
type: http
|
|
1049
|
+
scheme: bearer
|
|
1050
|
+
schemas:
|
|
1051
|
+
ProcessorDescriptor:
|
|
1052
|
+
type: object
|
|
1053
|
+
required:
|
|
1054
|
+
- name
|
|
1055
|
+
- label
|
|
1056
|
+
- description
|
|
1057
|
+
- dataMediaType
|
|
1058
|
+
- resultMediaType
|
|
1059
|
+
- ruleMediaType
|
|
1060
|
+
description: Metadata describing a single processor type.
|
|
1061
|
+
properties:
|
|
1062
|
+
name:
|
|
1063
|
+
type: string
|
|
1064
|
+
examples:
|
|
1065
|
+
- handlebars
|
|
1066
|
+
description: Processor key (matches the enclosing object key).
|
|
1067
|
+
label:
|
|
1068
|
+
type: string
|
|
1069
|
+
examples:
|
|
1070
|
+
- Handlebars
|
|
1071
|
+
description: Human-readable label shown in the UI.
|
|
1072
|
+
description:
|
|
1073
|
+
type: string
|
|
1074
|
+
examples:
|
|
1075
|
+
- Handlebars template processor.
|
|
1076
|
+
description: Short description of the processor's behavior.
|
|
1077
|
+
ruleMediaType:
|
|
1078
|
+
type: string
|
|
1079
|
+
examples:
|
|
1080
|
+
- text
|
|
1081
|
+
description: |-
|
|
1082
|
+
Media type of the processor's rule/template field. Typical values
|
|
1083
|
+
include `text`, `json`, `javascript`.
|
|
1084
|
+
dataMediaType:
|
|
1085
|
+
type: string
|
|
1086
|
+
examples:
|
|
1087
|
+
- json
|
|
1088
|
+
description: Media type the processor expects for the input data.
|
|
1089
|
+
resultMediaType:
|
|
1090
|
+
type: string
|
|
1091
|
+
examples:
|
|
1092
|
+
- text
|
|
1093
|
+
description: Media type the processor emits as its result.
|
|
1094
|
+
ruleJsonSchema:
|
|
1095
|
+
type: object
|
|
1096
|
+
additionalProperties: true
|
|
1097
|
+
description: |-
|
|
1098
|
+
JSON Schema describing the processor's rule structure. Only
|
|
1099
|
+
present on processors with a formal schema (e.g. exportDataConverter).
|
|
1100
|
+
helperFunctions:
|
|
1101
|
+
type: object
|
|
1102
|
+
additionalProperties:
|
|
1103
|
+
type: string
|
|
1104
|
+
description: |-
|
|
1105
|
+
Map of helper function names to usage templates. Only present
|
|
1106
|
+
on the handlebars processor.
|
|
1107
|
+
ProcessorsResponse:
|
|
1108
|
+
type: object
|
|
1109
|
+
description: |-
|
|
1110
|
+
Processor catalog keyed by processor name. Each value describes the
|
|
1111
|
+
processor's label, purpose, and input/output media types.
|
|
1112
|
+
additionalProperties:
|
|
1113
|
+
$ref: '#/components/schemas/ProcessorDescriptor'
|
|
1114
|
+
ParserResponse:
|
|
1115
|
+
type: object
|
|
1116
|
+
description: |-
|
|
1117
|
+
Response from a parser processor (`csvParser`, `xmlParser`).
|
|
1118
|
+
|
|
1119
|
+
When `groupByFields` is used in the request, the `dataRecordTraceKeys`
|
|
1120
|
+
and `traceKeysDuplicate` fields are omitted from the response and `data`
|
|
1121
|
+
becomes an array of arrays (each inner array is one group of records).
|
|
1122
|
+
properties:
|
|
1123
|
+
mediaType:
|
|
1124
|
+
type: string
|
|
1125
|
+
description: Always `json` for parser processors.
|
|
1126
|
+
enum:
|
|
1127
|
+
- json
|
|
1128
|
+
x-enumDescriptions:
|
|
1129
|
+
json: Response data is formatted as JSON.
|
|
1130
|
+
data:
|
|
1131
|
+
description: |-
|
|
1132
|
+
Parsed records. Normally an array of objects. When `groupByFields`
|
|
1133
|
+
is used, becomes an array of arrays (grouped records).
|
|
1134
|
+
oneOf:
|
|
1135
|
+
- type: array
|
|
1136
|
+
items:
|
|
1137
|
+
type: object
|
|
1138
|
+
additionalProperties: true
|
|
1139
|
+
- type: array
|
|
1140
|
+
items:
|
|
1141
|
+
type: array
|
|
1142
|
+
items:
|
|
1143
|
+
type: object
|
|
1144
|
+
additionalProperties: true
|
|
1145
|
+
duration:
|
|
1146
|
+
type: integer
|
|
1147
|
+
description: Processing time in milliseconds.
|
|
1148
|
+
dataRecordTraceKeys:
|
|
1149
|
+
type: array
|
|
1150
|
+
items:
|
|
1151
|
+
type:
|
|
1152
|
+
- string
|
|
1153
|
+
- 'null'
|
|
1154
|
+
description: |-
|
|
1155
|
+
Trace keys for each output record (nullable entries). Omitted
|
|
1156
|
+
when `groupByFields` is used.
|
|
1157
|
+
traceKeysDuplicate:
|
|
1158
|
+
type: boolean
|
|
1159
|
+
description: |-
|
|
1160
|
+
Whether any duplicate trace keys were detected. Omitted when
|
|
1161
|
+
`groupByFields` is used.
|
|
1162
|
+
GeneratorResponse:
|
|
1163
|
+
type: object
|
|
1164
|
+
description: Response from a generator processor (`csvDataGenerator`, `structuredFileGenerator`).
|
|
1165
|
+
properties:
|
|
1166
|
+
mediaType:
|
|
1167
|
+
type: string
|
|
1168
|
+
description: Always `text` for generator processors.
|
|
1169
|
+
enum:
|
|
1170
|
+
- text
|
|
1171
|
+
x-enumDescriptions:
|
|
1172
|
+
text: Response data is formatted as plain text.
|
|
1173
|
+
data:
|
|
1174
|
+
type: string
|
|
1175
|
+
description: Generated text output (CSV, EDI, or other structured format).
|
|
1176
|
+
duration:
|
|
1177
|
+
type: integer
|
|
1178
|
+
description: Processing time in milliseconds.
|
|
1179
|
+
StructuredFileParserResponse:
|
|
1180
|
+
type: object
|
|
1181
|
+
description: Response from the `structuredFileParser` processor.
|
|
1182
|
+
properties:
|
|
1183
|
+
mediaType:
|
|
1184
|
+
type: string
|
|
1185
|
+
description: Always `json` for the structured file parser.
|
|
1186
|
+
enum:
|
|
1187
|
+
- json
|
|
1188
|
+
x-enumDescriptions:
|
|
1189
|
+
json: Response data is formatted as JSON.
|
|
1190
|
+
data:
|
|
1191
|
+
type: array
|
|
1192
|
+
items:
|
|
1193
|
+
type: object
|
|
1194
|
+
additionalProperties: true
|
|
1195
|
+
description: Parsed records from the structured file.
|
|
1196
|
+
recordLevelErrors:
|
|
1197
|
+
type: array
|
|
1198
|
+
items:
|
|
1199
|
+
type: object
|
|
1200
|
+
additionalProperties: true
|
|
1201
|
+
description: |-
|
|
1202
|
+
Per-record errors encountered during parsing (e.g. missing required
|
|
1203
|
+
segments or element validation failures).
|
|
1204
|
+
duration:
|
|
1205
|
+
type: integer
|
|
1206
|
+
description: Processing time in milliseconds.
|
|
1207
|
+
dataRecordTraceKeys:
|
|
1208
|
+
type: array
|
|
1209
|
+
items:
|
|
1210
|
+
type:
|
|
1211
|
+
- string
|
|
1212
|
+
- 'null'
|
|
1213
|
+
description: Trace keys for each output record (nullable entries).
|
|
1214
|
+
traceKeysDuplicate:
|
|
1215
|
+
type: boolean
|
|
1216
|
+
description: When true, duplicate trace keys were detected in the output records.
|
|
1217
|
+
responses:
|
|
1218
|
+
401-unauthorized:
|
|
1219
|
+
description: |-
|
|
1220
|
+
Unauthorized. The request lacks a valid bearer token, or the provided token
|
|
1221
|
+
failed to authenticate.
|
|
1222
|
+
|
|
1223
|
+
Note: the 401 response is produced by the auth middleware **before** the
|
|
1224
|
+
request reaches the endpoint handler, so it does **not** follow the
|
|
1225
|
+
standard `{errors: [...]}` envelope. Instead the body is a bare
|
|
1226
|
+
`{message: string}` object with no `code`, no `errors` array. Callers
|
|
1227
|
+
handling 401s should key off the HTTP status and the `message` string,
|
|
1228
|
+
not try to destructure an `errors[]`.
|
|
1229
|
+
content:
|
|
1230
|
+
application/json:
|
|
1231
|
+
schema:
|
|
1232
|
+
type: object
|
|
1233
|
+
properties:
|
|
1234
|
+
message:
|
|
1235
|
+
type: string
|
|
1236
|
+
description: |-
|
|
1237
|
+
Human-readable description of the auth failure. Known values:
|
|
1238
|
+
- `"Unauthorized"` — no `Authorization` header on the request.
|
|
1239
|
+
- `"Bearer Authentication Failed"` — header present but token
|
|
1240
|
+
is invalid, revoked, or expired.
|
|
1241
|
+
required:
|
|
1242
|
+
- message
|
|
1243
|
+
examples:
|
|
1244
|
+
missing_token:
|
|
1245
|
+
summary: No Authorization header sent
|
|
1246
|
+
value:
|
|
1247
|
+
message: Unauthorized
|
|
1248
|
+
invalid_token:
|
|
1249
|
+
summary: Bearer token invalid or revoked
|
|
1250
|
+
value:
|
|
1251
|
+
message: Bearer Authentication Failed
|
|
1252
|
+
x-enable-proxy: true
|
|
1253
|
+
x-internal: false
|