UNPKG

@openshift-console/dynamic-plugin-sdk

Version:

Based on the concept of [webpack module federation](https://webpack.js.org/concepts/module-federation/), dynamic plugins are loaded and interpreted from remote sources at runtime. The standard way to deliver and expose dynamic plugins to Console is throug

139 lines (138 loc) 4.78 kB
import * as React from 'react'; import { Graph, Node, Model, EdgeModel, NodeModel, EventListener, ModelKind, GraphElement } from '@patternfly/react-topology'; import { PrometheusAlert } from '../api/common-types'; import { K8sResourceCommon, K8sResourceKindReference, WatchK8sResults } from './console-types'; export declare type Point = [number, number]; export interface OdcNodeModel extends NodeModel { resource?: K8sResourceCommon; resourceKind?: K8sResourceKindReference; } export interface OdcEdgeModel extends EdgeModel { resource?: K8sResourceCommon; resourceKind?: K8sResourceKindReference; } export declare type TopologyResourcesObject = { [key: string]: K8sResourceCommon[]; }; export declare type TopologyDataResources = WatchK8sResults<TopologyResourcesObject>; export declare type TopologyDataModelGetter = (namespace: string, resources: TopologyDataResources, workloads: K8sResourceCommon[]) => Promise<Model>; export declare enum TopologyViewType { graph = "graph", list = "list" } export declare type ViewComponentFactory = (kind: ModelKind, type: string, view?: TopologyViewType) => React.ComponentType<{ element: GraphElement; }> | undefined; export declare type TopologyDataModelDepicted = (resource: K8sResourceCommon, model: Model) => boolean; export declare type TopologyDataModelReconciler = (model: Model, resources: TopologyDataResources) => void; export declare type CreateConnection = (source: Node, target: Node | Graph) => Promise<React.ReactElement[] | null>; export declare type CreateConnectionGetter = (createHints: string[], source?: Node, target?: Node) => CreateConnection; export declare type RelationshipProviderProvides = (source: Node, target: Node) => Promise<boolean>; export declare type RelationshipProviderCreate = (source: Node, target: Node) => Promise<void>; export declare enum TopologyDisplayFilterType { show = "show", expand = "expand", kind = "kind" } export declare type TopologyDisplayOption = { type: TopologyDisplayFilterType; id: string; label?: string; labelKey?: string; priority: number; value: boolean; }; export declare type OverviewItem<T = K8sResourceCommon> = { obj: T; hpas?: K8sResourceCommon[]; isOperatorBackedService?: boolean; isMonitorable?: boolean; monitoringAlerts?: PrometheusAlert[]; }; export declare type DisplayFilters = TopologyDisplayOption[]; export declare type TopologyApplyDisplayOptions = (model: Model, filters: DisplayFilters) => string[]; export declare enum TopologyDecoratorQuadrant { upperLeft = "upperLeft", upperRight = "upperRight", lowerLeft = "lowerLeft", lowerRight = "lowerRight" } export declare type TopologyDecoratorGetter = (element: Node, radius: number, centerX: number, centerY: number) => React.ReactElement; export declare type TopologyDecorator = { id: string; priority: number; quadrant: TopologyDecoratorQuadrant; decorator: TopologyDecoratorGetter; }; export interface TopologyDataObject<D = {}> { id: string; name: string; type: string; resources: OverviewItem; pods?: K8sResourceCommon[]; data: D; resource: K8sResourceCommon | null; groupResources?: OdcNodeModel[]; } export interface TopologyApplicationObject { id: string; name: string; resources: OdcNodeModel[]; } export interface WorkloadData { editURL?: string; vcsURI?: string; vcsRef?: string; builderImage?: string; kind?: string; isKnativeResource?: boolean; } export declare type TrafficData = { nodes: KialiNode[]; edges: KialiEdge[]; }; export declare type KialiNode = { data: { id: string; nodeType: string; namespace: string; workload: string; app: string; version?: string; destServices?: { [key: string]: any; }[]; traffic?: { [key: string]: any; }[]; }; }; export declare type KialiEdge = { data: { id: string; source: string; target: string; traffic: { [key: string]: any; }; }; }; export declare type GraphData = { namespace: string; createResourceAccess: string[]; eventSourceEnabled: boolean; createConnectorExtensions?: CreateConnectionGetter[]; decorators?: { [key: string]: TopologyDecorator[]; }; }; export declare type BuildConfigOverviewItem = K8sResourceCommon & { builds: K8sResourceCommon[]; }; export declare type BuildConfigData = { loaded: boolean; loadError: string; buildConfigs: BuildConfigOverviewItem[]; }; export declare const SHOW_GROUPING_HINT_EVENT = "show-regroup-hint"; export declare type ShowGroupingHintEventListener = EventListener<[Node, string]>;