Skip to main content

Class: RedTeamNetworkBrokerClient

Defined in: src/red-team/network-broker-client.ts:37

Client for Red Team Network Broker channel operations. Uses a distinct network broker base URL (data plane), sharing the Red Team OAuth adapter.

Constructors

Constructor

new RedTeamNetworkBrokerClient(opts): RedTeamNetworkBrokerClient;

Defined in: src/red-team/network-broker-client.ts:42

Parameters

ParameterType
optsRedTeamNetworkBrokerClientOptions

Returns

RedTeamNetworkBrokerClient

Methods

listChannels()

listChannels(opts?): Promise<objectOutputType<{
pagination: ZodOptional<ZodObject<{
total_items: ZodOptional<ZodNullable<ZodNumber>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
total_items: ZodOptional<ZodNullable<ZodNumber>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
total_items: ZodOptional<ZodNullable<ZodNumber>>;
}, ZodTypeAny, "passthrough">>>;
data: ZodDefault<ZodArray<ZodObject<{
uuid: ZodOptional<ZodString>;
name: ZodOptional<ZodNullable<ZodString>>;
description: ZodOptional<ZodNullable<ZodString>>;
status: ZodOptional<ZodNullable<ZodString>>;
added_by: ZodOptional<ZodNullable<ZodString>>;
created_at: ZodOptional<ZodNullable<ZodString>>;
updated_at: ZodOptional<ZodNullable<ZodString>>;
last_online_at: ZodOptional<ZodNullable<ZodString>>;
connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
features: ZodOptional<ZodNullable<ZodRecord<ZodString, ZodBoolean>>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
uuid: ZodOptional<ZodString>;
name: ZodOptional<ZodNullable<ZodString>>;
description: ZodOptional<ZodNullable<ZodString>>;
status: ZodOptional<ZodNullable<ZodString>>;
added_by: ZodOptional<ZodNullable<ZodString>>;
created_at: ZodOptional<ZodNullable<ZodString>>;
updated_at: ZodOptional<ZodNullable<ZodString>>;
last_online_at: ZodOptional<ZodNullable<ZodString>>;
connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
features: ZodOptional<ZodNullable<ZodRecord<..., ...>>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
uuid: ZodOptional<ZodString>;
name: ZodOptional<ZodNullable<ZodString>>;
description: ZodOptional<ZodNullable<ZodString>>;
status: ZodOptional<ZodNullable<ZodString>>;
added_by: ZodOptional<ZodNullable<ZodString>>;
created_at: ZodOptional<ZodNullable<ZodString>>;
updated_at: ZodOptional<ZodNullable<ZodString>>;
last_online_at: ZodOptional<ZodNullable<ZodString>>;
connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
features: ZodOptional<ZodNullable<ZodRecord<..., ...>>>;
}, ZodTypeAny, "passthrough">>, "many">>;
}, ZodTypeAny, "passthrough">>;

Defined in: src/red-team/network-broker-client.ts:62

List network broker channels with optional filters.

Parameters

ParameterTypeDescription
opts?ChannelListOptionsOptional pagination, search, and status filter options.

Returns

Promise<objectOutputType<{ pagination: ZodOptional<ZodObject<{ total_items: ZodOptional<ZodNullable<ZodNumber>>; }, "passthrough", ZodTypeAny, objectOutputType<{ total_items: ZodOptional<ZodNullable<ZodNumber>>; }, ZodTypeAny, "passthrough">, objectInputType<{ total_items: ZodOptional<ZodNullable<ZodNumber>>; }, ZodTypeAny, "passthrough">>>; data: ZodDefault<ZodArray<ZodObject<{ uuid: ZodOptional<ZodString>; name: ZodOptional<ZodNullable<ZodString>>; description: ZodOptional<ZodNullable<ZodString>>; status: ZodOptional<ZodNullable<ZodString>>; added_by: ZodOptional<ZodNullable<ZodString>>; created_at: ZodOptional<ZodNullable<ZodString>>; updated_at: ZodOptional<ZodNullable<ZodString>>; last_online_at: ZodOptional<ZodNullable<ZodString>>; connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>; outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>; features: ZodOptional<ZodNullable<ZodRecord<ZodString, ZodBoolean>>>; }, "passthrough", ZodTypeAny, objectOutputType<{ uuid: ZodOptional<ZodString>; name: ZodOptional<ZodNullable<ZodString>>; description: ZodOptional<ZodNullable<ZodString>>; status: ZodOptional<ZodNullable<ZodString>>; added_by: ZodOptional<ZodNullable<ZodString>>; created_at: ZodOptional<ZodNullable<ZodString>>; updated_at: ZodOptional<ZodNullable<ZodString>>; last_online_at: ZodOptional<ZodNullable<ZodString>>; connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>; outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>; features: ZodOptional<ZodNullable<ZodRecord<..., ...>>>; }, ZodTypeAny, "passthrough">, objectInputType<{ uuid: ZodOptional<ZodString>; name: ZodOptional<ZodNullable<ZodString>>; description: ZodOptional<ZodNullable<ZodString>>; status: ZodOptional<ZodNullable<ZodString>>; added_by: ZodOptional<ZodNullable<ZodString>>; created_at: ZodOptional<ZodNullable<ZodString>>; updated_at: ZodOptional<ZodNullable<ZodString>>; last_online_at: ZodOptional<ZodNullable<ZodString>>; connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>; outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>; features: ZodOptional<ZodNullable<ZodRecord<..., ...>>>; }, ZodTypeAny, "passthrough">>, "many">>; }, ZodTypeAny, "passthrough">>

