Google Tag Manager - v1.0.0

Data Objects

Typed DTOs under ArtisanPackUI\GoogleTagManager\Api\. All are immutable value objects with public readonly properties.

Primitive DTOs

Returned by TagManagerClient list methods.

Class Fields
AccountData accountId, name, path
ContainerData containerId, name, publicId, path, usageContext[]
WorkspaceData workspaceId, name, description, path
TagData accountId, containerId, workspaceId, tagId, name, type, status ('paused' when the upstream paused boolean is true, otherwise 'active'; constants TagData::STATUS_PAUSED and STATUS_ACTIVE), firingTriggerIds[], blockingTriggerIds[], raw (the untouched upstream row)
TriggerData triggerId, name, type
VariableData variableId, name, type
ContainerVersionHeaderData containerVersionId, name, deleted

Composed DTOs

Returned by the fetchers.

ContainerOverviewData

Fields:

  • container: ContainerData
  • workspace: WorkspaceData
  • tagCount: int
  • triggerCount: int
  • variableCount: int
  • latestVersion: ?ContainerVersionHeaderData

toArray() returns a stable snake-cased shape suitable for JSON output (null when the container has never been published).

TagListData

Fields:

  • tags: list<array{tagId,name,type,status,firingTriggers:list<{id,name}>,blockingTriggers:list<{id,name}>}>

The tag rows already have trigger names joined in — no follow-up call needed from the view layer. Missing triggers fall back to their ID as the name.

toArray() returns [ 'tags' => [...] ] for direct JSON responses.

Parsing

Every primitive DTO has a static fromArray() (or fromResponseRow()) constructor that accepts the raw upstream API row. The client uses these to build typed lists — you rarely need to call them directly, but they're useful when testing against captured API fixtures.