@celigo/api-specs 0.2.25 → 0.2.27

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.
@@ -721,7 +721,9 @@ components:
721
721
  description: |-
722
722
  Job ID of the flow run that processed the functional acknowledgement
723
723
  (997 / CONTRL) for this transaction. Present only once an FA has been
724
- received and processed.
724
+ received and processed. Use this job — not `_flowJobId` — with
725
+ `POST /v1/jobs/{_faFlowJobId}/files/signedURL` (body
726
+ `{ "fileIds": ["<faS3Key>"] }`) to download the FA file.
725
727
  x-celigo-refModel: jobs
726
728
  examples:
727
729
  - 6a05fdbf0f139ef519238dd7
@@ -806,8 +808,13 @@ components:
806
808
  Opaque file identifier for the stored functional-acknowledgement
807
809
  (997 / CONTRL) file. Present only once an FA has been received.
808
810
  One acknowledgement file can cover many transactions, which then
809
- share the same `faS3Key`. Download it via
810
- `GET /v1/ediTransactions/{_ediTransactionId}/ediFile?type=fa`.
811
+ share the same `faS3Key`. To download the FA file, combine with
812
+ `_faFlowJobId` (the FA-processing flow run — not `_flowJobId`) and
813
+ call `POST /v1/jobs/{_faFlowJobId}/files/signedURL` with body
814
+ `{ "fileIds": ["<faS3Key>"] }`. For parsed FA failure details, use
815
+ `GET /v1/ediTransactions/{_ediTransactionId}/faDetails?fileType=<X12|EDIFACT>`
816
+ — pass the transaction's own `fileType`; the route answers 404 without it
817
+ (available only for transactions with a rejected FA status).
811
818
  examples:
812
819
  - 9a7c3e14b2af45d8bc0e6090c5be6afa
813
820
  mdnStatus:
package/dist/enduser.yml CHANGED
@@ -21,7 +21,9 @@ tags:
21
21
  getting workspace access — they sign in through MCP OAuth, optionally
22
22
  via an external IdP. Use these endpoints to invite end users (singly or
23
23
  in bulk), list and revoke them, and inspect the effective MCP tool
24
- access compiled from their grants, groups, and roles.
24
+ access compiled from their grants, groups, and roles. An end user's
25
+ access record is an ashare, so editing its grants and suspending it
26
+ use the `/v1/ashares` routes shared with workspace users.
25
27
 
26
28
  ## End user schema
27
29
 
@@ -325,6 +327,131 @@ paths:
325
327
  $ref: '#/components/responses/403-forbidden'
326
328
  '404':
327
329
  $ref: '#/components/responses/404-not-found'