The paginated list of channels.

Example

import { RedTeamClient } from '@cdot65/prisma-airs-sdk';
const rt = new RedTeamClient();

const channels = await rt.networkBroker.listChannels({ status: ['ONLINE', 'DRAFT'], limit: 10 });
// channels =>
// { pagination: { total_items: 2 }, data: [{ uuid: '550e8400-...', name: 'prod-broker', status: 'ONLINE' }] }

createChannel()

createChannel(body): Promise<objectOutputType<{
uuid: ZodOptional<ZodString>;
name: ZodOptional<ZodNullable<ZodString>>;
description: ZodOptional<ZodNullable<ZodString>>;
status: ZodOptional<ZodNullable<ZodString>>;
added_by: ZodOptional<ZodNullable<ZodString>>;
created_at: ZodOptional<ZodNullable<ZodString>>;
updated_at: ZodOptional<ZodNullable<ZodString>>;
last_online_at: ZodOptional<ZodNullable<ZodString>>;
connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
features: ZodOptional<ZodNullable<ZodRecord<ZodString, ZodBoolean>>>;
}, ZodTypeAny, "passthrough">>;

Defined in: src/red-team/network-broker-client.ts:99

Create a network broker channel.

Parameters

ParameterTypeDescription
bodyobjectOutputTypeChannel creation request body (requires name).

Returns

Promise<objectOutputType<{ uuid: ZodOptional<ZodString>; name: ZodOptional<ZodNullable<ZodString>>; description: ZodOptional<ZodNullable<ZodString>>; status: ZodOptional<ZodNullable<ZodString>>; added_by: ZodOptional<ZodNullable<ZodString>>; created_at: ZodOptional<ZodNullable<ZodString>>; updated_at: ZodOptional<ZodNullable<ZodString>>; last_online_at: ZodOptional<ZodNullable<ZodString>>; connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>; outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>; features: ZodOptional<ZodNullable<ZodRecord<ZodString, ZodBoolean>>>; }, ZodTypeAny, "passthrough">>

The created channel.

Example

import { RedTeamClient } from '@cdot65/prisma-airs-sdk';
const rt = new RedTeamClient();

const channel = await rt.networkBroker.createChannel({
name: 'prod-broker',
description: 'Production network broker channel',
});
// channel =>
// { uuid: '550e8400-...', name: 'prod-broker', status: 'DRAFT' }

getChannelStats()

getChannelStats(): Promise<objectOutputType<{
network_channels_server_domain: ZodOptional<ZodNullable<ZodString>>;
docker_registry: ZodOptional<ZodNullable<ZodString>>;
helm_chart: ZodOptional<ZodNullable<ZodString>>;
docker_image: ZodOptional<ZodNullable<ZodString>>;
online_channels: ZodOptional<ZodNullable<ZodNumber>>;
total_channels: ZodOptional<ZodNullable<ZodNumber>>;
client_version: ZodOptional<ZodNullable<ZodString>>;
}, ZodTypeAny, "passthrough">>;

Defined in: src/red-team/network-broker-client.ts:124

Get network broker channel stats.

Returns

Promise<objectOutputType<{ network_channels_server_domain: ZodOptional<ZodNullable<ZodString>>; docker_registry: ZodOptional<ZodNullable<ZodString>>; helm_chart: ZodOptional<ZodNullable<ZodString>>; docker_image: ZodOptional<ZodNullable<ZodString>>; online_channels: ZodOptional<ZodNullable<ZodNumber>>; total_channels: ZodOptional<ZodNullable<ZodNumber>>; client_version: ZodOptional<ZodNullable<ZodString>>; }, ZodTypeAny, "passthrough">>

