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
TypeScript
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;