import { Resource } from '@c6o/kubeclient-contracts'; import { ListMeta, ObjectMeta, Time } from '../meta/v1'; export interface CrossVersionObjectReference { apiVersion?: string; kind: string; name: string; } export interface HorizontalPodAutoscaler extends Resource { apiVersion?: 'autoscaling/v1'; kind?: 'HorizontalPodAutoscaler'; metadata?: ObjectMeta; spec?: HorizontalPodAutoscalerSpec; status?: HorizontalPodAutoscalerStatus; } export interface HorizontalPodAutoscalerList extends Resource { apiVersion?: 'autoscaling/v1'; items: Array; kind?: 'HorizontalPodAutoscalerList'; metadata?: ListMeta; } export interface HorizontalPodAutoscalerSpec { maxReplicas: number; minReplicas?: number; scaleTargetRef: CrossVersionObjectReference; targetCPUUtilizationPercentage?: number; } export interface HorizontalPodAutoscalerStatus { currentCPUUtilizationPercentage?: number; currentReplicas: number; desiredReplicas: number; lastScaleTime?: Time; observedGeneration?: number; } export interface Scale extends Resource { apiVersion?: 'autoscaling/v1'; kind?: 'Scale'; metadata?: ObjectMeta; spec?: ScaleSpec; readonly status?: ScaleStatus; } export interface ScaleSpec { replicas?: number; } export interface ScaleStatus { replicas: number; selector?: string; }