PrivacyApi
extends ManagementSupport
in package
GDPR self-service: the authenticated account's own export and erasure. Scoped to the caller, never to another user.
The privacy namespace handle (CONTRACT.md §27.2), reached as
$client->management()->privacy(). 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
- cancelDelete() : void
- `GET /api/v1/auth/account/delete/cancel?token=<opaque>`
- downloadExport() : void
- `GET /api/v1/account/export/{token}`
- forTenant() : static
- A COPY of this handle scoped to `$tenantId` (§27.4 rule 3). See {@see self::inOrg()} for why it copies.
- grantScopeConsent() : void
- `POST /api/v1/account/consents/oidc-scopes` — record a scope-release consent.
- inOrg() : static
- A COPY of this handle scoped to `$orgId` (§27.4 rule 3).
- listConsents() : array<int, ConsentView>
- `GET /api/v1/account/consents` — the caller's own consent records.
- requestDelete() : void
- `POST /api/v1/account/delete`
- requestExport() : void
- `POST /api/v1/account/export`
- withdrawScopeConsent() : void
- `DELETE /api/v1/account/consents/oidc-scopes/{client_id}` — withdraw.
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.
cancelDelete()
`GET /api/v1/auth/account/delete/cancel?token=<opaque>`
public
cancelDelete(string $token) : void
GET /api/v1/auth/account/delete/cancel.
Returns nothing; the server answers with an empty body.
Parameters
- $token : string
-
the required
tokenquery parameter
downloadExport()
`GET /api/v1/account/export/{token}`
public
downloadExport(string $token) : void
Returns nothing; the server answers with an empty body.
Parameters
- $token : string
-
the
{token}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
staticgrantScopeConsent()
`POST /api/v1/account/consents/oidc-scopes` — record a scope-release consent.
public
grantScopeConsent(GrantScopeConsent $body) : void
POST /api/v1/account/consents/oidc-scopes.
Returns nothing; the server answers with an empty body.
Parameters
- $body : GrantScopeConsent
-
the request body
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
staticlistConsents()
`GET /api/v1/account/consents` — the caller's own consent records.
public
listConsents() : array<int, ConsentView>
GET /api/v1/account/consents.
Returns the server's complete list. This endpoint is NOT paginated, so the result is a
plain list and never a Page (§27.4 rule 4).
Return values
array<int, ConsentView>requestDelete()
`POST /api/v1/account/delete`
public
requestDelete() : void
Returns nothing; the server answers with an empty body.
requestExport()
`POST /api/v1/account/export`
public
requestExport() : void
Returns nothing; the server answers with an empty body.
withdrawScopeConsent()
`DELETE /api/v1/account/consents/oidc-scopes/{client_id}` — withdraw.
public
withdrawScopeConsent(string $clientId) : void
DELETE /api/v1/account/consents/oidc-scopes/{client_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
- $clientId : string
-
the
{client_id}path parameter