@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.
- package/dist/editransaction.yml +10 -3
- package/dist/enduser.yml +151 -2
- package/dist/filedefinitionrules.yml +722 -0
- package/dist/mcp-server.yml +284 -12
- package/dist/tradingpartnerconnector.yml +10 -0
- package/dist/user.yml +114 -21
- package/package.json +1 -1
- package/schemas.json +108 -48
package/dist/mcp-server.yml
CHANGED
|
@@ -18,6 +18,7 @@ info:
|
|
|
18
18
|
- Supports tool overrides for customizing connections, exports, imports, and routing per-server
|
|
19
19
|
- Exposes prompts via `prompts/list` and `prompts/get` with Handlebars-style argument substitution
|
|
20
20
|
- Carries **permission sets** ("Capability Sets" in the UI) — named bundles of its tools and APIs granted to end users via `pset:<_id>` capability strings on end-user, group, and role resource grants
|
|
21
|
+
- Carries optional **traffic limits** (`policies[]`) — a server-level rate limit, a per-user rate limit for OAuth end users, and a usage quota — enforced before a tool runs; a rejected call gets HTTP 429 with `Retry-After`
|
|
21
22
|
servers:
|
|
22
23
|
- url: https://api.integrator.io
|
|
23
24
|
description: Production (US / default region)
|
|
@@ -43,7 +44,10 @@ tags:
|
|
|
43
44
|
and routing. Permission sets ("Capability Sets" in the UI) bundle a
|
|
44
45
|
server's tools and APIs into named grants for end users, and the
|
|
45
46
|
server-scoped access endpoints bulk-assign capabilities to end users
|
|
46
|
-
and groups and report compiled effective access.
|
|
47
|
+
and groups and report compiled effective access. Optional traffic
|
|
48
|
+
limits (`policies`) — a server-level rate limit, a per-user rate
|
|
49
|
+
limit, and a usage quota — reject calls over the limit with HTTP 429
|
|
50
|
+
and `Retry-After` before any tool runs.
|
|
47
51
|
|
|
48
52
|
## MCP server schema
|
|
49
53
|
|
|
@@ -269,10 +273,11 @@ paths:
|
|
|
269
273
|
summary: Update an MCP server
|
|
270
274
|
description: |-
|
|
271
275
|
Full replacement of an MCP server's configuration. Omitted arrays
|
|
272
|
-
(`tools`, `apis`, `prompts`, `resources`, `permissionSets`)
|
|
273
|
-
so include the complete arrays — clearing `permissionSets`
|
|
274
|
-
rewrites the `pset:` grants that referenced the erased sets
|
|
275
|
-
|
|
276
|
+
(`tools`, `apis`, `prompts`, `resources`, `permissionSets`, `policies`)
|
|
277
|
+
are cleared, so include the complete arrays — clearing `permissionSets`
|
|
278
|
+
this way also rewrites the `pset:` grants that referenced the erased sets,
|
|
279
|
+
and clearing `policies` removes every traffic limit. `relativeURI` can be
|
|
280
|
+
changed but must remain unique per account.
|
|
276
281
|
operationId: updateMcpServer
|
|
277
282
|
tags:
|
|
278
283
|
- MCP Servers
|
|
@@ -386,8 +391,14 @@ paths:
|
|
|
386
391
|
summary: Patch an MCP server
|
|
387
392
|
description: |-
|
|
388
393
|
Partially updates an MCP server using a JSON Patch document (RFC 6902).
|
|
389
|
-
Only `/name
|
|
390
|
-
are rejected with `not a whitelisted property`.
|
|
394
|
+
Only `/name`, `/disabled`, and `/policies` are whitelisted paths — all
|
|
395
|
+
other paths are rejected with `not a whitelisted property`. Under
|
|
396
|
+
`/policies`, `add`, `replace`, and `remove` work on the whole array,
|
|
397
|
+
`add` works at `/policies/-` or an index, and `replace` works at an index
|
|
398
|
+
or a sub-path such as `/policies/0/config/limit`; `remove` at an array
|
|
399
|
+
index is rejected with 422 `Remove at array index is not supported`. The
|
|
400
|
+
resulting array is validated as a whole, and an invalid policy rejects
|
|
401
|
+
the entire patch.
|
|
391
402
|
operationId: patchMcpServer
|
|
392
403
|
tags:
|
|
393
404
|
- MCP Servers
|
|
@@ -421,6 +432,40 @@ paths:
|
|
|
421
432
|
- op: replace
|
|
422
433
|
path: /name
|
|
423
434
|
value: Updated Server Name
|
|
435
|
+
set_traffic_limits:
|
|
436
|
+
summary: Set a server rate limit, a per-user rate limit, and a monthly quota
|
|
437
|
+
value:
|
|
438
|
+
- op: replace
|
|
439
|
+
path: /policies
|
|
440
|
+
value:
|
|
441
|
+
- type: rate-limit
|
|
442
|
+
name: Server-level rate limit
|
|
443
|
+
enabled: true
|
|
444
|
+
config:
|
|
445
|
+
limit: 600
|
|
446
|
+
periodTime: 1
|
|
447
|
+
periodTimeUnit: MINUTE
|
|
448
|
+
- type: rate-limit
|
|
449
|
+
name: Per-user rate limit
|
|
450
|
+
enabled: true
|
|
451
|
+
config:
|
|
452
|
+
limit: 60
|
|
453
|
+
periodTime: 1
|
|
454
|
+
periodTimeUnit: MINUTE
|
|
455
|
+
keyResolver: consumer
|
|
456
|
+
- type: quota
|
|
457
|
+
name: Monthly usage quota
|
|
458
|
+
enabled: true
|
|
459
|
+
config:
|
|
460
|
+
limit: 500000
|
|
461
|
+
periodTime: 1
|
|
462
|
+
periodTimeUnit: MONTH
|
|
463
|
+
remove_traffic_limits:
|
|
464
|
+
summary: Remove every traffic limit (unlimited)
|
|
465
|
+
value:
|
|
466
|
+
- op: replace
|
|
467
|
+
path: /policies
|
|
468
|
+
value: []
|
|
424
469
|
responses:
|
|
425
470
|
'204':
|
|
426
471
|
description: Patch applied.
|
|
@@ -1724,6 +1769,217 @@ components:
|
|
|
1724
1769
|
required:
|
|
1725
1770
|
- name
|
|
1726
1771
|
- accessLevel
|
|
1772
|
+
Policy:
|
|
1773
|
+
type: object
|
|
1774
|
+
description: |-
|
|
1775
|
+
One traffic limit the server enforces before a tool runs — shown under
|
|
1776
|
+
**Access > Governance** in the UI. A `rate-limit` caps calls per MINUTE,
|
|
1777
|
+
HOUR, or DAY with a continuously refilling allowance, either for the whole
|
|
1778
|
+
server (`keyResolver` `endpoint`) or separately for each OAuth end user
|
|
1779
|
+
(`keyResolver` `consumer`); a `quota` caps cumulative calls over a UTC
|
|
1780
|
+
calendar DAY, WEEK, or MONTH across every consumer. A call must pass every
|
|
1781
|
+
enabled policy. A rejected call is not executed and receives HTTP 429 with
|
|
1782
|
+
a `Retry-After` header (seconds until the allowance refills or the quota
|
|
1783
|
+
period resets), an `X-RateLimit-Limit` header, and a JSON-RPC error
|
|
1784
|
+
(code -32004) whose message names the policy: `Rate limit exceeded: <name>`
|
|
1785
|
+
or `Usage quota exceeded: <name>`.
|
|
1786
|
+
x-celigo-ai-guidance:
|
|
1787
|
+
- |-
|
|
1788
|
+
Configure one policy per kind — one server-level rate limit, one per-user
|
|
1789
|
+
rate limit (`keyResolver` `consumer`), one quota. The API does not reject a
|
|
1790
|
+
second policy of the same kind; both are then enforced against the same
|
|
1791
|
+
traffic, which makes the effective limit hard to reason about.
|
|
1792
|
+
- |-
|
|
1793
|
+
A `tools/call` counts against every enabled policy, even when the named tool
|
|
1794
|
+
does not exist; `initialize`, `tools/list`, `prompts/list`, and `resources/list`
|
|
1795
|
+
are never counted or rejected (all live-verified). Whether `prompts/get` and
|
|
1796
|
+
`resources/read` count has not been verified — do not assert either way.
|
|
1797
|
+
- |-
|
|
1798
|
+
Bearer API-token traffic is evaluated by `endpoint`-keyed rate limits and by
|
|
1799
|
+
quotas only; a `consumer`-keyed rate limit applies to OAuth end users, each
|
|
1800
|
+
with an independent allowance, and leaves API-token traffic untouched.
|
|
1801
|
+
- |-
|
|
1802
|
+
A rate limit keeps its allowance state when its `limit` is changed, so raising
|
|
1803
|
+
a limit right after it tripped admits nothing until tokens refill at the new
|
|
1804
|
+
rate. A quota counts every call the server accepted in the current UTC period,
|
|
1805
|
+
including calls made before the quota was configured — a quota below the
|
|
1806
|
+
period's current count rejects every call until the period resets.
|
|
1807
|
+
required:
|
|
1808
|
+
- type
|
|
1809
|
+
- name
|
|
1810
|
+
- config
|
|
1811
|
+
properties:
|
|
1812
|
+
type:
|
|
1813
|
+
type: string
|
|
1814
|
+
enum:
|
|
1815
|
+
- rate-limit
|
|
1816
|
+
- quota
|
|
1817
|
+
x-enumDescriptions:
|
|
1818
|
+
rate-limit: Caps calls per MINUTE, HOUR, or DAY with an allowance that refills continuously; server-wide, or per end user with keyResolver consumer
|
|
1819
|
+
quota: Caps cumulative calls over a UTC calendar DAY, WEEK, or MONTH for every consumer combined
|
|
1820
|
+
description: |-
|
|
1821
|
+
Kind of limit. Use rate-limit to protect downstream systems from bursts
|
|
1822
|
+
and, with `keyResolver` `consumer`, to keep one end user from consuming
|
|
1823
|
+
the whole server; use quota to cap total consumption for cost control.
|
|
1824
|
+
examples:
|
|
1825
|
+
- rate-limit
|
|
1826
|
+
name:
|
|
1827
|
+
type: string
|
|
1828
|
+
maxLength: 100
|
|
1829
|
+
description: |-
|
|
1830
|
+
Label for the limit, echoed verbatim in the 429 error message that
|
|
1831
|
+
rejected clients receive — name it the way consumers should read it.
|
|
1832
|
+
examples:
|
|
1833
|
+
- Server-level rate limit
|
|
1834
|
+
- Per-user rate limit
|
|
1835
|
+
- Monthly usage quota
|
|
1836
|
+
enabled:
|
|
1837
|
+
type: boolean
|
|
1838
|
+
default: true
|
|
1839
|
+
description: |-
|
|
1840
|
+
When true, the policy is enforced. Set to false to keep the
|
|
1841
|
+
configuration in place without enforcing it.
|
|
1842
|
+
examples:
|
|
1843
|
+
- true
|
|
1844
|
+
config:
|
|
1845
|
+
type: object
|
|
1846
|
+
additionalProperties: false
|
|
1847
|
+
description: |-
|
|
1848
|
+
Limit value and period. The maximum `limit` depends on the unit and
|
|
1849
|
+
equals the platform ceiling of 300 calls per second over one period.
|
|
1850
|
+
required:
|
|
1851
|
+
- limit
|
|
1852
|
+
- periodTime
|
|
1853
|
+
- periodTimeUnit
|
|
1854
|
+
properties:
|
|
1855
|
+
limit:
|
|
1856
|
+
type: integer
|
|
1857
|
+
minimum: 1
|
|
1858
|
+
description: |-
|
|
1859
|
+
Maximum number of counted calls in one period. Ceilings per unit:
|
|
1860
|
+
18000 per MINUTE, 1080000 per HOUR, 25920000 per DAY, 181440000 per
|
|
1861
|
+
WEEK, 777600000 per MONTH — higher values are rejected with 422
|
|
1862
|
+
`policy_config_invalid`.
|
|
1863
|
+
examples:
|
|
1864
|
+
- 600
|
|
1865
|
+
periodTime:
|
|
1866
|
+
type: integer
|
|
1867
|
+
const: 1
|
|
1868
|
+
default: 1
|
|
1869
|
+
description: |-
|
|
1870
|
+
Number of `periodTimeUnit` units in one period. Only a single unit
|
|
1871
|
+
is supported; any other value is rejected with 422.
|
|
1872
|
+
examples:
|
|
1873
|
+
- 1
|
|
1874
|
+
periodTimeUnit:
|
|
1875
|
+
type: string
|
|
1876
|
+
enum:
|
|
1877
|
+
- MINUTE
|
|
1878
|
+
- HOUR
|
|
1879
|
+
- DAY
|
|
1880
|
+
- WEEK
|
|
1881
|
+
- MONTH
|
|
1882
|
+
x-enumDescriptions:
|
|
1883
|
+
MINUTE: One-minute period; rate limits only
|
|
1884
|
+
HOUR: One-hour period; rate limits only
|
|
1885
|
+
DAY: One calendar day (UTC) for quotas, or a one-day refilling allowance for rate limits
|
|
1886
|
+
WEEK: One calendar week (UTC); quotas only
|
|
1887
|
+
MONTH: One calendar month (UTC); quotas only
|
|
1888
|
+
description: |-
|
|
1889
|
+
Length of one period. Rate limits take MINUTE, HOUR, or DAY; quotas
|
|
1890
|
+
take DAY, WEEK, or MONTH — any other pairing, or a lowercase value,
|
|
1891
|
+
is rejected with 422 `policy_config_invalid`.
|
|
1892
|
+
examples:
|
|
1893
|
+
- MINUTE
|
|
1894
|
+
keyResolver:
|
|
1895
|
+
type: string
|
|
1896
|
+
enum:
|
|
1897
|
+
- endpoint
|
|
1898
|
+
- consumer
|
|
1899
|
+
default: endpoint
|
|
1900
|
+
x-enumDescriptions:
|
|
1901
|
+
endpoint: One shared allowance for the whole server across every consumer and authentication method
|
|
1902
|
+
consumer: A separate allowance for each OAuth end user; bearer API-token traffic is not evaluated by this policy
|
|
1903
|
+
description: |-
|
|
1904
|
+
Whose allowance the limit tracks. Omit it (or send endpoint) for a
|
|
1905
|
+
server-level limit and send consumer for a per-user rate limit;
|
|
1906
|
+
quotas accept endpoint only.
|
|
1907
|
+
examples:
|
|
1908
|
+
- endpoint
|
|
1909
|
+
if:
|
|
1910
|
+
properties:
|
|
1911
|
+
periodTimeUnit:
|
|
1912
|
+
const: MINUTE
|
|
1913
|
+
required:
|
|
1914
|
+
- periodTimeUnit
|
|
1915
|
+
then:
|
|
1916
|
+
properties:
|
|
1917
|
+
limit:
|
|
1918
|
+
maximum: 18000
|
|
1919
|
+
else:
|
|
1920
|
+
if:
|
|
1921
|
+
properties:
|
|
1922
|
+
periodTimeUnit:
|
|
1923
|
+
const: HOUR
|
|
1924
|
+
required:
|
|
1925
|
+
- periodTimeUnit
|
|
1926
|
+
then:
|
|
1927
|
+
properties:
|
|
1928
|
+
limit:
|
|
1929
|
+
maximum: 1080000
|
|
1930
|
+
else:
|
|
1931
|
+
if:
|
|
1932
|
+
properties:
|
|
1933
|
+
periodTimeUnit:
|
|
1934
|
+
const: DAY
|
|
1935
|
+
required:
|
|
1936
|
+
- periodTimeUnit
|
|
1937
|
+
then:
|
|
1938
|
+
properties:
|
|
1939
|
+
limit:
|
|
1940
|
+
maximum: 25920000
|
|
1941
|
+
else:
|
|
1942
|
+
if:
|
|
1943
|
+
properties:
|
|
1944
|
+
periodTimeUnit:
|
|
1945
|
+
const: WEEK
|
|
1946
|
+
required:
|
|
1947
|
+
- periodTimeUnit
|
|
1948
|
+
then:
|
|
1949
|
+
properties:
|
|
1950
|
+
limit:
|
|
1951
|
+
maximum: 181440000
|
|
1952
|
+
else:
|
|
1953
|
+
properties:
|
|
1954
|
+
limit:
|
|
1955
|
+
maximum: 777600000
|
|
1956
|
+
if:
|
|
1957
|
+
properties:
|
|
1958
|
+
type:
|
|
1959
|
+
const: rate-limit
|
|
1960
|
+
required:
|
|
1961
|
+
- type
|
|
1962
|
+
then:
|
|
1963
|
+
properties:
|
|
1964
|
+
config:
|
|
1965
|
+
properties:
|
|
1966
|
+
periodTimeUnit:
|
|
1967
|
+
enum:
|
|
1968
|
+
- MINUTE
|
|
1969
|
+
- HOUR
|
|
1970
|
+
- DAY
|
|
1971
|
+
else:
|
|
1972
|
+
properties:
|
|
1973
|
+
config:
|
|
1974
|
+
properties:
|
|
1975
|
+
periodTimeUnit:
|
|
1976
|
+
enum:
|
|
1977
|
+
- DAY
|
|
1978
|
+
- WEEK
|
|
1979
|
+
- MONTH
|
|
1980
|
+
keyResolver:
|
|
1981
|
+
enum:
|
|
1982
|
+
- endpoint
|
|
1727
1983
|
OAuthConfig:
|
|
1728
1984
|
type: object
|
|
1729
1985
|
description: |-
|
|
@@ -1965,12 +2221,28 @@ components:
|
|
|
1965
2221
|
`resources`, the field is not normalized to an empty array).
|
|
1966
2222
|
x-celigo-ai-guidance:
|
|
1967
2223
|
- |-
|
|
1968
|
-
Not editable via PATCH (the whitelist covers only `/name
|
|
1969
|
-
`/disabled`). To change permission sets safely, GET the server,
|
|
2224
|
+
Not editable via PATCH (the whitelist covers only `/name`,
|
|
2225
|
+
`/disabled`, and `/policies`). To change permission sets safely, GET the server,
|
|
1970
2226
|
modify `permissionSets`, and PUT the complete document back with
|
|
1971
2227
|
every set's `_id` intact.
|
|
1972
2228
|
items:
|
|
1973
2229
|
$ref: '#/components/schemas/PermissionSet'
|
|
2230
|
+
policies:
|
|
2231
|
+
type: array
|
|
2232
|
+
description: |-
|
|
2233
|
+
Traffic limits enforced on this server before a tool runs — a
|
|
2234
|
+
server-level rate limit, a per-user rate limit, and a usage quota, each
|
|
2235
|
+
optional and independent. An empty array (the default) means unlimited.
|
|
2236
|
+
Always returned; servers saved before traffic limits existed return an
|
|
2237
|
+
empty array. Omitting the field on PUT clears every limit — send the
|
|
2238
|
+
complete array back, or edit it with PATCH.
|
|
2239
|
+
x-celigo-ai-guidance:
|
|
2240
|
+
- |-
|
|
2241
|
+
Leave `policies` empty unless the user asks for a limit — that is today's
|
|
2242
|
+
default behavior. To change limits without touching the rest of the
|
|
2243
|
+
document, PATCH `replace /policies` with the complete array.
|
|
2244
|
+
items:
|
|
2245
|
+
$ref: '#/components/schemas/Policy'
|
|
1974
2246
|
oauth:
|
|
1975
2247
|
$ref: '#/components/schemas/OAuthConfig'
|
|
1976
2248
|
ResourceResponse:
|
|
@@ -2065,9 +2337,9 @@ components:
|
|
|
2065
2337
|
type: object
|
|
2066
2338
|
description: |-
|
|
2067
2339
|
Request body for creating or updating an MCP server. On PUT, include
|
|
2068
|
-
the full `tools`, `apis`,
|
|
2069
|
-
are cleared. Use PATCH to update individual
|
|
2070
|
-
these arrays.
|
|
2340
|
+
the full `tools`, `apis`, `prompts`, `resources`, `permissionSets`, and
|
|
2341
|
+
`policies` arrays because omitted arrays are cleared. Use PATCH to update individual
|
|
2342
|
+
fields without affecting these arrays.
|
|
2071
2343
|
x-celigo-ai-guidance:
|
|
2072
2344
|
- |-
|
|
2073
2345
|
MCP servers expose Celigo tools, builder-mode APIs,
|
|
@@ -1396,12 +1396,22 @@ components:
|
|
|
1396
1396
|
`preConfiguredFields` must include a `type` path (e.g. `ftp` or
|
|
1397
1397
|
`as2`) and export/import must include `file.type` set to
|
|
1398
1398
|
`filedefinition` -- these are validated when `published` is `true`.
|
|
1399
|
+
|
|
1400
|
+
`type`, `region`, and `model` must match the deployment's configured
|
|
1401
|
+
values exactly, including case. A value outside the list is not
|
|
1402
|
+
rejected with a validation error: the request never completes (no
|
|
1403
|
+
response is returned) and nothing is created or changed.
|
|
1399
1404
|
x-celigo-ai-guidance:
|
|
1400
1405
|
- |-
|
|
1401
1406
|
Trading partner connectors define reusable templates for onboarding EDI trading partners.
|
|
1402
1407
|
They specify which fields are pre-configured and which fields the user must
|
|
1403
1408
|
provide for connections,
|
|
1404
1409
|
exports, imports, and EDI profiles.
|
|
1410
|
+
- |-
|
|
1411
|
+
Send `type`, `region`, and `model` exactly as configured (`AS2`, not `as2`;
|
|
1412
|
+
`North America`; `Dropship`). An out-of-list value gets no response at all — the
|
|
1413
|
+
create or update never completes and nothing is saved — so a request that hangs
|
|
1414
|
+
on this endpoint means a categorization value is wrong, not that the platform is slow.
|
|
1405
1415
|
- |-
|
|
1406
1416
|
When `published` is true, the connector's `supportedBy` sections are validated
|
|
1407
1417
|
to ensure all required fields are present. For example:
|
package/dist/user.yml
CHANGED
|
@@ -125,7 +125,10 @@ paths:
|
|
|
125
125
|
operationId: getUser
|
|
126
126
|
tags:
|
|
127
127
|
- Users
|
|
128
|
-
description:
|
|
128
|
+
description: |-
|
|
129
|
+
Retrieve a single user's access record by its id. Returns workspace
|
|
130
|
+
records only — an end-user access-record id is not found here; read
|
|
131
|
+
those from `GET /v1/endusers`.
|
|
129
132
|
parameters:
|
|
130
133
|
- name: _id
|
|
131
134
|
in: path
|
|
@@ -173,10 +176,17 @@ paths:
|
|
|
173
176
|
tags:
|
|
174
177
|
- Users
|
|
175
178
|
description: |-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
179
|
+
Replaces a workspace user's access settings. The body must grant access
|
|
180
|
+
through `accessLevel` or a non-empty `integrationAccessLevel`, and
|
|
181
|
+
`integrationAccessLevel`, `accountSSORequired`, and `accountMFARequired`
|
|
182
|
+
are cleared when omitted — send every value to keep. `disabled` is not
|
|
183
|
+
applied here; toggle it with `PUT /v1/ashares/{_userId}/disable`.
|
|
184
|
+
Read-only fields echoed from the GET response are ignored, except
|
|
185
|
+
`userType`, which is rejected. The user's email cannot be changed after
|
|
186
|
+
invite. Callable from the production environment only.
|
|
187
|
+
|
|
188
|
+
End-user access records share this route with a different body — see
|
|
189
|
+
the End Users API.
|
|
180
190
|
parameters:
|
|
181
191
|
- name: _id
|
|
182
192
|
in: path
|
|
@@ -193,30 +203,81 @@ paths:
|
|
|
193
203
|
$ref: '#/components/schemas/Request'
|
|
194
204
|
examples:
|
|
195
205
|
changeAccessLevel:
|
|
196
|
-
summary: Change to administrator
|
|
206
|
+
summary: Change to administrator (resend the SSO/MFA settings — omitted ones are cleared)
|
|
197
207
|
value:
|
|
198
208
|
accessLevel: administrator
|
|
209
|
+
integrationAccessLevel: []
|
|
210
|
+
accountSSORequired: false
|
|
211
|
+
accountMFARequired: true
|
|
199
212
|
integrationOnly:
|
|
200
|
-
summary: Integration-only access
|
|
213
|
+
summary: Integration-only access (no accessLevel; resend the SSO/MFA settings)
|
|
201
214
|
value:
|
|
202
215
|
integrationAccessLevel:
|
|
203
216
|
- _integrationId: 68f52162f00a35a1b26eaafb
|
|
204
217
|
accessLevel: manage
|
|
205
218
|
- _integrationId: 6842261335b64c0bcb308e4f
|
|
206
219
|
accessLevel: monitor
|
|
207
|
-
|
|
208
|
-
|
|
220
|
+
accountSSORequired: false
|
|
221
|
+
accountMFARequired: true
|
|
222
|
+
keepSettings:
|
|
223
|
+
summary: Change access level, keeping every other setting
|
|
209
224
|
value:
|
|
210
|
-
|
|
225
|
+
accessLevel: monitor
|
|
226
|
+
integrationAccessLevel: []
|
|
227
|
+
accountSSORequired: false
|
|
228
|
+
accountMFARequired: true
|
|
229
|
+
allowToEditRetryData: true
|
|
211
230
|
responses:
|
|
212
231
|
'204':
|
|
213
232
|
description: User updated.
|
|
214
233
|
'400':
|
|
215
|
-
|
|
234
|
+
description: The body grants no access, or echoes the read-only `userType`.
|
|
235
|
+
content:
|
|
236
|
+
application/json:
|
|
237
|
+
schema:
|
|
238
|
+
$ref: '#/components/schemas/Error'
|
|
239
|
+
examples:
|
|
240
|
+
noAccessGranted:
|
|
241
|
+
summary: Neither accessLevel nor integrationAccessLevel sent
|
|
242
|
+
value:
|
|
243
|
+
errors:
|
|
244
|
+
- code: invalid_request
|
|
245
|
+
message: To update the account access you need to either provide account level access or integration level access.
|
|
246
|
+
userTypeEchoed:
|
|
247
|
+
summary: Read-only userType sent back
|
|
248
|
+
value:
|
|
249
|
+
errors:
|
|
250
|
+
- code: validation_failed
|
|
251
|
+
message: userType is immutable after creation.
|
|
216
252
|
'401':
|
|
217
253
|
$ref: '#/components/responses/401-unauthorized'
|
|
254
|
+
'403':
|
|
255
|
+
description: The call was made from a sandbox environment.
|
|
256
|
+
content:
|
|
257
|
+
application/json:
|
|
258
|
+
schema:
|
|
259
|
+
$ref: '#/components/schemas/Error'
|
|
260
|
+
examples:
|
|
261
|
+
sandboxEnvironment:
|
|
262
|
+
value:
|
|
263
|
+
errors:
|
|
264
|
+
- code: access_restricted
|
|
265
|
+
message: This request can only be made through the production environment.
|
|
218
266
|
'404':
|
|
219
267
|
$ref: '#/components/responses/404-not-found'
|
|
268
|
+
'422':
|
|
269
|
+
description: '`integrationAccessLevel` is empty and no `accessLevel` was sent.'
|
|
270
|
+
content:
|
|
271
|
+
application/json:
|
|
272
|
+
schema:
|
|
273
|
+
$ref: '#/components/schemas/Error'
|
|
274
|
+
examples:
|
|
275
|
+
emptyIntegrationAccess:
|
|
276
|
+
value:
|
|
277
|
+
errors:
|
|
278
|
+
- code: missing_required_field
|
|
279
|
+
field: accessLevel
|
|
280
|
+
message: You need to provide user with either an account level access or integration level access.
|
|
220
281
|
delete:
|
|
221
282
|
x-internal: false
|
|
222
283
|
summary: Delete a user
|
|
@@ -251,8 +312,12 @@ paths:
|
|
|
251
312
|
summary: Toggle a user's account access (disable or re-enable)
|
|
252
313
|
description: |-
|
|
253
314
|
Toggles the `disabled` flag on a user's access record. Call again to
|
|
254
|
-
re-enable — there is no separate `/enable` path
|
|
255
|
-
|
|
315
|
+
re-enable — there is no separate `/enable` path, and this is the only
|
|
316
|
+
way to change `disabled` (the update operation does not apply it). A
|
|
317
|
+
pending invitation cannot be toggled until the invited user accepts or
|
|
318
|
+
declines it.
|
|
319
|
+
|
|
320
|
+
End-user access records share this route — see the End Users API.
|
|
256
321
|
parameters:
|
|
257
322
|
- name: _userId
|
|
258
323
|
in: path
|
|
@@ -278,7 +343,17 @@ paths:
|
|
|
278
343
|
'204':
|
|
279
344
|
description: User access toggled.
|
|
280
345
|
'400':
|
|
281
|
-
|
|
346
|
+
description: The invitation is still pending.
|
|
347
|
+
content:
|
|
348
|
+
application/json:
|
|
349
|
+
schema:
|
|
350
|
+
$ref: '#/components/schemas/Error'
|
|
351
|
+
examples:
|
|
352
|
+
pendingInvitation:
|
|
353
|
+
value:
|
|
354
|
+
errors:
|
|
355
|
+
- code: invalid_request
|
|
356
|
+
message: You can't disable this invitation without it being accepted or dismissed by the invited user.
|
|
282
357
|
'401':
|
|
283
358
|
$ref: '#/components/responses/401-unauthorized'
|
|
284
359
|
'404':
|
|
@@ -435,9 +510,6 @@ components:
|
|
|
435
510
|
type: object
|
|
436
511
|
description: Writable fields shared by the request and response schemas.
|
|
437
512
|
properties:
|
|
438
|
-
disabled:
|
|
439
|
-
type: boolean
|
|
440
|
-
description: Set to False to enable a disabled user, or True to maintain disabled
|
|
441
513
|
accessLevel:
|
|
442
514
|
type: string
|
|
443
515
|
description: |-
|
|
@@ -452,8 +524,14 @@ components:
|
|
|
452
524
|
`integrationAccessLevel` undefined/empty
|
|
453
525
|
|
|
454
526
|
If per-integration level permissions are needed, omit `accessLevel` and instead populate `integrationAccessLevel`.
|
|
527
|
+
|
|
528
|
+
On update (`PUT /v1/ashares/{_id}`) the body replaces the access settings: `integrationAccessLevel`,
|
|
529
|
+
`accountSSORequired`, and `accountMFARequired` are cleared when omitted, so resend every value to keep.
|
|
455
530
|
x-celigo-ai-guidance:
|
|
456
531
|
- Choose the `accessLevel` value based on what the user should be able to do across the account.
|
|
532
|
+
- |-
|
|
533
|
+
On PUT, "omit" means "clear" for integrationAccessLevel, accountSSORequired, and
|
|
534
|
+
accountMFARequired — GET the record first and resend those three with the new accessLevel.
|
|
457
535
|
enum:
|
|
458
536
|
- monitor
|
|
459
537
|
- manage
|
|
@@ -472,6 +550,8 @@ components:
|
|
|
472
550
|
- If `accessLevel` is omitted, this creates **integration-only** access.
|
|
473
551
|
- If `accessLevel` is `monitor`, this grants **elevated access** (typically `manage`) for specific integrations.
|
|
474
552
|
- If `accessLevel` is `manage` or `administrator`, do not set `integrationAccessLevel`.
|
|
553
|
+
|
|
554
|
+
Cleared when omitted on update — send `[]` explicitly only when you mean no per-integration grants.
|
|
475
555
|
items:
|
|
476
556
|
type: object
|
|
477
557
|
properties:
|
|
@@ -493,12 +573,16 @@ components:
|
|
|
493
573
|
manage: Full access to edit the integration and its resources.
|
|
494
574
|
accountSSORequired:
|
|
495
575
|
type: boolean
|
|
496
|
-
description:
|
|
576
|
+
description: |-
|
|
577
|
+
When true, SSO is required for this user in this account. Cleared when
|
|
578
|
+
omitted on update — resend it with every `PUT /v1/ashares/{_id}`.
|
|
497
579
|
x-celigo-ai-guidance:
|
|
498
580
|
- Whether the invited user must use SSO to access this account.
|
|
499
581
|
accountMFARequired:
|
|
500
582
|
type: boolean
|
|
501
|
-
description:
|
|
583
|
+
description: |-
|
|
584
|
+
When true, MFA is required for this user in this account. Cleared when
|
|
585
|
+
omitted on update — resend it with every `PUT /v1/ashares/{_id}`.
|
|
502
586
|
x-celigo-ai-guidance:
|
|
503
587
|
- Whether the invited user must use MFA to access this account.
|
|
504
588
|
allowAccessToAPIM:
|
|
@@ -601,6 +685,13 @@ components:
|
|
|
601
685
|
type: boolean
|
|
602
686
|
readOnly: true
|
|
603
687
|
description: When true, the user has accepted the invitation to join the account.
|
|
688
|
+
disabled:
|
|
689
|
+
type: boolean
|
|
690
|
+
readOnly: true
|
|
691
|
+
description: |-
|
|
692
|
+
When true, the user's access to the account is suspended. Changed
|
|
693
|
+
only by `PUT /v1/ashares/{_userId}/disable` — a value sent on the
|
|
694
|
+
update operation is accepted but not applied.
|
|
604
695
|
userType:
|
|
605
696
|
type: string
|
|
606
697
|
readOnly: true
|
|
@@ -608,8 +699,10 @@ components:
|
|
|
608
699
|
- workspace
|
|
609
700
|
description: |-
|
|
610
701
|
Discriminates workspace users from end users on the underlying
|
|
611
|
-
access-record model.
|
|
612
|
-
records — end users are managed through the End Users API
|
|
702
|
+
access-record model. Reads on this API return only `workspace`
|
|
703
|
+
records — end users are managed through the End Users API, which
|
|
704
|
+
shares the update and disable routes. Sending it back on update
|
|
705
|
+
is rejected.
|
|
613
706
|
x-enumDescriptions:
|
|
614
707
|
workspace: A workspace (team member) access record.
|
|
615
708
|
lastSignIn:
|