export type ApiAppComponent = { id: string; appId: string; name: string; type: string; imageSource?: string | null; externalImage?: string | null; workloadType?: string | null; replicas?: number | null; serviceType?: string | null; storageEnabled?: boolean; storageSize?: string | null; storageMountPath?: string | null; storageRetain?: boolean; buildTarget?: string | null; repository?: string | null; branch?: string | null; port?: number | null; targetPort?: number | null; ports?: Array<{ name?: string; port?: number; targetPort?: number; nodePort?: number; protocol?: string; }> | null; buildJobs?: Array<{ id: string; image?: string | null; artifact?: string | null; status?: string; createdAt?: string; }>; buildVariables?: BuildEnvVariable[]; }; export type ApiApp = { id: string; key: string; name: string; description?: string | null; namespace?: string | null; status: string; launcherLinked?: boolean; components?: ApiAppComponent[]; }; export type RuntimeResource = { kind: string; name: string; status: string; ready: string; restarts: number | null; age: string; detail: string; }; export type RuntimePodMetric = { namespace: string; pod: string; cpu: string; memory: string; }; export type RuntimePersistentVolumeClaim = { name: string; status?: string; capacity?: string; accessModes?: string[]; storageClass?: string; volumeName?: string; createdAt?: string; }; export type RuntimeResourceResponse = { namespace: string; exists: boolean; summary: { pods: number; deployments: number; statefulSets: number; services: number; persistentVolumeClaims: number; }; resources: RuntimeResource[]; }; export type RuntimeEvent = { namespace?: string; type?: string; reason?: string; message?: string; involvedObject?: string; firstTimestamp?: string; lastTimestamp?: string; count?: number; }; export type RuntimeWorkloadLogResponse = { namespace: string; target: string; logs: string; }; export type BuildEnvVariable = { id: string; componentId: string; key: string; value: string; isSecret: boolean; createdAt?: string; updatedAt?: string; }; export type RuntimeEnvVariable = { id: string; profileId: string; componentId?: string | null; key: string; value: string; isSecret: boolean; createdAt?: string; updatedAt?: string; component?: ApiAppComponent | null; }; export type RuntimeIngressRule = { id: string; profileId: string; componentId: string; host: string; path: string; servicePort: number; stripPrefix: boolean; tlsEnabled: boolean; tlsSecretName?: string | null; createdAt?: string; updatedAt?: string; component?: ApiAppComponent | null; }; export type RuntimeEnvProfile = { id: string; appId: string; name: string; environment: string; namespace: string; isActive: boolean; createdAt?: string; updatedAt?: string; variables?: RuntimeEnvVariable[]; ingressRules?: RuntimeIngressRule[]; };