ScimTargetsApi
extends ManagementSupport
in package
A tenant's outbound SCIM targets (CONTRACT §31): the downstream SCIM 2.0 service providers AXIAM pushes the tenant's users and groups to, each with its delivery state. The credential AXIAM pushes with is write-only. Deleting a target does not deprovision anything downstream.
The scim_targets namespace handle (CONTRACT.md §27.2), reached as
$client->management()->scimTargets(). Every method here goes through the one shared ManagementTransport, so §3 CSRF, the §4 cookie jar, the §5 tenant header, §6 TLS, §16 retry
and §19 telemetry apply without this class doing anything to opt in (§27.8).
Table of Contents
Methods
- __construct() : mixed
- create() : ScimTargetResponse
- `POST /api/v1/scim-targets`
- delete() : void
- `DELETE /api/v1/scim-targets/{id}`
- forTenant() : static
- A COPY of this handle scoped to `$tenantId` (§27.4 rule 3). See {@see self::inOrg()} for why it copies.
- get() : ScimTargetResponse
- `GET /api/v1/scim-targets/{id}`
- inOrg() : static
- A COPY of this handle scoped to `$orgId` (§27.4 rule 3).
- listItems() : Page<string|int, ScimTargetResponse>
- `GET /api/v1/scim-targets`
- reconcile() : ScimReconcileAccepted
- `POST /api/v1/scim-targets/{id}/reconcile`
- update() : ScimTargetResponse
- `PUT /api/v1/scim-targets/{id}`
Methods
__construct()
public
__construct(ManagementTransport $transport[, NamespaceScope $scope = new NamespaceScope() ][, string|null $clientOrgId = null ][, string|null $clientTenantId = null ]) : mixed
Parameters
- $transport : ManagementTransport
-
The one wire path (§27.8).
- $scope : NamespaceScope = new NamespaceScope()
-
Per-handle
{org_id}/{tenant_id}overrides. - $clientOrgId : string|null = null
-
The client's own organization id, or
null. - $clientTenantId : string|null = null
-
The client's own tenant id, or
null.
create()
`POST /api/v1/scim-targets`
public
create(ScimTargetInput $body) : ScimTargetResponse
credential is required here (§31.3 rule 2). It is write-only: no response ever carries
it, and the SDK keeps no copy.
Parameters
- $body : ScimTargetInput
-
the request body
Return values
ScimTargetResponsedelete()
`DELETE /api/v1/scim-targets/{id}`
public
delete(string $id) : void
Returns nothing; the server answers with an empty body.
NOT idempotent (§27.4 rule 6): deleting something already deleted raises NotFoundError rather than succeeding quietly.
Deprovisions nothing downstream (§31.3 rule 8): the users and groups AXIAM created
in the service provider stay there, and AXIAM no longer knows them. To remove them, set
deprovision to delete, let AXIAM push, and only then delete the target.
Parameters
- $id : string
-
the
{id}path parameter
forTenant()
A COPY of this handle scoped to `$tenantId` (§27.4 rule 3). See {@see self::inOrg()} for why it copies.
public
forTenant(string $tenantId) : static
Parameters
- $tenantId : string
Return values
staticget()
`GET /api/v1/scim-targets/{id}`
public
get(string $id) : ScimTargetResponse
Parameters
- $id : string
-
the
{id}path parameter
Return values
ScimTargetResponseinOrg()
A COPY of this handle scoped to `$orgId` (§27.4 rule 3).
public
inOrg(string $orgId) : static
Returns a new handle rather than mutating this one. An administrator holding a handle to their own organization should not find it repointed at someone else's because an unrelated code path re-scoped a shared object — and on a management surface that failure mode writes to the wrong tenant rather than merely reading from it.
Parameters
- $orgId : string
Return values
staticlistItems()
`GET /api/v1/scim-targets`
public
listItems([PageRequest|null $page = null ]) : Page<string|int, ScimTargetResponse>
Returns ONE page. Page::$total is the server's count across all pages and is not
count($page) — see §27.4 rule 4.
Parameters
- $page : PageRequest|null = null
-
which page to fetch; defaults to the first
Return values
Page<string|int, ScimTargetResponse>reconcile()
`POST /api/v1/scim-targets/{id}/reconcile`
public
reconcile(string $id) : ScimReconcileAccepted
Starts a reconciliation in the background and answers 202; its outcome is on the
target's state (§31.3 rule 7). 409 while a run holds the claim, within five minutes
of the last one, or for a disabled target. Not retried, and nothing here polls for the
run to finish.
Parameters
- $id : string
-
the
{id}path parameter
Return values
ScimReconcileAcceptedupdate()
`PUT /api/v1/scim-targets/{id}`
public
update(string $id, ScimTargetInput $body) : ScimTargetResponse
The credential is bound to its URL (§31.3 rule 2): absent credential keeps the
stored one -- except that changing base_url of a bearer target, auth.token_url or
base_url of a client-credentials target, or auth.type, without credential in the
same write is refused 400 and changes nothing. The SDK holds no credential to re-send.
Every other member left out takes its default -- start from ReadModifyWrite::scimTarget(). An update overtaken by another
administrator's write is 409 (§31.3 rule 4): reload, then retry yourself.
Parameters
- $id : string
-
the
{id}path parameter - $body : ScimTargetInput
-
the request body