AXIAM PHP SDK

DirectoryConfig
in package
implements JsonSerializable

FinalYes

A tenant's directory configuration, as stored and as read back. Carries no secret: see the module documentation.

Table of Contents

Interfaces

JsonSerializable

Properties

$baseDn  : string
$bindDn  : string
$createdAt  : string
$enabled  : bool
$groupBaseDn  : string|null
$groupFilter  : string|null
$groupMappings  : array<string|int, mixed>
$groupMemberAttribute  : string
$groupNestingDepth  : int
$id  : string
$jitProvisioning  : bool
$kind  : DirectoryKind
$startTls  : bool
$syncIntervalSecs  : int
$tenantId  : string
$trustAnchorsPem  : array<string|int, mixed>
$updatedAt  : string
$url  : string
$userAttributeMap  : UserAttributeMap
$userFilter  : string

Methods

__construct()  : mixed
Constructs a DirectoryConfig.
fromArray()  : self
Rebuilds a DirectoryConfig from one decoded JSON object.
jsonSerialize()  : array<string, mixed>
Renders this object for `json_encode()`.
toArray()  : array<string, mixed>
Renders this object back to its wire form.
unknownEnumValue()  : string|null
The string the server sent for an open-enum member this SDK has no name for, or `null`.

Properties

$groupMappings read-only

public array<string|int, mixed> $groupMappings

$trustAnchorsPem read-only

public array<string|int, mixed> $trustAnchorsPem

Methods

__construct()

Constructs a DirectoryConfig.

public __construct(string $baseDn, string $bindDn, string $createdAt, bool $enabled, array<int, GroupMapping> $groupMappings, string $groupMemberAttribute, int $groupNestingDepth, string $id, bool $jitProvisioning, DirectoryKind $kind, bool $startTls, int $syncIntervalSecs, string $tenantId, array<int, string> $trustAnchorsPem, string $updatedAt, string $url, UserAttributeMap $userAttributeMap, string $userFilter[, string|null $groupBaseDn = null ][, string|null $groupFilter = null ]) : mixed
Parameters
$baseDn : string

Where users are searched for.

$bindDn : string

The service account AXIAM binds as to search. It should hold read-only rights: AXIAM never writes to a directory.

$createdAt : string

When the row was created.

$enabled : bool

Whether the directory is used for sign-in and sync.

$groupMappings : array<int, GroupMapping>

The group-mapping table (D-30): which directory groups put a user into which AXIAM groups. Empty means no directory group maps to anything, and a sign-in then removes every directory-sourced membership the user held.

$groupMemberAttribute : string

memberOf (user-side, AD) or member (group-side, OpenLDAP).

$groupNestingDepth : int

How many levels of nested groups are followed, 0..=10.

$id : string

Row identifier.

$jitProvisioning : bool

Provision an AXIAM user on first successful directory sign-in.

$kind : DirectoryKind

The kind of directory, which selects defaults.

$startTls : bool

Upgrade an ldap:// connection with StartTLS before any bind.

$syncIntervalSecs : int

Seconds between incremental sync runs.

$tenantId : string

The owning tenant. At most one configuration exists per tenant.

$trustAnchorsPem : array<int, string>

PEM CA certificates that anchor trust in the directory's server certificate. Empty means the platform roots used by the rest of the workspace's outbound TLS. An organisation CA's PEM can be pasted here.

$updatedAt : string

When the row was last written.

$url : string

ldaps://host[:port] or ldap://host[:port] together with [Self::start_tls]. A plaintext URL is refused at configuration time.

$userAttributeMap : UserAttributeMap

Which attribute feeds which user field.

$userFilter : string

The user-lookup filter template. It contains exactly one {username} placeholder, which the bind path replaces with the RFC 4515-escaped login name; the template itself is never formatted with raw input.

$groupBaseDn : string|null = null

Where groups are searched for (reverse-member lookups, group sync). (optional)

$groupFilter : string|null = null

Restricts which entries under [Self::group_base_dn] are groups. (optional)

fromArray()

Rebuilds a DirectoryConfig from one decoded JSON object.

public static fromArray(array<string, mixed> $data) : self
Parameters
$data : array<string, mixed>

The raw wire object.

Return values
self

jsonSerialize()

Renders this object for `json_encode()`.

public jsonSerialize() : array<string, mixed>

Any Sensitive it carries stays WRAPPED here, so a log line or a json_encode($model) in application code prints [SENSITIVE]. The one place a secret is revealed is ManagementTransport, on the way to the wire and nowhere else (§27.5).

Rendering for a log line never fails: an unknown union arm renders its discriminator and an unrecognised enum value its empty Unknown spelling here, and only self::toArray() -- the request path -- refuses to send it (CONTRACT.md §31.2, §34.2 P12.2).

Return values
array<string, mixed>

toArray()

Renders this object back to its wire form.

public toArray() : array<string, mixed>

§27.4 rule 5: a null property is OMITTED, not emitted as null. On a sparse update those two say opposite things — "leave this alone" versus "set this to nothing" — and only omission means the first.

Return values
array<string, mixed>

unknownEnumValue()

The string the server sent for an open-enum member this SDK has no name for, or `null`.

public unknownEnumValue(string $wire) : string|null

Only a model decoded by self::fromArray() knows it, and only for a member that decoded to Unknown (CONTRACT.md §27.6.2 item 4, §34.8 (c)): it lets a refusal name the value. It is for messages -- it is never rendered by self::toArray() or self::jsonSerialize() and so is never sent.

Parameters
$wire : string

The member's wire name.

Return values
string|null
On this page

Search results