AXIAM PHP SDK

SsfApi extends ManagementSupport
in package

FinalYes

A tenant's Shared Signals Framework streams (CONTRACT §32): which receiver -- an OAuth2 client of the tenant -- receives which CAEP and RISC security events, as SETs pushed to its endpoint or polled. The receiver's own protocol (transmitter metadata, the SSF stream management API, polling) is not in this registry.

The ssf namespace handle (CONTRACT.md §27.2), reached as $client->management()->ssf(). 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
createStream()  : SsfStream
`POST /api/v1/tenants/{tenant_id}/ssf/streams`
deleteStream()  : void
`DELETE /api/v1/tenants/{tenant_id}/ssf/streams/{stream_id}` — the stream and its buffered events.
forTenant()  : static
A COPY of this handle scoped to `$tenantId` (§27.4 rule 3). See {@see self::inOrg()} for why it copies.
getStream()  : SsfStream
`GET /api/v1/tenants/{tenant_id}/ssf/streams/{stream_id}`
inOrg()  : static
A COPY of this handle scoped to `$orgId` (§27.4 rule 3).
listStreams()  : Page<string|int, SsfStream>
`GET /api/v1/tenants/{tenant_id}/ssf/streams`
updateStream()  : SsfStream
`PUT /api/v1/tenants/{tenant_id}/ssf/streams/{stream_id}` — a **replacement**: an omitted optional member takes its default, except the header, which absent keeps.

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.

deleteStream()

`DELETE /api/v1/tenants/{tenant_id}/ssf/streams/{stream_id}` — the stream and its buffered events.

public deleteStream(string $streamId) : void

DELETE /api/v1/tenants/{tenant_id}/ssf/streams/{stream_id}.

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.

Parameters
$streamId : string

the {stream_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
static

getStream()

`GET /api/v1/tenants/{tenant_id}/ssf/streams/{stream_id}`

public getStream(string $streamId) : SsfStream
Parameters
$streamId : string

the {stream_id} path parameter

Return values
SsfStream

inOrg()

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
static

listStreams()

`GET /api/v1/tenants/{tenant_id}/ssf/streams`

public listStreams([PageRequest|null $page = null ]) : Page<string|int, SsfStream>

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, SsfStream>

updateStream()

`PUT /api/v1/tenants/{tenant_id}/ssf/streams/{stream_id}` — a **replacement**: an omitted optional member takes its default, except the header, which absent keeps.

public updateStream(string $streamId, SsfStreamInput $body) : SsfStream

PUT /api/v1/tenants/{tenant_id}/ssf/streams/{stream_id}.

An omitted optional member takes its default (§32.2) -- except authorization_header, which absent keeps the stored one -- unless the update moves endpoint_url to another scheme, host or port while a header is stored: then it must carry authorization_header again or clear_authorization_header: true, else 400 (§32.3 rule 5). On an update the omitted members take these defaults: description, endpoint_url and status_reason null, events_requested every event of events_allowed, subject_format iss_sub, status enabled, clear_authorization_header false. events_requested has three meanings (§32.2, contract 1.62), and they are not interchangeable: absent (the property left null) resets the stream to every event of events_allowed, widening a narrowing the receiver made; [] is stored as the receiver's "none" -- it does not widen, and the stream carries nothing; a list is stored as given and refused (400) if any entry is outside events_allowed. A caller with no SDK is bound by the same meaning: an events_requested left out of the PUT resets the stream. An edit therefore sends back the events_requested and the expected_updated_at it read -- the updated_at string exactly as the response carried it, which makes the update conditional on that version (409 if the stream was written since, by the receiver as well as by an administrator; never retried) -- and, when it lowers events_allowed, cuts events_requested to the new ceiling. Start from ReadModifyWrite::ssfStream(), which does all of that: it takes the stream you read and the changes you want. An update overtaken by the receiver's own write is 409: read the stream again.

Parameters
$streamId : string

the {stream_id} path parameter

$body : SsfStreamInput

the request body

Return values
SsfStream
On this page

Search results