@celigo/api-specs 0.2.92 → 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.
@@ -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. Enabling also checks the environment's
124
- Celigo Storage entitlement (partner uploads land there) and returns the current
125
- `storageUsage` alongside the server. Disabling keeps the identifier and every
126
- account, refuses new logins, and ends open sessions; repeating a disable is a
127
- no-op. Sandbox environments cannot enable a server (403
128
- `FILESERVER_NOT_ENTITLED`). Requires a full-access API token.
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` when the call enabled it.
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: when more accounts follow, the
276
- `Link` header carries a `rel="next"` URL whose `after` cursor (and `pageSize`)
277
- fetch the next page, and a page reached through `after` also offers
278
- `rel="prev"`. Cursors are opaque — pass them back exactly as received; anything
279
- else answers 400 `FILESERVER_INVALID_CURSOR`. Accounts stay listable after the
280
- add-on is removed from the license; only writes are blocked then. Requires a
281
- full-access API token and a server that has been enabled at least once.
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. Values outside the range are clamped rather than rejected.
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 `rel="next"` link. Returns the accounts created after it.
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 `rel="prev"` link. Returns the accounts created before it. Ignored when `after` is also sent.
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
- RFC 8288 pagination links: `<…?after=…&pageSize=…>; rel="next"` when more
313
- accounts follow, `<…?before=…&pageSize=…>; rel="prev"` when the page was
314
- reached through a cursor. Absent when the whole list fits in one page.
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. Requires a full-access API
393
- token, the file server add-on on the license, and a server that has been enabled
394
- at least once.
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 (`FILESERVER_WEAK_PASSWORD`);
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. Renaming keeps `_id` and
565
- updates `login`. Moving the home folder is verified against Celigo Storage and
566
- ends the account's open sessions, as does disabling it. Re-enabling counts
567
- against `limits.maxAccounts` and requires a password to be set. The password
568
- cannot be changed here — use `POST /v1/mft/fileserver/accounts/{_id}/password`.
569
- Requires a full-access API token, the file server add-on on the license, and a
570
- server that has been enabled at least once.
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: The new home folder could not be verified against Celigo Storage (`FILESERVER_STORAGE_UNAVAILABLE`); nothing changed. Retry later.
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. There is no recycle bin for accounts —
697
- recreate one to restore access. Requires a full-access API token, the file
698
- server add-on on the license, and a server that has been enabled at least once.
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` response that enables the server: the environment's
928
- Celigo Storage usage as `GET /v1/storage/usage` reports it, checked at enable
929
- time because partner uploads land in that storage.
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`. Moving an account to another folder
1061
- ends its open sessions.
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
- Breadcrumb path of `_homeFolderId` from the storage root, for display. Null
1071
- when the path could not be resolved for this response — the folder id is
1072
- still authoritative.
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
- names the rule broken. Never returned by any route — rotate or clear it later
1159
- through `POST /v1/mft/fileserver/accounts/{_id}/password`.
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: Move the account to another active folder in this environment. Ends the account's open sessions, which were rooted in the old folder.
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 answers
1229
- 422 `FILESERVER_WEAK_PASSWORD` with the message "Password must be a string (or
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:
@@ -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 never blocked by references — flows,
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. A pending multipart upload cannot be deleted here —
1350
- cancel it with `POST /v1/storage/files/{_id}/cancel`.
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
- $ref: '#/components/responses/403-forbidden'
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.92",
3
+ "version": "0.2.93",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [
package/schemas.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "provenance": {
3
3
  "repo": "celigo/integrator-api-specs",
4
- "iasCommit": "ec12d5c1",
4
+ "iasCommit": "fcb2d9c1",
5
5
  "generatedAt": "2026-10-12"
6
6
  },
7
7
  "roots": {