export interface LiveBuildsPayload {
  kind?: string;
  generatedAt?: string;
  source?: Record<string, unknown> | null;
  latest?: LiveBuildRecord | null;
  counts?: Record<string, unknown> | null;
  services?: LiveBuildRecord[];
  [key: string]: unknown;
}

export interface LiveBuildRecord {
  serviceId?: string;
  name?: string;
  kind?: string;
  status?: string;
  reason?: string | null;
  healthUrl?: string | null;
  httpStatus?: number | null;
  desiredState?: Record<string, unknown> | null;
  build?: LiveBuildBuild | null;
  image?: LiveBuildImage | null;
  commit?: LiveBuildCommit | null;
  runtime?: Record<string, unknown> | null;
  revision?: string | null;
  [key: string]: unknown;
}

export interface LiveBuildBuild {
  createdAt?: string | null;
  source?: string | null;
  metadataSource?: string | null;
  unavailableReason?: string | null;
  liveMetadataMatch?: Record<string, unknown> | null;
  [key: string]: unknown;
}

export interface LiveBuildImage {
  tag?: string | null;
  digest?: string | null;
  repository?: string | null;
  [key: string]: unknown;
}

export interface LiveBuildCommit {
  id?: string | null;
  short?: string | null;
  [key: string]: unknown;
}