330
+ /v1/ashares/{_ashareId}:
331
+ put:
332
+ x-internal: false
333
+ summary: Update an end user's access
334
+ operationId: updateEndUser
335
+ tags:
336
+ - End Users
337
+ description: |-
338
+ Replaces the end user's group memberships and direct resource grants with
339
+ the arrays sent. Works on invited end users before they accept. `disabled`
340
+ is not applied here — use `PUT /v1/ashares/{_ashareId}/disable`.
341
+
342
+ An end user's access record is an ashare, so this is the same route as
343
+ the workspace-user update in the Users API, with this body instead of the
344
+ workspace fields. `GET /v1/ashares/{_id}` does not return end-user
345
+ records — read them from `GET /v1/endusers`.
346
+ parameters:
347
+ - name: _ashareId
348
+ in: path
349
+ required: true
350
+ description: End-user access-record id (from the end users list).
351
+ schema:
352
+ type: string
353
+ format: objectId
354
+ requestBody:
355
+ required: true
356
+ content:
357
+ application/json:
358
+ schema:
359
+ $ref: '#/components/schemas/EndUserUpdateRequest'
360
+ examples:
361
+ removeDirectGrant:
362
+ summary: Keep one group, drop a direct grant
363
+ value:
364
+ groupMemberships:
365
+ - _groupId: 68a1b2c3d4e5f6a7b8c9d0e1
366
+ source: manual
367
+ resourceGrants: []
368
+ grantServer:
369
+ summary: Add a direct grant on one MCP server
370
+ value:
371
+ groupMemberships: []
372
+ resourceGrants:
373
+ - resourceType: mcpServer
374
+ _resourceId: 6a1b2c3d4e5f6a7b8c9d0e1f
375
+ capabilities:
376
+ - tool:all
377
+ responses:
378
+ '200':
379
+ description: |-
380
+ The updated access record as stored. The identity fields the list
381
+ joins in (`email`, `name`, `lastSignIn`) and `hasWorkspaceShare` are
382
+ not included, and empty arrays may be omitted.
383
+ content:
384
+ application/json:
385
+ schema:
386
+ $ref: '#/components/schemas/EndUser'
387
+ examples:
388
+ default:
389
+ value:
390
+ _id: 68b1c2d3e4f5a6b7c8d9e0f1
391
+ _sharedWithUserId: 624774a6a7574d3ed9f9a5cc
392
+ userType: end-user
393
+ provisionedBy: invite
394
+ accepted: true
395
+ groupMemberships:
396
+ - _groupId: 68a1b2c3d4e5f6a7b8c9d0e1
397
+ source: manual
398
+ createdAt: '2026-07-01T09:15:32Z'
399
+ lastModified: '2026-08-15T14:30:15Z'
400
+ '400':
401
+ $ref: '#/components/responses/400-bad-request'
402
+ '401':
403
+ $ref: '#/components/responses/401-unauthorized'
404
+ '404':
405
+ $ref: '#/components/responses/404-not-found'
406
+ /v1/ashares/{_ashareId}/disable:
407
+ put:
408
+ x-internal: false
409
+ summary: Toggle an end user's access
410
+ operationId: toggleEndUserDisabled
411
+ tags:
412
+ - End Users
413
+ description: |-
414
+ Toggles the `disabled` flag on the end user's access record — call again
415
+ to restore access; there is no separate `/enable` path. Unlike the
416
+ workspace toggle, this also works on invited end users who have not yet
417
+ accepted. Shares its route with the workspace-user toggle in the Users
418
+ API.
419
+ parameters:
420
+ - name: _ashareId
421
+ in: path
422
+ required: true
423
+ description: End-user access-record id (from the end users list).
424
+ schema:
425
+ type: string
426
+ format: objectId
427
+ requestBody:
428
+ required: false
429
+ content:
430
+ application/json:
431
+ schema:
432
+ type: object
433
+ description: Empty body — the target is identified by the path parameter alone.
434
+ examples:
435
+ default:
436
+ summary: Empty body
437
+ value: {}
438
+ responses:
439
+ '204':
440
+ description: End-user access toggled.
441
+ '401':
442
+ $ref: '#/components/responses/401-unauthorized'
443
+ '404':
444
+ description: End user not found.
445
+ content:
446
+ application/json:
447
+ schema:
448
+ $ref: '#/components/schemas/Error'
449
+ examples:
450
+ ashare_not_found:
451
+ value:
452
+ errors:
453
+ - code: invalid_ref
454
+ message: AShare not found.
328
455
  /v1/groups:
329
456
  get:
330
457
  x-internal: false
@@ -1010,7 +1137,10 @@ components:
1010
1137
  description: When true, the end user has declined the invitation.
1011
1138
  disabled:
1012
1139
  type: boolean
1013
- description: When true, the end user's access is suspended without deleting the record.
1140
+ description: |-
1141
+ When true, the end user's access is suspended without deleting the
1142
+ record. Changed only by `PUT /v1/ashares/{_ashareId}/disable` — a
1143
+ value sent on the update operation is not applied.
1014
1144
  groupMemberships:
1015
1145
  type: array
1016
1146
  description: Groups this end user belongs to, with the source of each membership.
@@ -1418,6 +1548,25 @@ components:
1418
1548
  reason:
1419
1549
  type: string
1420
1550
  description: Why the tool is not available to this end user.
1551
+ EndUserUpdateRequest:
1552
+ type: object
1553
+ description: |-
1554
+ Replacement access for an end user. Both arrays are stored as sent, so
1555
+ each must carry every entry to keep, not just the changes.
1556
+ required:
1557
+ - groupMemberships
1558
+ - resourceGrants
1559
+ properties:
1560
+ groupMemberships:
1561
+ type: array
1562
+ description: Complete set of groups the end user should belong to after the update.
1563
+ items:
1564
+ $ref: '#/components/schemas/GroupMembership'
1565
+ resourceGrants:
1566
+ type: array
1567
+ description: Complete set of direct resource grants the end user should hold after the update.
1568
+ items:
1569
+ $ref: '#/components/schemas/ResourceGrant'
1421
1570
  Group:
1422
1571
  type: object
1423
1572
  description: |-