Skip to content

SDK API Reference / CASSDK

Class: CASSDK ​

CAS SDK — composable audience operations

Constructors ​

Constructor ​

new CASSDK(context): CASSDK

Parameters ​

context ​

SDKContext

Returns ​

CASSDK

Properties ​

_connectionSDK? ​

optional _connectionSDK?: ConnectionSDK

Set by TDX constructor to provide cross-SDK access

Methods ​

createSegment() ​

createSegment(request): Promise<ComposableSegment>

Create a composable segment, user-authored (kind: 'composable', the default) or journey-owned (kind: 'journey' plus composableJourneyId).

Takes an already-resolved composableAudienceId on the request rather than a name — its caller (SegmentSDK.createJourneyLocalSegmentForAudience, during journey push) has the resolved audience already.

Parameters ​

request ​

CreateComposableSegmentRequest

Returns ​

Promise<ComposableSegment>


deleteSegment() ​

deleteSegment(audienceNameOrId, segmentName): Promise<{ id: string; }>

Delete a single composable child segment by name, under the given audience. Single-named- target only (not a directory/bulk prune) — see push-workflow.ts's deleteComposableSegment doc comment.

Prefer deleteSegmentById when the caller has already resolved the segment (e.g. to check it exists before confirming) — this method re-lists and re-resolves by name internally, which is an extra round-trip and a TOCTOU window: if a different segment gets created under the same name between the caller's own lookup and this call, this would delete that one instead of the one the caller actually confirmed.

Parameters ​

audienceNameOrId ​

string

segmentName ​

string

Returns ​

Promise<{ id: string; }>


deleteSegmentById() ​

deleteSegmentById(segmentId): Promise<void>

Delete a composable child segment by its already-resolved ID — no name/audience lookup, no re-resolution. Use this whenever the caller already has the segment's ID from its own prior lookup, to avoid both an extra round-trip and the race deleteSegment's doc comment describes.

Parameters ​

segmentId ​

string

Returns ​

Promise<void>


get() ​

get(idOrName): Promise<ComposableAudience>

Get a composable audience by ID or name

Parameters ​

idOrName ​

string

Returns ​

Promise<ComposableAudience>


getParentSegmentEntity() ​

getParentSegmentEntity(id): Promise<ParentSegment>

Show counterpart of listParentSegmentEntities. Takes a resolved audience id.

Parameters ​

id ​

string

Returns ​

Promise<ParentSegment>


getSegment() ​

getSegment(segmentId): Promise<ComposableSegment>

Get one composable segment by id.

Takes no audience id — /entities/composable_segments/:id does not need one — and unlike listSegments it also returns journey-local segments, which that method filters out (see COMPOSABLE_SEGMENT_TYPE_JOURNEY). Journey pull needs this to label the segments a journey's steps reference.

Parameters ​

segmentId ​

string

Returns ​

Promise<ComposableSegment>


list() ​

list(): Promise<ComposableAudience[]>

List all composable audiences

Returns ​

Promise<ComposableAudience[]>


listFolders() ​

listFolders(audienceId): Promise<CASFolder[]>

List a composable audience's folders (flat; hierarchy is reconstructed from parentFolderId).

Unlike its name-accepting siblings on this class, this takes an already-resolved id — its callers (journey pull/list) resolve the audience through resolveAudienceContext first, so a name lookup here would only add a wasted round-trip.

Parameters ​

audienceId ​

string

Returns ​

Promise<CASFolder[]>


listParentSegmentEntities() ​

listParentSegmentEntities(): Promise<ParentSegment[]>

List composable audiences as v5 entities, carrying the root-folder relationship.

This is the composable half of the union that resolveAudienceContext (sdk/segment/audience-context.ts) matches names against, which is why it returns the same ParentSegment shape as SegmentSDK.listParents() rather than ComposableAudience — see CASApiClient.listComposableParentSegments' doc comment for why the two shapes are interchangeable here.

Returns ​

Promise<ParentSegment[]>


listSegments() ​

listSegments(audienceNameOrId): Promise<ComposableSegment[]>

List segments for a composable audience

Parameters ​

audienceNameOrId ​

string

Returns ​

Promise<ComposableSegment[]>


preview() ​

preview(audienceNameOrId, segmentNameOrId): Promise<{ customers?: CASPreviewCustomers; query: CASPreviewResult; }>

Preview a composable segment (runs query on CDW). Accepts segment name or ID. Submits query, polls for completion, fetches customer rows.

The preview endpoint consumes a rule, not a segment ID (see CASApiClient.previewSegment) — an absent/empty rule would silently preview SQL FALSE and report count=0 (CAS-812), so reject those upfront.

Parameters ​

audienceNameOrId ​

string

segmentNameOrId ​

string

Returns ​

Promise<{ customers?: CASPreviewCustomers; query: CASPreviewResult; }>


pull() ​

pull(nameOrId, options): Promise<CASPullResult>

Pull a composable audience + segments + activations to YAML files

Parameters ​

nameOrId ​

string

options ​

CASPullOptions

Returns ​

Promise<CASPullResult>


push() ​

push(files, options?): Promise<CASPushResult>

Push YAML files to CAS API

Parameters ​

files ​

string[]

options? ​

CASPushOptions

Returns ​

Promise<CASPushResult>


resolveAudienceContext() ​

resolveAudienceContext(nameOrId): Promise<ResolvedAudience>

Resolve a composable audience name or id to a ResolvedAudience — the composable counterpart of SegmentSDK.resolveAudienceContext, for tdx cas journey list/view (CAS-985) and future composable-side commands that need the root folder id rather than the friendly ComposableAudience shape get()/resolveAudienceId() return.

Parameters ​

nameOrId ​

string

Returns ​

Promise<ResolvedAudience>


resolveAudienceId() ​

resolveAudienceId(nameOrId): Promise<string>

Resolve audience name → ID

Parameters ​

nameOrId ​

string

Returns ​

Promise<string>


resolveSegment() ​

resolveSegment(audienceNameOrId, segmentNameOrId): Promise<ComposableSegment>

Resolve segment name or ID → full segment (including its saved rule) within an audience

Parameters ​

audienceNameOrId ​

string

segmentNameOrId ​

string

Returns ​

Promise<ComposableSegment>


resolveSegmentId() ​

resolveSegmentId(audienceNameOrId, segmentNameOrId): Promise<string>

Resolve segment name → ID within an audience

Parameters ​

audienceNameOrId ​

string

segmentNameOrId ​

string

Returns ​

Promise<string>


updateSegment() ​

updateSegment(segmentId, request): Promise<ComposableSegment>

Update a composable segment by id.

Rejected with a 400 ("Segments associated with the launched journey cannot be modified") when the segment is owned by a launched composable journey — journey push maps that message.

Parameters ​

segmentId ​

string

request ​

UpdateComposableSegmentRequest

Returns ​

Promise<ComposableSegment>