@celigo/api-specs 0.2.27 → 0.2.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bartendertemplate.yml +508 -0
- package/dist/connection.yml +103 -1
- package/dist/export.yml +114 -26
- package/dist/import.yml +59 -5
- package/dist/tool.yml +139 -14
- package/package.json +1 -1
- package/schemas.json +566 -551
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
openapi: 3.2.0
|
|
2
|
+
info:
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
title: BarTender Templates
|
|
5
|
+
description: API for listing and downloading Celigo-published BarTender label templates used by EDI label-printing flows.
|
|
6
|
+
x-celigo-ai-guidance:
|
|
7
|
+
- |-
|
|
8
|
+
Call `GET /v1/bartenderTemplates` first — that returns unique published
|
|
9
|
+
`names` only. Then call `GET /v1/bartenderTemplates?name=<selected>` to
|
|
10
|
+
load `s3Key` values and `fieldMappings` for the chosen templates. Download
|
|
11
|
+
a `.btw` with `GET /v1/bartenderTemplates/{name}/download`. Requires EDI
|
|
12
|
+
and EDI label-printing entitlements; returns 422
|
|
13
|
+
`edi_subscription_required` when either is missing and a bare 404 (empty
|
|
14
|
+
body) when the global label-printing kill switch is active.
|
|
15
|
+
servers:
|
|
16
|
+
- url: https://api.integrator.io
|
|
17
|
+
description: Production (US / default region)
|
|
18
|
+
- url: https://api.eu.integrator.io
|
|
19
|
+
description: Production (EU region)
|
|
20
|
+
- url: https://api.au.integrator.io
|
|
21
|
+
description: Production (AU region)
|
|
22
|
+
- url: https://api.ca.integrator.io
|
|
23
|
+
description: Production (CA region)
|
|
24
|
+
security:
|
|
25
|
+
- bearerAuth: []
|
|
26
|
+
tags:
|
|
27
|
+
- name: BarTender Templates
|
|
28
|
+
description: |-
|
|
29
|
+
Celigo-published BarTender (`.btw`) label templates synced daily from
|
|
30
|
+
BarTender Cloud. List unique names, load selected template details and
|
|
31
|
+
lookup-cache field mappings, or download a published `.btw`.
|
|
32
|
+
|
|
33
|
+
Requires a standard integrator.io JWT with manage or monitor role, plus
|
|
34
|
+
EDI and EDI label-printing entitlements on the account.
|
|
35
|
+
|
|
36
|
+
## BarTender template schemas
|
|
37
|
+
|
|
38
|
+
{% openapi-schemas spec="bartendertemplate" schemas="BarTenderTemplateCatalog,BarTenderTemplate,BarTenderFieldMapping" grouped="true" %}
|
|
39
|
+
paths:
|
|
40
|
+
/v1/bartenderTemplates:
|
|
41
|
+
get:
|
|
42
|
+
x-internal: false
|
|
43
|
+
operationId: listBarTenderTemplates
|
|
44
|
+
tags:
|
|
45
|
+
- BarTender Templates
|
|
46
|
+
summary: List BarTender label templates
|
|
47
|
+
description: |-
|
|
48
|
+
Returns Celigo-published BarTender catalog data. The catalog is read from
|
|
49
|
+
S3 (`catalog.json`, written by the daily sync cron) and cached in-process.
|
|
50
|
+
|
|
51
|
+
Omit `name` to get unique published template names (sorted). Pass one or
|
|
52
|
+
more `name` values to get matching templates and lookup-cache field
|
|
53
|
+
mappings plus the catalog `syncedAt`.
|
|
54
|
+
|
|
55
|
+
`name` accepts a comma-separated list or repeated query parameters.
|
|
56
|
+
Matching is case-sensitive and also treats pipe-separated tokens as
|
|
57
|
+
aliases (`amazon | 133` matches `amazon` or `133`). Unknown names return
|
|
58
|
+
empty `templates` and `fieldMappings` — not 404. `limit`, `page`, and
|
|
59
|
+
`search` are ignored.
|
|
60
|
+
parameters:
|
|
61
|
+
- name: name
|
|
62
|
+
in: query
|
|
63
|
+
required: false
|
|
64
|
+
description: |-
|
|
65
|
+
Filter to these published template names. Comma-separated or
|
|
66
|
+
repeated (`?name=amazon&name=walmart`). When omitted or empty, the
|
|
67
|
+
response is `{ names }` only.
|
|
68
|
+
schema:
|
|
69
|
+
type: string
|
|
70
|
+
examples:
|
|
71
|
+
- amazon
|
|
72
|
+
- amazon,walmart
|
|
73
|
+
responses:
|
|
74
|
+
'200':
|
|
75
|
+
description: |-
|
|
76
|
+
Unique names when `name` is omitted; filtered catalog details when
|
|
77
|
+
`name` is provided.
|
|
78
|
+
content:
|
|
79
|
+
application/json:
|
|
80
|
+
schema:
|
|
81
|
+
$ref: '#/components/schemas/BarTenderTemplateCatalog'
|
|
82
|
+
examples:
|
|
83
|
+
names:
|
|
84
|
+
summary: Unique published names (no name query)
|
|
85
|
+
value:
|
|
86
|
+
names:
|
|
87
|
+
- amazon
|
|
88
|
+
- walmart
|
|
89
|
+
details:
|
|
90
|
+
summary: Filtered templates and field mappings
|
|
91
|
+
value:
|
|
92
|
+
syncedAt: '2026-07-10T02:15:00.000Z'
|
|
93
|
+
templates:
|
|
94
|
+
- name: amazon
|
|
95
|
+
s3Key: EDI_BarTender_Templates/templates/FI!1.0!1!0f1c545d-1b36-49af-8e1f-5ce7e8ba43ec.btw
|
|
96
|
+
fieldMappings:
|
|
97
|
+
- key: amazon
|
|
98
|
+
value:
|
|
99
|
+
configurations:
|
|
100
|
+
PACK|*:
|
|
101
|
+
templateName: AMAZON_US_RETAIL_CARTON
|
|
102
|
+
- key: amazon | 133
|
|
103
|
+
value:
|
|
104
|
+
configurations:
|
|
105
|
+
PALLET|*:
|
|
106
|
+
templateName: AMAZON_US_RETAIL_PALLET
|
|
107
|
+
empty_names:
|
|
108
|
+
summary: Catalog has no published templates
|
|
109
|
+
value:
|
|
110
|
+
names: []
|
|
111
|
+
'401':
|
|
112
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
113
|
+
'404':
|
|
114
|
+
description: |-
|
|
115
|
+
The global BarTender label-printing kill switch
|
|
116
|
+
(`BARTENDER_LABEL_PRINTING_DISABLED`) is active. The route responds
|
|
117
|
+
with a bare `404` and an empty body so the feature appears unavailable.
|
|
118
|
+
'422':
|
|
119
|
+
description: |-
|
|
120
|
+
The account lacks a required EDI entitlement. Missing `edi.enabled` or
|
|
121
|
+
`edi.labelPrinting.enabled` both return the same
|
|
122
|
+
`edi_subscription_required` error — the route reuses the standard EDI
|
|
123
|
+
license gate used by other B2B Manager endpoints.
|
|
124
|
+
content:
|
|
125
|
+
application/json:
|
|
126
|
+
schema:
|
|
127
|
+
$ref: '#/components/schemas/Error'
|
|
128
|
+
examples:
|
|
129
|
+
edi_not_enabled:
|
|
130
|
+
summary: EDI is not enabled on the account
|
|
131
|
+
value:
|
|
132
|
+
errors:
|
|
133
|
+
- code: edi_subscription_required
|
|
134
|
+
message: EDI is a premium feature that is not included in your account's current subscription plan. Please upgrade your account to get access to B2B Manager.
|
|
135
|
+
label_printing_not_enabled:
|
|
136
|
+
summary: EDI label printing is not enabled on the account
|
|
137
|
+
value:
|
|
138
|
+
errors:
|
|
139
|
+
- code: edi_subscription_required
|
|
140
|
+
message: EDI is a premium feature that is not included in your account's current subscription plan. Please upgrade your account to get access to B2B Manager.
|
|
141
|
+
'502':
|
|
142
|
+
description: |-
|
|
143
|
+
The catalog could not be read from S3 or the stored `catalog.json` is
|
|
144
|
+
malformed.
|
|
145
|
+
content:
|
|
146
|
+
application/json:
|
|
147
|
+
schema:
|
|
148
|
+
$ref: '#/components/schemas/Error'
|
|
149
|
+
examples:
|
|
150
|
+
catalog_unavailable:
|
|
151
|
+
summary: S3 read or parse failure
|
|
152
|
+
value:
|
|
153
|
+
errors:
|
|
154
|
+
- code: BARTENDER_CATALOG_UNAVAILABLE
|
|
155
|
+
message: The BarTender template catalog is temporarily unavailable. Please try again later.
|
|
156
|
+
'503':
|
|
157
|
+
description: |-
|
|
158
|
+
The catalog has never been published for this environment, or the
|
|
159
|
+
EDI license check could not be completed.
|
|
160
|
+
content:
|
|
161
|
+
application/json:
|
|
162
|
+
schema:
|
|
163
|
+
$ref: '#/components/schemas/Error'
|
|
164
|
+
examples:
|
|
165
|
+
catalog_not_initialized:
|
|
166
|
+
summary: Catalog not yet synced
|
|
167
|
+
value:
|
|
168
|
+
errors:
|
|
169
|
+
- code: BARTENDER_CATALOG_NOT_INITIALIZED
|
|
170
|
+
message: The BarTender template catalog has not been published yet. Please try again later.
|
|
171
|
+
license_check_failed:
|
|
172
|
+
summary: EDI license lookup failed
|
|
173
|
+
value:
|
|
174
|
+
errors:
|
|
175
|
+
- code: edi_license_check_failed
|
|
176
|
+
message: We're unable to verify your EDI license at the moment. Please contact support if the issue persists.
|
|
177
|
+
/v1/bartenderTemplates/{name}/download:
|
|
178
|
+
get:
|
|
179
|
+
x-internal: false
|
|
180
|
+
operationId: downloadBarTenderTemplate
|
|
181
|
+
tags:
|
|
182
|
+
- BarTender Templates
|
|
183
|
+
summary: Download a BarTender label template
|
|
184
|
+
description: |-
|
|
185
|
+
Returns the published `.btw` binary for the named template.
|
|
186
|
+
|
|
187
|
+
`name` must match a published catalog entry exactly — pipe-token alias
|
|
188
|
+
matching from the list route is not applied here. The file is streamed
|
|
189
|
+
as `application/octet-stream` with `Content-Disposition: attachment`.
|
|
190
|
+
x-celigo-ai-guidance:
|
|
191
|
+
- |-
|
|
192
|
+
The name check runs before the catalog lookup, so a published name that
|
|
193
|
+
contains characters outside `[A-Za-z0-9._ -]` (parentheses, for example)
|
|
194
|
+
appears in the list response but answers 400
|
|
195
|
+
BARTENDER_TEMPLATE_INVALID_NAME here and cannot be downloaded through this
|
|
196
|
+
route. Live-verified 2026-09-18.
|
|
197
|
+
parameters:
|
|
198
|
+
- name: name
|
|
199
|
+
in: path
|
|
200
|
+
required: true
|
|
201
|
+
description: |-
|
|
202
|
+
Published template name from `GET /v1/bartenderTemplates`. Allowed
|
|
203
|
+
characters are letters, digits, period, underscore, space, and
|
|
204
|
+
hyphen; `..` is rejected.
|
|
205
|
+
schema:
|
|
206
|
+
type: string
|
|
207
|
+
pattern: ^[A-Za-z0-9._ -]+$
|
|
208
|
+
examples:
|
|
209
|
+
- amazon
|
|
210
|
+
responses:
|
|
211
|
+
'200':
|
|
212
|
+
description: Published `.btw` binary.
|
|
213
|
+
headers:
|
|
214
|
+
Content-Disposition:
|
|
215
|
+
description: |-
|
|
216
|
+
Attachment filename taken from the template object's basename
|
|
217
|
+
(the `.btw` file name).
|
|
218
|
+
schema:
|
|
219
|
+
type: string
|
|
220
|
+
examples:
|
|
221
|
+
- attachment; filename="FI!1.0!1!0f1c545d-1b36-49af-8e1f-5ce7e8ba43ec.btw"
|
|
222
|
+
content:
|
|
223
|
+
application/octet-stream:
|
|
224
|
+
schema:
|
|
225
|
+
type: string
|
|
226
|
+
format: binary
|
|
227
|
+
'400':
|
|
228
|
+
description: |-
|
|
229
|
+
`name` is empty or contains characters outside
|
|
230
|
+
`[A-Za-z0-9._ -]`, or includes `..`.
|
|
231
|
+
content:
|
|
232
|
+
application/json:
|
|
233
|
+
schema:
|
|
234
|
+
$ref: '#/components/schemas/Error'
|
|
235
|
+
examples:
|
|
236
|
+
invalid_name:
|
|
237
|
+
value:
|
|
238
|
+
errors:
|
|
239
|
+
- code: BARTENDER_TEMPLATE_INVALID_NAME
|
|
240
|
+
message: The BarTender template name is invalid.
|
|
241
|
+
'401':
|
|
242
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
243
|
+
'404':
|
|
244
|
+
description: |-
|
|
245
|
+
The template is not in the published catalog, or the global
|
|
246
|
+
label-printing kill switch is active (bare `404`, empty body).
|
|
247
|
+
content:
|
|
248
|
+
application/json:
|
|
249
|
+
schema:
|
|
250
|
+
$ref: '#/components/schemas/Error'
|
|
251
|
+
examples:
|
|
252
|
+
not_found:
|
|
253
|
+
summary: Name is not a published template
|
|
254
|
+
value:
|
|
255
|
+
errors:
|
|
256
|
+
- code: BARTENDER_TEMPLATE_NOT_FOUND
|
|
257
|
+
message: The requested BarTender template was not found in the published catalog.
|
|
258
|
+
'422':
|
|
259
|
+
description: |-
|
|
260
|
+
The account lacks a required EDI entitlement. Missing `edi.enabled` or
|
|
261
|
+
`edi.labelPrinting.enabled` both return `edi_subscription_required`.
|
|
262
|
+
content:
|
|
263
|
+
application/json:
|
|
264
|
+
schema:
|
|
265
|
+
$ref: '#/components/schemas/Error'
|
|
266
|
+
examples:
|
|
267
|
+
edi_subscription_required:
|
|
268
|
+
value:
|
|
269
|
+
errors:
|
|
270
|
+
- code: edi_subscription_required
|
|
271
|
+
message: EDI is a premium feature that is not included in your account's current subscription plan. Please upgrade your account to get access to B2B Manager.
|
|
272
|
+
'502':
|
|
273
|
+
description: |-
|
|
274
|
+
The catalog could not be read, or the `.btw` object could not be
|
|
275
|
+
fetched from S3.
|
|
276
|
+
content:
|
|
277
|
+
application/json:
|
|
278
|
+
schema:
|
|
279
|
+
$ref: '#/components/schemas/Error'
|
|
280
|
+
examples:
|
|
281
|
+
catalog_unavailable:
|
|
282
|
+
summary: Catalog read or parse failure
|
|
283
|
+
value:
|
|
284
|
+
errors:
|
|
285
|
+
- code: BARTENDER_CATALOG_UNAVAILABLE
|
|
286
|
+
message: The BarTender template catalog is temporarily unavailable. Please try again later.
|
|
287
|
+
download_failed:
|
|
288
|
+
summary: Template object read failure
|
|
289
|
+
value:
|
|
290
|
+
errors:
|
|
291
|
+
- code: BARTENDER_TEMPLATE_DOWNLOAD_FAILED
|
|
292
|
+
message: The BarTender template file is temporarily unavailable. Please try again later.
|
|
293
|
+
'503':
|
|
294
|
+
description: |-
|
|
295
|
+
The catalog has never been published for this environment, or the
|
|
296
|
+
EDI license check could not be completed.
|
|
297
|
+
content:
|
|
298
|
+
application/json:
|
|
299
|
+
schema:
|
|
300
|
+
$ref: '#/components/schemas/Error'
|
|
301
|
+
examples:
|
|
302
|
+
catalog_not_initialized:
|
|
303
|
+
summary: Catalog not yet synced
|
|
304
|
+
value:
|
|
305
|
+
errors:
|
|
306
|
+
- code: BARTENDER_CATALOG_NOT_INITIALIZED
|
|
307
|
+
message: The BarTender template catalog has not been published yet. Please try again later.
|
|
308
|
+
license_check_failed:
|
|
309
|
+
summary: EDI license lookup failed
|
|
310
|
+
value:
|
|
311
|
+
errors:
|
|
312
|
+
- code: edi_license_check_failed
|
|
313
|
+
message: We're unable to verify your EDI license at the moment. Please contact support if the issue persists.
|
|
314
|
+
components:
|
|
315
|
+
securitySchemes:
|
|
316
|
+
bearerAuth:
|
|
317
|
+
type: http
|
|
318
|
+
scheme: bearer
|
|
319
|
+
schemas:
|
|
320
|
+
BarTenderTemplate:
|
|
321
|
+
type: object
|
|
322
|
+
description: |-
|
|
323
|
+
One published BarTender label template. Internal catalog fields (`id`,
|
|
324
|
+
`btChecksum`, `modifiedDateTime`, `version`) are not exposed — only `name`
|
|
325
|
+
and `s3Key` are returned.
|
|
326
|
+
required:
|
|
327
|
+
- name
|
|
328
|
+
- s3Key
|
|
329
|
+
properties:
|
|
330
|
+
name:
|
|
331
|
+
type: string
|
|
332
|
+
description: |-
|
|
333
|
+
Published display name, derived from the `.btw` file stem
|
|
334
|
+
(`amazon.btw` → `"amazon"`). Use this value in the `name` query
|
|
335
|
+
parameter and in `GET /v1/bartenderTemplates/{name}/download`.
|
|
336
|
+
examples:
|
|
337
|
+
- amazon
|
|
338
|
+
s3Key:
|
|
339
|
+
type: string
|
|
340
|
+
description: |-
|
|
341
|
+
Object key for the `.btw` binary in the UI-resources bucket. Pass this
|
|
342
|
+
to the downstream S3 export step that pushes the template to the
|
|
343
|
+
customer's BarTender environment.
|
|
344
|
+
examples:
|
|
345
|
+
- EDI_BarTender_Templates/templates/FI!1.0!1!0f1c545d-1b36-49af-8e1f-5ce7e8ba43ec.btw
|
|
346
|
+
BarTenderFieldMapping:
|
|
347
|
+
type: object
|
|
348
|
+
description: |-
|
|
349
|
+
One lookup-cache field mapping from the published catalog. Keys often
|
|
350
|
+
name a template (or a pipe-separated alias such as `amazon | 133`);
|
|
351
|
+
values keep whatever JSON shape the master cache stored.
|
|
352
|
+
required:
|
|
353
|
+
- key
|
|
354
|
+
- value
|
|
355
|
+
properties:
|
|
356
|
+
key:
|
|
357
|
+
type: string
|
|
358
|
+
description: |-
|
|
359
|
+
Mapping key. Filtered with the same case-sensitive exact / pipe-token
|
|
360
|
+
match as template `name` when `name` is supplied on the list route.
|
|
361
|
+
examples:
|
|
362
|
+
- amazon
|
|
363
|
+
- amazon | 133
|
|
364
|
+
- carrier
|
|
365
|
+
value:
|
|
366
|
+
description: |-
|
|
367
|
+
Mapping value from the master lookup cache. May be a string or an
|
|
368
|
+
object; consumers should check the runtime type before use.
|
|
369
|
+
oneOf:
|
|
370
|
+
- title: String value
|
|
371
|
+
type: string
|
|
372
|
+
- title: Object value
|
|
373
|
+
type: object
|
|
374
|
+
additionalProperties: true
|
|
375
|
+
examples:
|
|
376
|
+
- UPS
|
|
377
|
+
- configurations:
|
|
378
|
+
PACK|*:
|
|
379
|
+
templateName: AMAZON_US_RETAIL_CARTON
|
|
380
|
+
BarTenderTemplateCatalog:
|
|
381
|
+
type: object
|
|
382
|
+
description: |-
|
|
383
|
+
Response from `GET /v1/bartenderTemplates`. When `name` is omitted the
|
|
384
|
+
body is `{ names }`. When `name` is provided the body is
|
|
385
|
+
`{ syncedAt, templates, fieldMappings }` for the matching entries.
|
|
386
|
+
properties:
|
|
387
|
+
names:
|
|
388
|
+
type: array
|
|
389
|
+
description: |-
|
|
390
|
+
Unique published template names, sorted. Present when `name` is
|
|
391
|
+
omitted. An empty catalog returns `[]`.
|
|
392
|
+
items:
|
|
393
|
+
type: string
|
|
394
|
+
examples:
|
|
395
|
+
- - amazon
|
|
396
|
+
- walmart
|
|
397
|
+
syncedAt:
|
|
398
|
+
type: string
|
|
399
|
+
format: date-time
|
|
400
|
+
description: |-
|
|
401
|
+
UTC timestamp of the last successful catalog sync. Present when
|
|
402
|
+
`name` is provided.
|
|
403
|
+
examples:
|
|
404
|
+
- '2026-07-10T02:15:00.000Z'
|
|
405
|
+
templates:
|
|
406
|
+
type: array
|
|
407
|
+
description: |-
|
|
408
|
+
Published templates whose `name` matches any requested `name` value.
|
|
409
|
+
Present when `name` is provided. Unknown names yield an empty array,
|
|
410
|
+
not a 404.
|
|
411
|
+
items:
|
|
412
|
+
$ref: '#/components/schemas/BarTenderTemplate'
|
|
413
|
+
fieldMappings:
|
|
414
|
+
type: array
|
|
415
|
+
description: |-
|
|
416
|
+
Published lookup-cache mappings whose `key` matches any requested
|
|
417
|
+
`name` value. Present when `name` is provided. A catalog that predates
|
|
418
|
+
field-mapping sync returns `[]`.
|
|
419
|
+
items:
|
|
420
|
+
$ref: '#/components/schemas/BarTenderFieldMapping'
|
|
421
|
+
if:
|
|
422
|
+
required:
|
|
423
|
+
- names
|
|
424
|
+
then:
|
|
425
|
+
required:
|
|
426
|
+
- names
|
|
427
|
+
else:
|
|
428
|
+
required:
|
|
429
|
+
- syncedAt
|
|
430
|
+
- templates
|
|
431
|
+
- fieldMappings
|
|
432
|
+
Error:
|
|
433
|
+
type: object
|
|
434
|
+
description: Standard error response envelope returned by integrator.io APIs.
|
|
435
|
+
properties:
|
|
436
|
+
errors:
|
|
437
|
+
type: array
|
|
438
|
+
description: List of errors that occurred while processing the request.
|
|
439
|
+
items:
|
|
440
|
+
type: object
|
|
441
|
+
properties:
|
|
442
|
+
code:
|
|
443
|
+
oneOf:
|
|
444
|
+
- type: string
|
|
445
|
+
- type: integer
|
|
446
|
+
description: |-
|
|
447
|
+
Machine-readable error code. Usually a string like
|
|
448
|
+
`invalid_ref`, `missing_required_field`, or `unauthorized`;
|
|
449
|
+
may be an **integer** when the error mirrors an upstream HTTP
|
|
450
|
+
status (e.g. `500`) — most commonly returned by connection-ping
|
|
451
|
+
and adaptor-proxy responses.
|
|
452
|
+
message:
|
|
453
|
+
type: string
|
|
454
|
+
description: Human-readable description of the error.
|
|
455
|
+
field:
|
|
456
|
+
type: string
|
|
457
|
+
description: |-
|
|
458
|
+
Optional pointer to the document field that caused the error.
|
|
459
|
+
Used by structural validation errors (`missing_required_field`,
|
|
460
|
+
`invalid_ref`) to indicate which field is at fault
|
|
461
|
+
(e.g. `_id`, `type`, `http.baseURI`).
|
|
462
|
+
source:
|
|
463
|
+
type: string
|
|
464
|
+
description: |-
|
|
465
|
+
Optional origin layer for the error — e.g. `application` when
|
|
466
|
+
the error came from the remote system the adaptor called,
|
|
467
|
+
`connector` when the adaptor itself rejected the request.
|
|
468
|
+
required:
|
|
469
|
+
- message
|
|
470
|
+
required:
|
|
471
|
+
- errors
|
|
472
|
+
responses:
|
|
473
|
+
401-unauthorized:
|
|
474
|
+
description: |-
|
|
475
|
+
Unauthorized. The request lacks a valid bearer token, or the provided token
|
|
476
|
+
failed to authenticate.
|
|
477
|
+
|
|
478
|
+
Note: the 401 response is produced by the auth middleware **before** the
|
|
479
|
+
request reaches the endpoint handler, so it does **not** follow the
|
|
480
|
+
standard `{errors: [...]}` envelope. Instead the body is a bare
|
|
481
|
+
`{message: string}` object with no `code`, no `errors` array. Callers
|
|
482
|
+
handling 401s should key off the HTTP status and the `message` string,
|
|
483
|
+
not try to destructure an `errors[]`.
|
|
484
|
+
content:
|
|
485
|
+
application/json:
|
|
486
|
+
schema:
|
|
487
|
+
type: object
|
|
488
|
+
properties:
|
|
489
|
+
message:
|
|
490
|
+
type: string
|
|
491
|
+
description: |-
|
|
492
|
+
Human-readable description of the auth failure. Known values:
|
|
493
|
+
- `"Unauthorized"` — no `Authorization` header on the request.
|
|
494
|
+
- `"Bearer Authentication Failed"` — header present but token
|
|
495
|
+
is invalid, revoked, or expired.
|
|
496
|
+
required:
|
|
497
|
+
- message
|
|
498
|
+
examples:
|
|
499
|
+
missing_token:
|
|
500
|
+
summary: No Authorization header sent
|
|
501
|
+
value:
|
|
502
|
+
message: Unauthorized
|
|
503
|
+
invalid_token:
|
|
504
|
+
summary: Bearer token invalid or revoked
|
|
505
|
+
value:
|
|
506
|
+
message: Bearer Authentication Failed
|
|
507
|
+
x-enable-proxy: true
|
|
508
|
+
x-internal: false
|
package/dist/connection.yml
CHANGED
|
@@ -1828,6 +1828,91 @@ paths:
|
|
|
1828
1828
|
- 64ff4b21612a134bd2f45534
|
|
1829
1829
|
'401':
|
|
1830
1830
|
$ref: '#/components/responses/401-unauthorized'
|
|
1831
|
+
/v1/connections/{_id}/distributedApps:
|
|
1832
|
+
get:
|
|
1833
|
+
x-internal: false
|
|
1834
|
+
summary: Check the Celigo SuiteApp and bundle on a NetSuite connection
|
|
1835
|
+
description: |-
|
|
1836
|
+
Reports, live from the connected NetSuite account, whether the Celigo integrator.io SuiteApp
|
|
1837
|
+
(SuiteScript 2.x) and the legacy Celigo bundle are installed — the check the UI runs before
|
|
1838
|
+
offering a NetSuite API version that depends on either. Round-trips to NetSuite, so expect a
|
|
1839
|
+
few seconds. Only connections of type `netsuite` are accepted.
|
|
1840
|
+
|
|
1841
|
+
Use this instead of the connection's `netsuite.suiteAppInstalled`, which reflects only the
|
|
1842
|
+
SuiteApp as detected the last time the connection authenticated.
|
|
1843
|
+
operationId: getConnectionDistributedApps
|
|
1844
|
+
tags:
|
|
1845
|
+
- Connections
|
|
1846
|
+
parameters:
|
|
1847
|
+
- in: path
|
|
1848
|
+
name: _id
|
|
1849
|
+
required: true
|
|
1850
|
+
schema:
|
|
1851
|
+
type: string
|
|
1852
|
+
format: objectId
|
|
1853
|
+
x-celigo-refModel: connections
|
|
1854
|
+
description: NetSuite connection to check.
|
|
1855
|
+
responses:
|
|
1856
|
+
'200':
|
|
1857
|
+
description: Installation state of each component.
|
|
1858
|
+
content:
|
|
1859
|
+
application/json:
|
|
1860
|
+
schema:
|
|
1861
|
+
type: object
|
|
1862
|
+
required:
|
|
1863
|
+
- bundle
|
|
1864
|
+
- suiteapp
|
|
1865
|
+
properties:
|
|
1866
|
+
bundle:
|
|
1867
|
+
description: The legacy Celigo integrator.io bundle (SuiteScript 1.0).
|
|
1868
|
+
allOf:
|
|
1869
|
+
- $ref: '#/components/schemas/DistributedAppStatus'
|
|
1870
|
+
suiteapp:
|
|
1871
|
+
description: The Celigo integrator.io SuiteApp (SuiteScript 2.x).
|
|
1872
|
+
allOf:
|
|
1873
|
+
- $ref: '#/components/schemas/DistributedAppStatus'
|
|
1874
|
+
examples:
|
|
1875
|
+
both_installed:
|
|
1876
|
+
summary: SuiteApp and bundle both present
|
|
1877
|
+
value:
|
|
1878
|
+
bundle:
|
|
1879
|
+
success: true
|
|
1880
|
+
suiteapp:
|
|
1881
|
+
success: true
|
|
1882
|
+
'401':
|
|
1883
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1884
|
+
'404':
|
|
1885
|
+
description: No connection found for the given `_id`.
|
|
1886
|
+
content:
|
|
1887
|
+
application/json:
|
|
1888
|
+
schema:
|
|
1889
|
+
$ref: '#/components/schemas/Error'
|
|
1890
|
+
examples:
|
|
1891
|
+
invalid_ref:
|
|
1892
|
+
value:
|
|
1893
|
+
errors:
|
|
1894
|
+
- code: invalid_ref
|
|
1895
|
+
message: Connection not found for the given id.
|
|
1896
|
+
'422':
|
|
1897
|
+
description: The connection exists but is not a NetSuite connection.
|
|
1898
|
+
content:
|
|
1899
|
+
application/json:
|
|
1900
|
+
schema:
|
|
1901
|
+
$ref: '#/components/schemas/Error'
|
|
1902
|
+
examples:
|
|
1903
|
+
invalid_connection_type:
|
|
1904
|
+
value:
|
|
1905
|
+
errors:
|
|
1906
|
+
- message: 'invalid connection type: http'
|
|
1907
|
+
x-celigo-ai-guidance:
|
|
1908
|
+
- |-
|
|
1909
|
+
Decides the NetSuite import adaptor: when `suiteapp.success` or `bundle.success` is true,
|
|
1910
|
+
author a NetSuiteDistributedImport (netsuite_da) — Celigo RESTlets; when both are false,
|
|
1911
|
+
author a NetSuiteHTTPImport (NetSuite REST APIs). Exports and lookups do not depend on this
|
|
1912
|
+
check — NetSuiteHTTPExport needs neither component.
|
|
1913
|
+
- |-
|
|
1914
|
+
A non-NetSuite connection answers 422 with the message "invalid connection type: <type>"
|
|
1915
|
+
and no `code`; an unknown `_id` answers 404 `invalid_ref`.
|
|
1831
1916
|
/v1/salesforce/metadata/connections/{_id}/sObjectTypes:
|
|
1832
1917
|
get:
|
|
1833
1918
|
x-internal: false
|
|
@@ -7315,7 +7400,11 @@ components:
|
|
|
7315
7400
|
suiteAppInstalled:
|
|
7316
7401
|
type: boolean
|
|
7317
7402
|
readOnly: true
|
|
7318
|
-
description:
|
|
7403
|
+
description: |-
|
|
7404
|
+
When true, the Celigo integrator.io SuiteApp (SuiteScript 2.x) was detected in
|
|
7405
|
+
the connected NetSuite account the last time the connection authenticated. It
|
|
7406
|
+
says nothing about the legacy Celigo bundle; for a live check of both, use
|
|
7407
|
+
`GET /v1/connections/{_id}/distributedApps`.
|
|
7319
7408
|
salesforce:
|
|
7320
7409
|
description: Present when `type` is `salesforce`.
|
|
7321
7410
|
allOf:
|
|
@@ -8463,6 +8552,19 @@ components:
|
|
|
8463
8552
|
dependencyIds:
|
|
8464
8553
|
export:
|
|
8465
8554
|
- 64ff4b21612a134bd2f45534
|
|
8555
|
+
DistributedAppStatus:
|
|
8556
|
+
type: object
|
|
8557
|
+
required:
|
|
8558
|
+
- success
|
|
8559
|
+
properties:
|
|
8560
|
+
success:
|
|
8561
|
+
type: boolean
|
|
8562
|
+
description: When true, the component is installed in the connected NetSuite account.
|
|
8563
|
+
URL:
|
|
8564
|
+
type: string
|
|
8565
|
+
description: |-
|
|
8566
|
+
Install link for the component. Absent when `success` is true; the integrator.io UI
|
|
8567
|
+
reads it to render its install prompt when the component is missing.
|
|
8466
8568
|
SObjectType:
|
|
8467
8569
|
type: object
|
|
8468
8570
|
description: |
|