The channel stats (broker server, registry, chart, image, channel counts).

Example

import { RedTeamClient } from '@cdot65/prisma-airs-sdk';
const rt = new RedTeamClient();

const stats = await rt.networkBroker.getChannelStats();
// stats =>
// { network_channels_server_domain: 'broker.example.com', online_channels: 3, total_channels: 5, client_version: '1.4.0' }

getChannel()

getChannel(channelId): Promise<objectOutputType<{
uuid: ZodOptional<ZodString>;
name: ZodOptional<ZodNullable<ZodString>>;
description: ZodOptional<ZodNullable<ZodString>>;
status: ZodOptional<ZodNullable<ZodString>>;
added_by: ZodOptional<ZodNullable<ZodString>>;
created_at: ZodOptional<ZodNullable<ZodString>>;
updated_at: ZodOptional<ZodNullable<ZodString>>;
last_online_at: ZodOptional<ZodNullable<ZodString>>;
connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
features: ZodOptional<ZodNullable<ZodRecord<ZodString, ZodBoolean>>>;
}, ZodTypeAny, "passthrough">>;

Defined in: src/red-team/network-broker-client.ts:149

Get a network broker channel by UUID.

Parameters

ParameterTypeDescription
channelIdstringThe channel UUID.

Returns

Promise<objectOutputType<{ uuid: ZodOptional<ZodString>; name: ZodOptional<ZodNullable<ZodString>>; description: ZodOptional<ZodNullable<ZodString>>; status: ZodOptional<ZodNullable<ZodString>>; added_by: ZodOptional<ZodNullable<ZodString>>; created_at: ZodOptional<ZodNullable<ZodString>>; updated_at: ZodOptional<ZodNullable<ZodString>>; last_online_at: ZodOptional<ZodNullable<ZodString>>; connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>; outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>; features: ZodOptional<ZodNullable<ZodRecord<ZodString, ZodBoolean>>>; }, ZodTypeAny, "passthrough">>

The channel.

Example

import { RedTeamClient } from '@cdot65/prisma-airs-sdk';
const rt = new RedTeamClient();

const channel = await rt.networkBroker.getChannel('550e8400-e29b-41d4-a716-446655440000');
// channel =>
// { uuid: '550e8400-...', name: 'prod-broker', status: 'ONLINE' }

updateChannel()

updateChannel(channelId, body): Promise<objectOutputType<{
uuid: ZodOptional<ZodString>;
name: ZodOptional<ZodNullable<ZodString>>;
description: ZodOptional<ZodNullable<ZodString>>;
status: ZodOptional<ZodNullable<ZodString>>;
added_by: ZodOptional<ZodNullable<ZodString>>;
created_at: ZodOptional<ZodNullable<ZodString>>;
updated_at: ZodOptional<ZodNullable<ZodString>>;
last_online_at: ZodOptional<ZodNullable<ZodString>>;
connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>;
features: ZodOptional<ZodNullable<ZodRecord<ZodString, ZodBoolean>>>;
}, ZodTypeAny, "passthrough">>;

Defined in: src/red-team/network-broker-client.ts:178

Update a network broker channel's name or description.

Parameters

ParameterTypeDescription
channelIdstringThe channel UUID.
bodyobjectOutputTypeChannel update request body.

Returns

Promise<objectOutputType<{ uuid: ZodOptional<ZodString>; name: ZodOptional<ZodNullable<ZodString>>; description: ZodOptional<ZodNullable<ZodString>>; status: ZodOptional<ZodNullable<ZodString>>; added_by: ZodOptional<ZodNullable<ZodString>>; created_at: ZodOptional<ZodNullable<ZodString>>; updated_at: ZodOptional<ZodNullable<ZodString>>; last_online_at: ZodOptional<ZodNullable<ZodString>>; connected_clients_count: ZodOptional<ZodNullable<ZodNumber>>; outdated_clients_count: ZodOptional<ZodNullable<ZodNumber>>; features: ZodOptional<ZodNullable<ZodRecord<ZodString, ZodBoolean>>>; }, ZodTypeAny, "passthrough">>

The updated channel.

Example

import { RedTeamClient } from '@cdot65/prisma-airs-sdk';
const rt = new RedTeamClient();

const channel = await rt.networkBroker.updateChannel('550e8400-e29b-41d4-a716-446655440000', {
description: 'Updated description',
});
// channel =>
// { uuid: '550e8400-...', name: 'prod-broker', description: 'Updated description', status: 'ONLINE' }