@celigo/api-specs 0.2.91 → 0.2.93
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/fileserver.yml +198 -57
- package/dist/filestorage.yml +23 -4
- package/dist/subscription.yml +87 -3
- package/dist/topic.yml +5 -3
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/fileserver.yml
CHANGED
|
@@ -120,12 +120,14 @@ paths:
|
|
|
120
120
|
Enables the environment's file server — creating it, and claiming the permanent
|
|
121
121
|
`identifier`, on the first call — or disables it. The body must carry `enabled`
|
|
122
122
|
as a JSON boolean; anything else is refused rather than interpreted, because a
|
|
123
|
-
disable ends every open partner session.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
123
|
+
disable ends every open partner session. Every `enabled: true` call, including
|
|
124
|
+
one on a server that is already enabled, checks the account's Celigo Storage
|
|
125
|
+
entitlement (partner uploads land there) and returns the current `storageUsage`
|
|
126
|
+
alongside the server; `identifier` may be omitted once the server exists.
|
|
127
|
+
Disabling keeps the identifier and every account, refuses new logins, and ends
|
|
128
|
+
open sessions; repeating a disable is a no-op. Sandbox environments cannot
|
|
129
|
+
enable a server (403 `FILESERVER_NOT_ENTITLED`). Requires a full-access API
|
|
130
|
+
token.
|
|
129
131
|
requestBody:
|
|
130
132
|
required: true
|
|
131
133
|
content:
|
|
@@ -138,18 +140,50 @@ paths:
|
|
|
138
140
|
value:
|
|
139
141
|
enabled: true
|
|
140
142
|
identifier: acme-logistics
|
|
143
|
+
reEnable:
|
|
144
|
+
summary: Repeat enable on an existing server — identifier omitted
|
|
145
|
+
value:
|
|
146
|
+
enabled: true
|
|
141
147
|
disable:
|
|
142
148
|
summary: Disable (identifier may be echoed, never changed)
|
|
143
149
|
value:
|
|
144
150
|
enabled: false
|
|
145
151
|
responses:
|
|
146
152
|
'200':
|
|
147
|
-
description: The server after the change. Includes `storageUsage`
|
|
153
|
+
description: 'The server after the change. Includes `storageUsage` whenever `enabled: true` was sent.'
|
|
148
154
|
content:
|
|
149
155
|
application/json:
|
|
150
156
|
schema:
|
|
151
157
|
$ref: '#/components/schemas/FileServer'
|
|
152
158
|
examples:
|
|
159
|
+
enabled:
|
|
160
|
+
summary: Enabled server with the storage usage read at enable time
|
|
161
|
+
value:
|
|
162
|
+
_id: 6ab1ef197cf630a06d774cf1
|
|
163
|
+
enabled: true
|
|
164
|
+
identifier: acme-logistics
|
|
165
|
+
endpoint:
|
|
166
|
+
hostname: sftp.integrator.io
|
|
167
|
+
port: 22
|
|
168
|
+
hostKeyFingerprints:
|
|
169
|
+
- algorithm: ssh-ed25519
|
|
170
|
+
fingerprint: SHA256:iYC+28MNea2ebwWmUMdnJRx0StabV53gZBmr6pto9fs
|
|
171
|
+
- algorithm: rsa-sha2-512
|
|
172
|
+
fingerprint: SHA256:0Qy3l7fJ2Zb1n8VtY4cH6uWkPq9rS2dE5gL7mN1oT3A
|
|
173
|
+
loginFormat: <username>@acme-logistics
|
|
174
|
+
limits:
|
|
175
|
+
maxAccounts: 1000
|
|
176
|
+
maxConcurrentSessionsPerAccount: 20
|
|
177
|
+
maxFileSizeBytes: 10737418240
|
|
178
|
+
entitled: true
|
|
179
|
+
storageUsage:
|
|
180
|
+
activeUsage: 3387143
|
|
181
|
+
recycleBinUsage: 26305326
|
|
182
|
+
totalUsage: 29692469
|
|
183
|
+
maxAllowedUsage: 214748364800
|
|
184
|
+
isOverage: false
|
|
185
|
+
hardLimit: 429496729600
|
|
186
|
+
overage: 0
|
|
153
187
|
disabled:
|
|
154
188
|
summary: Disabled server
|
|
155
189
|
value:
|
|
@@ -272,18 +306,21 @@ paths:
|
|
|
272
306
|
description: |-
|
|
273
307
|
Returns the environment's partner accounts oldest first, wrapped in an
|
|
274
308
|
`accounts` array, with `overCap` computed for each against the current
|
|
275
|
-
`limits.maxAccounts`. Paging is cursor-based
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
309
|
+
`limits.maxAccounts`. Paging is cursor-based through the `Link` header, which
|
|
310
|
+
lists bare absolute URLs separated by `, ` rather than RFC 8288 `<url>; rel=`
|
|
311
|
+
pairs: a URL carrying `after` (listed first) is present when more accounts
|
|
312
|
+
follow the page, and a URL carrying `before` is present when accounts precede
|
|
313
|
+
it — so the first page offers only `after`, the last page only `before`. The
|
|
314
|
+
header is absent when every account fits in one page. Cursors are opaque —
|
|
315
|
+
pass them back exactly as received; anything else answers 400
|
|
316
|
+
`FILESERVER_INVALID_CURSOR`. Accounts stay listable after the add-on is removed
|
|
317
|
+
from the license; only writes are blocked then. Requires a full-access API
|
|
318
|
+
token and a server that has been enabled at least once.
|
|
282
319
|
parameters:
|
|
283
320
|
- name: pageSize
|
|
284
321
|
in: query
|
|
285
322
|
required: false
|
|
286
|
-
description: Accounts per page.
|
|
323
|
+
description: Accounts per page. Out-of-range and non-numeric values are not rejected — `0` and non-numbers fall back to the default.
|
|
287
324
|
schema:
|
|
288
325
|
type: integer
|
|
289
326
|
minimum: 1
|
|
@@ -294,13 +331,13 @@ paths:
|
|
|
294
331
|
- name: after
|
|
295
332
|
in: query
|
|
296
333
|
required: false
|
|
297
|
-
description: Opaque cursor from the previous page's `
|
|
334
|
+
description: Opaque cursor copied from the `after` URL in the previous page's `Link` header. Returns the accounts created after it.
|
|
298
335
|
schema:
|
|
299
336
|
type: string
|
|
300
337
|
- name: before
|
|
301
338
|
in: query
|
|
302
339
|
required: false
|
|
303
|
-
description: Opaque cursor from a page's `
|
|
340
|
+
description: Opaque cursor copied from the `before` URL in a page's `Link` header. Returns the accounts created before it. Ignored when `after` is also sent.
|
|
304
341
|
schema:
|
|
305
342
|
type: string
|
|
306
343
|
responses:
|
|
@@ -309,11 +346,15 @@ paths:
|
|
|
309
346
|
headers:
|
|
310
347
|
Link:
|
|
311
348
|
description: |-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
349
|
+
Pagination links as bare absolute URLs separated by `, ` — not the RFC 8288
|
|
350
|
+
`<url>; rel=` form. The URL carrying `after` (listed first) is present when
|
|
351
|
+
more accounts follow this page; the URL carrying `before` is present when
|
|
352
|
+
accounts precede it. Both repeat the request's `pageSize`. Absent when the
|
|
353
|
+
whole list fits in one page.
|
|
315
354
|
schema:
|
|
316
355
|
type: string
|
|
356
|
+
examples:
|
|
357
|
+
- https://api.integrator.io/v1/mft/fileserver/accounts?after=WyIyMDI2LTEwLTA3VDA2OjE5OjQzLjg4NloiLCI2YWM1ZTQ3ZjRhNzRiMzMzNDQxNzZkOTEiXQ&pageSize=100, https://api.integrator.io/v1/mft/fileserver/accounts?before=WyIyMDI2LTEwLTA3VDA2OjE5OjQzLjg4NloiLCI2YWM1ZTQ3ZjRhNzRiMzMzNDQxNzZkOTEiXQ&pageSize=100
|
|
317
358
|
content:
|
|
318
359
|
application/json:
|
|
319
360
|
schema:
|
|
@@ -333,7 +374,7 @@ paths:
|
|
|
333
374
|
username: northwind-edi
|
|
334
375
|
login: northwind-edi@acme-logistics
|
|
335
376
|
_homeFolderId: 6ab1f25daa3e7ed226ea3f25
|
|
336
|
-
homeFolderPath: Partners/Northwind/Inbound
|
|
377
|
+
homeFolderPath: /Partners/Northwind/Inbound
|
|
337
378
|
enabled: true
|
|
338
379
|
passwordSet: true
|
|
339
380
|
overCap: false
|
|
@@ -389,9 +430,11 @@ paths:
|
|
|
389
430
|
Celigo Storage home folder, and returns it (the password is never returned).
|
|
390
431
|
Checks run in order and the first failure is answered: username shape, password
|
|
391
432
|
presence, home-folder presence, the enabled-account cap, then the folder is
|
|
392
|
-
verified to be an active folder in this environment.
|
|
393
|
-
|
|
394
|
-
|
|
433
|
+
verified to be an active folder in this environment. From then on the folder
|
|
434
|
+
and every folder above it refuse `DELETE /v1/storage/items/{_id}` with 403
|
|
435
|
+
`STORAGE_SFTP_HOME_FOLDER_PROTECTED` until the account is deleted or moved.
|
|
436
|
+
Requires a full-access API token, the file server add-on on the license, and a
|
|
437
|
+
server that has been enabled at least once.
|
|
395
438
|
requestBody:
|
|
396
439
|
required: true
|
|
397
440
|
content:
|
|
@@ -418,7 +461,7 @@ paths:
|
|
|
418
461
|
username: northwind-edi
|
|
419
462
|
login: northwind-edi@acme-logistics
|
|
420
463
|
_homeFolderId: 6ab1f25daa3e7ed226ea3f25
|
|
421
|
-
homeFolderPath: Partners/Northwind/Inbound
|
|
464
|
+
homeFolderPath: /Partners/Northwind/Inbound
|
|
422
465
|
enabled: true
|
|
423
466
|
passwordSet: true
|
|
424
467
|
overCap: false
|
|
@@ -471,7 +514,8 @@ paths:
|
|
|
471
514
|
description: |-
|
|
472
515
|
The server has never been enabled (`FILESERVER_NOT_ENABLED`); `username` is
|
|
473
516
|
missing or malformed (`FILESERVER_USERNAME_INVALID`); `password` is missing
|
|
474
|
-
(`FILESERVER_LAST_CREDENTIAL`) or too weak
|
|
517
|
+
or not a string (`FILESERVER_LAST_CREDENTIAL`) or too weak
|
|
518
|
+
(`FILESERVER_WEAK_PASSWORD` — the message lists every rule broken);
|
|
475
519
|
`_homeFolderId` is missing or does not exist in this environment
|
|
476
520
|
(`FILESERVER_HOME_FOLDER_NOT_FOUND`) or is a file rather than an active folder
|
|
477
521
|
(`FILESERVER_HOME_FOLDER_NOT_FOLDER`).
|
|
@@ -490,16 +534,29 @@ paths:
|
|
|
490
534
|
errors:
|
|
491
535
|
- code: FILESERVER_LAST_CREDENTIAL
|
|
492
536
|
message: An enabled account must have a password
|
|
537
|
+
weakPassword:
|
|
538
|
+
summary: Password shorter than 12 characters
|
|
539
|
+
value:
|
|
540
|
+
errors:
|
|
541
|
+
- code: FILESERVER_WEAK_PASSWORD
|
|
542
|
+
message: "Password is too weak.\n\t1. Password must have at least 12 characters."
|
|
493
543
|
homeFolderMissing:
|
|
494
544
|
value:
|
|
495
545
|
errors:
|
|
496
546
|
- code: FILESERVER_HOME_FOLDER_NOT_FOUND
|
|
497
547
|
message: The home folder does not exist in this environment
|
|
548
|
+
homeFolderIsFile:
|
|
549
|
+
value:
|
|
550
|
+
errors:
|
|
551
|
+
- code: FILESERVER_HOME_FOLDER_NOT_FOLDER
|
|
552
|
+
message: The home folder target is not an active folder
|
|
498
553
|
'503':
|
|
499
554
|
description: |-
|
|
500
555
|
The home folder is verified against Celigo Storage at create time; when that
|
|
501
556
|
check cannot complete the create is refused with `FILESERVER_STORAGE_UNAVAILABLE`
|
|
502
|
-
and no account is made. Retry later.
|
|
557
|
+
and no account is made. Retry later. A `_homeFolderId` that is not a
|
|
558
|
+
well-formed 24-character hex id is answered this way too, not with 422 —
|
|
559
|
+
validate the id before sending.
|
|
503
560
|
content:
|
|
504
561
|
application/json:
|
|
505
562
|
schema:
|
|
@@ -538,7 +595,7 @@ paths:
|
|
|
538
595
|
username: northwind-edi
|
|
539
596
|
login: northwind-edi@acme-logistics
|
|
540
597
|
_homeFolderId: 6ab1f25daa3e7ed226ea3f25
|
|
541
|
-
homeFolderPath: Partners/Northwind/Inbound
|
|
598
|
+
homeFolderPath: /Partners/Northwind/Inbound
|
|
542
599
|
enabled: true
|
|
543
600
|
passwordSet: true
|
|
544
601
|
overCap: false
|
|
@@ -561,13 +618,15 @@ paths:
|
|
|
561
618
|
summary: Update a file server account
|
|
562
619
|
description: |-
|
|
563
620
|
Changes the fields sent and returns the account; fields left out keep their
|
|
564
|
-
values, and `{}` returns the account unchanged
|
|
565
|
-
updates `login`. Moving the home folder is verified
|
|
566
|
-
ends the account's open sessions
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
621
|
+
values, and `{}` returns the account unchanged without touching `lastModified`.
|
|
622
|
+
Renaming keeps `_id` and updates `login`. Moving the home folder is verified
|
|
623
|
+
against Celigo Storage, ends the account's open sessions (as does disabling
|
|
624
|
+
it), and shifts the delete protection from the old folder to the new one.
|
|
625
|
+
Re-enabling counts against `limits.maxAccounts` and requires a password to be
|
|
626
|
+
set. The password cannot be changed here — use
|
|
627
|
+
`POST /v1/mft/fileserver/accounts/{_id}/password`. Requires a full-access API
|
|
628
|
+
token, the file server add-on on the license, and a server that has been
|
|
629
|
+
enabled at least once.
|
|
571
630
|
parameters:
|
|
572
631
|
- $ref: '#/components/parameters/AccountId'
|
|
573
632
|
requestBody:
|
|
@@ -585,6 +644,10 @@ paths:
|
|
|
585
644
|
summary: Rename
|
|
586
645
|
value:
|
|
587
646
|
username: northwind-edi-2
|
|
647
|
+
moveHomeFolder:
|
|
648
|
+
summary: Move to another folder
|
|
649
|
+
value:
|
|
650
|
+
_homeFolderId: 6ac5e3371ddaae28c1fea86e
|
|
588
651
|
responses:
|
|
589
652
|
'200':
|
|
590
653
|
description: The account after the change.
|
|
@@ -599,7 +662,7 @@ paths:
|
|
|
599
662
|
username: northwind-edi
|
|
600
663
|
login: northwind-edi@acme-logistics
|
|
601
664
|
_homeFolderId: 6ab1f25daa3e7ed226ea3f25
|
|
602
|
-
homeFolderPath: Partners/Northwind/Inbound
|
|
665
|
+
homeFolderPath: /Partners/Northwind/Inbound
|
|
603
666
|
enabled: false
|
|
604
667
|
passwordSet: true
|
|
605
668
|
overCap: false
|
|
@@ -673,8 +736,17 @@ paths:
|
|
|
673
736
|
errors:
|
|
674
737
|
- code: FILESERVER_LAST_CREDENTIAL
|
|
675
738
|
message: An enabled account must have a password
|
|
739
|
+
homeFolderIsFile:
|
|
740
|
+
value:
|
|
741
|
+
errors:
|
|
742
|
+
- code: FILESERVER_HOME_FOLDER_NOT_FOLDER
|
|
743
|
+
message: The home folder target is not an active folder
|
|
676
744
|
'503':
|
|
677
|
-
description:
|
|
745
|
+
description: |-
|
|
746
|
+
The new home folder could not be verified against Celigo Storage
|
|
747
|
+
(`FILESERVER_STORAGE_UNAVAILABLE`); nothing changed. Retry later. A
|
|
748
|
+
`_homeFolderId` that is not a well-formed 24-character hex id is answered
|
|
749
|
+
this way too, not with 422 — validate the id before sending.
|
|
678
750
|
content:
|
|
679
751
|
application/json:
|
|
680
752
|
schema:
|
|
@@ -693,9 +765,11 @@ paths:
|
|
|
693
765
|
summary: Delete a file server account
|
|
694
766
|
description: |-
|
|
695
767
|
Permanently removes the account and ends any session it has open. The home
|
|
696
|
-
folder and its files are untouched
|
|
697
|
-
|
|
698
|
-
|
|
768
|
+
folder and its files are untouched, and the folder (with its ancestors) becomes
|
|
769
|
+
deletable again through `DELETE /v1/storage/items/{_id}`. There is no recycle
|
|
770
|
+
bin for accounts — recreate one to restore access; a repeated delete answers
|
|
771
|
+
404. Requires a full-access API token, the file server add-on on the license,
|
|
772
|
+
and a server that has been enabled at least once.
|
|
699
773
|
parameters:
|
|
700
774
|
- $ref: '#/components/parameters/AccountId'
|
|
701
775
|
responses:
|
|
@@ -922,11 +996,61 @@ components:
|
|
|
922
996
|
storageUsage:
|
|
923
997
|
type: object
|
|
924
998
|
readOnly: true
|
|
925
|
-
additionalProperties: true
|
|
926
999
|
description: |-
|
|
927
|
-
Only present on the `PUT`
|
|
928
|
-
|
|
929
|
-
|
|
1000
|
+
Only present on the response to a `PUT` with `enabled: true` — including a
|
|
1001
|
+
repeat on a server that is already enabled: the account's Celigo Storage
|
|
1002
|
+
usage exactly as `GET /v1/storage/usage` reports it, read at enable time
|
|
1003
|
+
because partner uploads land in that storage. Absent on reads.
|
|
1004
|
+
required:
|
|
1005
|
+
- activeUsage
|
|
1006
|
+
- recycleBinUsage
|
|
1007
|
+
- totalUsage
|
|
1008
|
+
- maxAllowedUsage
|
|
1009
|
+
- isOverage
|
|
1010
|
+
- hardLimit
|
|
1011
|
+
- overage
|
|
1012
|
+
properties:
|
|
1013
|
+
activeUsage:
|
|
1014
|
+
type: integer
|
|
1015
|
+
format: int64
|
|
1016
|
+
description: Bytes consumed by active and pending files.
|
|
1017
|
+
examples:
|
|
1018
|
+
- 3387143
|
|
1019
|
+
recycleBinUsage:
|
|
1020
|
+
type: integer
|
|
1021
|
+
format: int64
|
|
1022
|
+
description: Bytes consumed by soft-deleted files still retained in the recycle bin.
|
|
1023
|
+
examples:
|
|
1024
|
+
- 26305326
|
|
1025
|
+
totalUsage:
|
|
1026
|
+
type: integer
|
|
1027
|
+
format: int64
|
|
1028
|
+
description: Sum of `activeUsage` and `recycleBinUsage`; the figure checked against `hardLimit` when a partner uploads.
|
|
1029
|
+
examples:
|
|
1030
|
+
- 29692469
|
|
1031
|
+
maxAllowedUsage:
|
|
1032
|
+
type: integer
|
|
1033
|
+
format: int64
|
|
1034
|
+
description: Storage quota in bytes granted by the account's license.
|
|
1035
|
+
examples:
|
|
1036
|
+
- 214748364800
|
|
1037
|
+
isOverage:
|
|
1038
|
+
type: boolean
|
|
1039
|
+
description: When true, `totalUsage` has passed `maxAllowedUsage` and uploads are consuming the overage buffer up to `hardLimit`.
|
|
1040
|
+
examples:
|
|
1041
|
+
- false
|
|
1042
|
+
hardLimit:
|
|
1043
|
+
type: integer
|
|
1044
|
+
format: int64
|
|
1045
|
+
description: Byte ceiling at which partner uploads are rejected, as `maxAllowedUsage` plus the licensed overage buffer.
|
|
1046
|
+
examples:
|
|
1047
|
+
- 429496729600
|
|
1048
|
+
overage:
|
|
1049
|
+
type: integer
|
|
1050
|
+
format: int64
|
|
1051
|
+
description: Bytes currently consumed beyond `maxAllowedUsage`. Zero when not in overage.
|
|
1052
|
+
examples:
|
|
1053
|
+
- 0
|
|
930
1054
|
Error:
|
|
931
1055
|
type: object
|
|
932
1056
|
description: Standard error response envelope returned by integrator.io APIs.
|
|
@@ -1057,8 +1181,10 @@ components:
|
|
|
1057
1181
|
Celigo Storage folder that is the root of every session for this account —
|
|
1058
1182
|
the partner can reach nothing outside it. Must be an active folder in the same
|
|
1059
1183
|
environment; otherwise the write answers 422 `FILESERVER_HOME_FOLDER_NOT_FOUND`
|
|
1060
|
-
or `FILESERVER_HOME_FOLDER_NOT_FOLDER`.
|
|
1061
|
-
|
|
1184
|
+
or `FILESERVER_HOME_FOLDER_NOT_FOLDER`. While the account exists, this folder
|
|
1185
|
+
and every folder above it refuse `DELETE /v1/storage/items/{_id}` with 403
|
|
1186
|
+
`STORAGE_SFTP_HOME_FOLDER_PROTECTED`; renaming or moving them stays allowed.
|
|
1187
|
+
Moving an account to another folder ends its open sessions.
|
|
1062
1188
|
examples:
|
|
1063
1189
|
- 6ab1f25daa3e7ed226ea3f25
|
|
1064
1190
|
homeFolderPath:
|
|
@@ -1067,11 +1193,12 @@ components:
|
|
|
1067
1193
|
- 'null'
|
|
1068
1194
|
readOnly: true
|
|
1069
1195
|
description: |-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1196
|
+
Absolute path of `_homeFolderId` from the storage root, for display — a
|
|
1197
|
+
leading `/` then the folder names on the way down, following renames and
|
|
1198
|
+
moves of those folders. Null when the path could not be resolved for this
|
|
1199
|
+
response — the folder id is still authoritative.
|
|
1073
1200
|
examples:
|
|
1074
|
-
- Partners/Northwind/Inbound
|
|
1201
|
+
- /Partners/Northwind/Inbound
|
|
1075
1202
|
enabled:
|
|
1076
1203
|
type: boolean
|
|
1077
1204
|
description: |-
|
|
@@ -1155,8 +1282,9 @@ components:
|
|
|
1155
1282
|
description: |-
|
|
1156
1283
|
Partner's password. Needs upper- and lower-case letters, a digit, and a symbol;
|
|
1157
1284
|
anything weaker is rejected with 422 `FILESERVER_WEAK_PASSWORD` and the message
|
|
1158
|
-
|
|
1159
|
-
|
|
1285
|
+
lists every rule broken. A non-string value counts as no password at all (422
|
|
1286
|
+
`FILESERVER_LAST_CREDENTIAL`). Never returned by any route — rotate or clear it
|
|
1287
|
+
later through `POST /v1/mft/fileserver/accounts/{_id}/password`.
|
|
1160
1288
|
examples:
|
|
1161
1289
|
- Nw-Inbound-2026!x
|
|
1162
1290
|
_homeFolderId:
|
|
@@ -1166,7 +1294,9 @@ components:
|
|
|
1166
1294
|
description: |-
|
|
1167
1295
|
Celigo Storage folder that becomes the root of the partner's sessions. Must be
|
|
1168
1296
|
an active folder in this environment — create one with
|
|
1169
|
-
`POST /v1/storage/items` first.
|
|
1297
|
+
`POST /v1/storage/items` first. Once the account exists the folder and its
|
|
1298
|
+
ancestors cannot be deleted from storage until the account is deleted or
|
|
1299
|
+
moved elsewhere.
|
|
1170
1300
|
examples:
|
|
1171
1301
|
- 6ab1f25daa3e7ed226ea3f25
|
|
1172
1302
|
x-celigo-ai-guidance:
|
|
@@ -1175,6 +1305,12 @@ components:
|
|
|
1175
1305
|
FILESERVER_USERNAME_INVALID (same code as a malformed one), a missing password 422
|
|
1176
1306
|
FILESERVER_LAST_CREDENTIAL, and a missing _homeFolderId 422
|
|
1177
1307
|
FILESERVER_HOME_FOLDER_NOT_FOUND — each before anything is created.
|
|
1308
|
+
- |-
|
|
1309
|
+
Send _homeFolderId as the 24-character hex _id returned by POST /v1/storage/items. A
|
|
1310
|
+
malformed value is not a 422: it fails the storage lookup and answers 503
|
|
1311
|
+
FILESERVER_STORAGE_UNAVAILABLE "home-folder validation failed", which looks like an
|
|
1312
|
+
outage. A well-formed id that does not exist answers 422
|
|
1313
|
+
FILESERVER_HOME_FOLDER_NOT_FOUND and a file's id 422 FILESERVER_HOME_FOLDER_NOT_FOLDER.
|
|
1178
1314
|
FileServerAccountUpdateRequest:
|
|
1179
1315
|
type: object
|
|
1180
1316
|
description: |-
|
|
@@ -1194,7 +1330,12 @@ components:
|
|
|
1194
1330
|
type: string
|
|
1195
1331
|
format: objectId
|
|
1196
1332
|
x-celigo-refModel: storageitems
|
|
1197
|
-
description:
|
|
1333
|
+
description: |-
|
|
1334
|
+
Move the account to another active folder in this environment. Ends the
|
|
1335
|
+
account's open sessions, which were rooted in the old folder, and moves the
|
|
1336
|
+
storage delete protection from the old folder to the new one. The same
|
|
1337
|
+
validation and error answers apply as on create, including the 503 for a
|
|
1338
|
+
malformed id.
|
|
1198
1339
|
examples:
|
|
1199
1340
|
- 6ab1f25daa3e7ed226ea3f25
|
|
1200
1341
|
enabled:
|
|
@@ -1225,9 +1366,9 @@ components:
|
|
|
1225
1366
|
The new password, meeting the same policy as on create (422
|
|
1226
1367
|
`FILESERVER_WEAK_PASSWORD` otherwise), or `null` to remove the password —
|
|
1227
1368
|
allowed only while the account is disabled, because an enabled account must
|
|
1228
|
-
keep a credential (422 `FILESERVER_LAST_CREDENTIAL`). Any other type
|
|
1229
|
-
422 `FILESERVER_WEAK_PASSWORD` with the message "Password
|
|
1230
|
-
null to clear)."
|
|
1369
|
+
keep a credential (422 `FILESERVER_LAST_CREDENTIAL`). Any other type, or an
|
|
1370
|
+
empty body, answers 422 `FILESERVER_WEAK_PASSWORD` with the message "Password
|
|
1371
|
+
must be a string (or null to clear)."
|
|
1231
1372
|
examples:
|
|
1232
1373
|
- Nw-Inbound-2026!y
|
|
1233
1374
|
responses:
|
package/dist/filestorage.yml
CHANGED
|
@@ -1344,10 +1344,14 @@ paths:
|
|
|
1344
1344
|
for 30 days and can be restored with
|
|
1345
1345
|
`POST /v1/storage/items/{_id}/restore`. Deleting a folder also removes
|
|
1346
1346
|
its entire subtree; the folder is removed immediately and its descendants
|
|
1347
|
-
follow asynchronously. Delete is
|
|
1347
|
+
follow asynchronously. Delete is not blocked by references — flows,
|
|
1348
1348
|
exports, imports, and tokens that point at the item are left dangling and
|
|
1349
|
-
fail at runtime
|
|
1350
|
-
|
|
1349
|
+
fail at runtime — with one exception: a folder that is, or contains, the
|
|
1350
|
+
home folder of a File Server account answers 403
|
|
1351
|
+
`STORAGE_SFTP_HOME_FOLDER_PROTECTED` until that account is deleted or moved
|
|
1352
|
+
to another folder (`/v1/mft/fileserver/accounts`). Renaming or moving such
|
|
1353
|
+
a folder is still allowed. A pending multipart upload cannot be deleted
|
|
1354
|
+
here — cancel it with `POST /v1/storage/files/{_id}/cancel`.
|
|
1351
1355
|
operationId: deleteStorageItem
|
|
1352
1356
|
tags:
|
|
1353
1357
|
- File Storage
|
|
@@ -1370,7 +1374,22 @@ paths:
|
|
|
1370
1374
|
'401':
|
|
1371
1375
|
$ref: '#/components/responses/401-unauthorized'
|
|
1372
1376
|
'403':
|
|
1373
|
-
|
|
1377
|
+
description: |-
|
|
1378
|
+
The caller lacks permission for this item, or the folder is (or
|
|
1379
|
+
contains) a File Server account's home folder. Error code:
|
|
1380
|
+
`STORAGE_SFTP_HOME_FOLDER_PROTECTED` for the latter — delete or move
|
|
1381
|
+
the account first.
|
|
1382
|
+
content:
|
|
1383
|
+
application/json:
|
|
1384
|
+
schema:
|
|
1385
|
+
$ref: '#/components/schemas/Error'
|
|
1386
|
+
examples:
|
|
1387
|
+
sftpHomeFolder:
|
|
1388
|
+
summary: Folder is in use as an SFTP home folder
|
|
1389
|
+
value:
|
|
1390
|
+
errors:
|
|
1391
|
+
- code: STORAGE_SFTP_HOME_FOLDER_PROTECTED
|
|
1392
|
+
message: This folder cannot be deleted because it is in use as an SFTP home folder
|
|
1374
1393
|
'404':
|
|
1375
1394
|
$ref: '#/components/responses/404-not-found'
|
|
1376
1395
|
'422':
|
package/dist/subscription.yml
CHANGED
|
@@ -67,10 +67,94 @@ paths:
|
|
|
67
67
|
content:
|
|
68
68
|
application/json:
|
|
69
69
|
schema:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
oneOf:
|
|
71
|
+
- title: list
|
|
72
|
+
description: Default shape — every license on the account, oldest first.
|
|
73
|
+
type: array
|
|
74
|
+
items:
|
|
75
|
+
$ref: '#/components/schemas/License'
|
|
76
|
+
- title: single
|
|
77
|
+
description: Shape returned for `?type=io` — the account-level license alone, with `_userId`.
|
|
78
|
+
allOf:
|
|
79
|
+
- $ref: '#/components/schemas/License'
|
|
73
80
|
examples:
|
|
81
|
+
io:
|
|
82
|
+
summary: Account-level license via ?type=io (single object)
|
|
83
|
+
value:
|
|
84
|
+
_userId: 624cb0346309dc3a543733a2
|
|
85
|
+
_id: 624cb0356309dc3a543733a4
|
|
86
|
+
created: '2024-04-05T21:10:13.226Z'
|
|
87
|
+
lastModified: '2025-08-10T14:22:33.000Z'
|
|
88
|
+
expires: '2099-12-31T00:00:00.000Z'
|
|
89
|
+
type: platform
|
|
90
|
+
tier: enterprise (2024)
|
|
91
|
+
supportTier: premier
|
|
92
|
+
resumable: false
|
|
93
|
+
disableOverage: false
|
|
94
|
+
requestUserToMigrateSandbox: false
|
|
95
|
+
sso: true
|
|
96
|
+
scim: false
|
|
97
|
+
van: true
|
|
98
|
+
cdc: true
|
|
99
|
+
lookupCache: true
|
|
100
|
+
abstractFlows: true
|
|
101
|
+
apiManagement: true
|
|
102
|
+
concurrency: 25
|
|
103
|
+
maxAllowedDataRetention: 180
|
|
104
|
+
auditLogRetentionYears: 3
|
|
105
|
+
aiConversationsPrepaidBalance: 47.96
|
|
106
|
+
aiAgentsPrepaidBalance: 19.62
|
|
107
|
+
platform:
|
|
108
|
+
production:
|
|
109
|
+
numEndpoints: 600
|
|
110
|
+
numAddOnEndpoints: 0
|
|
111
|
+
numFlows: 80
|
|
112
|
+
numAddOnFlows: 5000
|
|
113
|
+
numAgents: 0
|
|
114
|
+
numAddOnAgents: 100
|
|
115
|
+
apiManagement: true
|
|
116
|
+
numEnvironments: 5
|
|
117
|
+
edi:
|
|
118
|
+
enabled: true
|
|
119
|
+
onboarded: true
|
|
120
|
+
disableOverage: false
|
|
121
|
+
tier: basic
|
|
122
|
+
numTradingPartners: 3
|
|
123
|
+
numAddOnTradingPartners: 0
|
|
124
|
+
numDocumentTypes: 5
|
|
125
|
+
numAddOnDocumentTypes: 0
|
|
126
|
+
labelPrinting:
|
|
127
|
+
enabled: true
|
|
128
|
+
onboarded: true
|
|
129
|
+
numLabels: 10000
|
|
130
|
+
numAddOnLabels: 0
|
|
131
|
+
api:
|
|
132
|
+
builder: true
|
|
133
|
+
enablePricing: false
|
|
134
|
+
disableOverages: false
|
|
135
|
+
numInvocations: 0
|
|
136
|
+
apimNumInvocations: 0
|
|
137
|
+
numAddOnInvocations: 0
|
|
138
|
+
topics:
|
|
139
|
+
enabled: true
|
|
140
|
+
topicsAllowed: 20
|
|
141
|
+
retentionCeilingDays: 90
|
|
142
|
+
lookupCacheUsage:
|
|
143
|
+
numUnits: 100000000
|
|
144
|
+
numAddOnUnits: 0
|
|
145
|
+
di:
|
|
146
|
+
enabled: false
|
|
147
|
+
volume: 0
|
|
148
|
+
volumeAddOn: 0
|
|
149
|
+
disableOverage: false
|
|
150
|
+
logging:
|
|
151
|
+
enabled: true
|
|
152
|
+
maxLogMode: detailed
|
|
153
|
+
maxDebugDuration: 4320
|
|
154
|
+
maxRetentionPeriod: 180
|
|
155
|
+
storage:
|
|
156
|
+
maxAllowedUsage: 200
|
|
157
|
+
disableOverage: false
|
|
74
158
|
platform:
|
|
75
159
|
summary: Platform license (enterprise tier)
|
|
76
160
|
value:
|
package/dist/topic.yml
CHANGED
|
@@ -225,8 +225,9 @@ paths:
|
|
|
225
225
|
Validation failed. `retentionMs` outside its bounds (`min`, `max`), above the license ceiling
|
|
226
226
|
(`topics_retention_exceeds_entitlement`), or not numeric (`invalid_field`); `name` longer than
|
|
227
227
|
200 characters (`maxlength`); `description` or `externalId` over their size limits
|
|
228
|
-
(`size_limit_exceeded`); the account at its topic quota (`topics_limit_exceeded`);
|
|
229
|
-
|
|
228
|
+
(`size_limit_exceeded`); the account at its topic quota (`topics_limit_exceeded`); an account
|
|
229
|
+
without the Event Streams entitlement (`topics_subscription_required`); or a malformed
|
|
230
|
+
`__integrationIds` (`invalid_request`, `invalid_ref`).
|
|
230
231
|
content:
|
|
231
232
|
application/json:
|
|
232
233
|
schema:
|
|
@@ -385,7 +386,8 @@ paths:
|
|
|
385
386
|
description: |-
|
|
386
387
|
Validation failed — the same codes as on create: `min`, `max`,
|
|
387
388
|
`topics_retention_exceeds_entitlement`, `invalid_field` for `retentionMs`; `maxlength` for
|
|
388
|
-
`name`; `size_limit_exceeded` for `description` or `externalId
|
|
389
|
+
`name`; `size_limit_exceeded` for `description` or `externalId`;
|
|
390
|
+
`topics_subscription_required` when the account lacks the Event Streams entitlement.
|
|
389
391
|
content:
|
|
390
392
|
application/json:
|
|
391
393
|
schema:
|
package/package.json
CHANGED