cloudflare
Version:
The official TypeScript library for the Cloudflare API
115 lines • 4.01 kB
TypeScript
import { APIResource } from "../../../core/resource.js";
import { APIPromise } from "../../../core/api-promise.js";
import { RequestOptions } from "../../../internal/request-options.js";
export declare class BaseGraph extends APIResource {
static readonly _key: readonly ['cloudforceOne', 'threatEvents', 'graph'];
/**
* Expands the single-level relationship neighborhood of one or more seed nodes
* (event, indicator, or tag) from R2 Data Catalog. Seeds use compact id format
* (type:uuid), e.g. "event:550e8400-...". Multi-seed requests merge and
* deduplicate results server-side. Hydrates neighbor entities with summary data
* from Durable Objects. Supports filtering by relationship type and dataset scope.
*
* @example
* ```ts
* const graphs =
* await client.cloudforceOne.threatEvents.graph.list({
* account_id: 'account_id',
* });
* ```
*/
list(params: GraphListParams, options?: RequestOptions): APIPromise<GraphListResponse>;
}
export declare class Graph extends BaseGraph {
}
export interface GraphListResponse {
edges: Array<GraphListResponse.Edge>;
/**
* Focal node object (legacy single-seed). Null when unavailable.
*/
node: {
[key: string]: unknown;
} | null;
nodes: Array<{
[key: string]: unknown;
}>;
}
export declare namespace GraphListResponse {
interface Edge {
/**
* Deterministic composite edge id (source→target:relationshipType)
*/
id: string;
relationshipType: string;
/**
* Compact id of the source node (type:uuid)
*/
source: string;
sourceId: string;
sourceType: string;
/**
* Compact id of the target node (type:uuid)
*/
target: string;
targetId: string;
targetType: string;
}
}
export interface GraphListParams {
/**
* Path param: Account ID.
*/
account_id: string;
/**
* Query param: Opaque pagination token. Only valid when seeds has exactly 1 entry;
* 400 otherwise.
*/
cursor?: string;
/**
* Query param: Comma-separated dataset UUIDs to restrict neighbor scope, or one
* standalone scope value: 'all'/'\*', 'analytics' for isAnalytics=true datasets,
* or 'operational' for isAnalytics=false datasets. Intersected with access grants.
*/
datasetIds?: Array<string>;
/**
* Query param: Edge direction relative to each seed: out (seed→neighbors), in
* (neighbors→seed), both (default).
*/
direction?: string;
/**
* Query param: Comma-separated list of response sections to expand (hydrate).
* Allowed: `nodes`. Omitting `expand` returns identifier-only nodes.
*/
expand?: Array<string>;
/**
* Query param: Hydration strategy for neighbor nodes when expand=nodes is set.
* r2_join (default): use R2 JOIN query + DO fallback. do_only: use plain R2
* query + hydrate all neighbors via Durable Objects.
*/
hydration?: string;
/**
* Query param: Max neighbors per seed (default: 100, max: 1000). Values above 1000
* return 400.
*/
limit?: number;
/**
* Query param: Total accumulated node cap across all seeds (default: 500, max:
* 1000). Values above 1000 return 400.
*/
max_nodes?: number;
/**
* Query param: Comma-separated relationship types to filter by. Allowed:
* tagged_with, appears_in, related_to, caused_by, attributed_to.
*/
relationshipTypes?: Array<string>;
/**
* Query param: Comma-separated compact seed ids (type:uuid). Example:
* seeds=event:550e8400-...,indicator:661fa920-... Provide 1–50 entries; omitting
* seeds returns 400.
*/
seeds?: Array<string>;
}
export declare namespace Graph {
export { type GraphListResponse as GraphListResponse, type GraphListParams as GraphListParams };
}
//# sourceMappingURL=graph.d.ts.map