UNPKG

kui-shell

Version:

This is the monorepo for Kui, the hybrid command-line/GUI electron-based Kubernetes tool

137 lines (136 loc) 3.46 kB
import { Commands, Models } from '@kui-shell/core'; export interface KubeStatusCondition { lastProbeTime?: string; lastUpdateTime: string; lastTransitionTime: string; status: string | boolean; reason?: string; message: string; type?: string; phase?: string; } interface KubeContainerStatus { name: string; containerID: string; restartCount: number; ready: boolean; state: any; } export interface KubeLoadBalancer { ingress: string; } export interface KubeStatus { message?: string; state?: string; startTime?: string; completionTime?: string; phase?: string; podIP?: string; podName?: string; qosClass?: string; replicas?: number; readyReplicas?: number; availableReplicas?: number; unavailableReplicas?: number; updatedReplicas?: number; loadBalancer?: KubeLoadBalancer; containerStatuses?: KubeContainerStatus[]; conditions?: KubeStatusCondition[]; } export declare class DefaultKubeStatus implements KubeStatus { message: any; } interface OwnerReferences { kind: string; name: string; } export interface KubeMetadata { name: string; namespace?: string; labels?: { [key: string]: string; }; annotations?: object; creationTimestamp?: string; generation?: string; ownerReferences?: OwnerReferences[]; } export declare class DefaultKubeMetadata implements KubeMetadata { kind: any; name: any; } interface RoleRule { apiGroups: string[]; resources: string[]; verbs: string[]; } interface RoleRef { apiGroup: string; kind: string; name: string; } export interface KubeResource<Status = KubeStatus> extends Models.ResourceWithMetadata { apiVersion: string; kind: string; metadata?: KubeMetadata; status?: Status; spec?: any; data?: object; } export declare function isKubeResource(entity: Commands.Response): entity is KubeResource; interface Role extends KubeResource { rules: RoleRule[]; } export declare function isRole(resource: KubeResource): resource is Role; interface RoleBinding extends KubeResource { roleRef: RoleRef; subjects: { kind: string; name: string; }[]; } export declare function isRoleBinding(resource: KubeResource): resource is RoleBinding; interface ServiceAccount extends KubeResource { secrets: { name: string; }[]; } export declare function isServiceAccount(resource: KubeResource): resource is ServiceAccount; export interface CRDResource extends KubeResource { spec: { names: { kind: string; shortnames: string[]; }; }; } export interface Pod extends KubeResource { spec: { containers: { args: string[]; command: string[]; env: { name: string; value: string; }[]; image: string; imagePullPolicy: string; name: string; resource: Record<string, any>; terminationMessagePath: string; terminationMessagePolicy: string; volumneMounts: { mountPath: string; name: string; }[]; workingDir: string; }[]; }; } export interface Resource<T = KubeResource> { filepathForDrilldown?: string; kind?: string; name?: string; resource: T; } export default Resource;