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
| Parameter | Type |
|---|---|
opts | RedTeamNetworkBrokerClientOptions |
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
| Parameter | Type | Description |
|---|---|---|
opts? | ChannelListOptions | Optional 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
| Parameter | Type | Description |
|---|---|---|
body | objectOutputType | Channel 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
| Parameter | Type | Description |
|---|---|---|
channelId | string | The 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
| Parameter | Type | Description |
|---|---|---|
channelId | string | The channel UUID. |
body | objectOutputType | Channel 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' }