import { Resource } from '@c6o/kubeclient-contracts'; import { LabelSelector, ListMeta, ObjectMeta, Time } from '../meta/v1'; import { ObjectReference, PodTemplateSpec } from '../core/v1'; export interface CronJob extends Resource { apiVersion?: 'batch/v1'; kind?: 'CronJob'; metadata?: ObjectMeta; spec?: CronJobSpec; status?: CronJobStatus; } export interface CronJobList extends Resource { apiVersion?: 'batch/v1'; items: Array; kind?: 'CronJobList'; metadata?: ListMeta; } export interface CronJobSpec { concurrencyPolicy?: string; failedJobsHistoryLimit?: number; jobTemplate: JobTemplateSpec; schedule: string; startingDeadlineSeconds?: number; successfulJobsHistoryLimit?: number; suspend?: boolean; } export interface CronJobStatus { active?: Array; lastScheduleTime?: Time; lastSuccessfulTime?: Time; } export interface Job extends Resource { apiVersion?: 'batch/v1'; kind?: 'Job'; metadata?: ObjectMeta; spec?: JobSpec; status?: JobStatus; } export interface JobCondition { lastProbeTime?: Time; lastTransitionTime?: Time; message?: string; reason?: string; status: string; type: string; } export interface JobList extends Resource { apiVersion?: 'batch/v1'; items: Array; kind?: 'JobList'; metadata?: ListMeta; } export interface JobSpec { activeDeadlineSeconds?: number; backoffLimit?: number; completionMode?: string; completions?: number; manualSelector?: boolean; parallelism?: number; selector?: LabelSelector; suspend?: boolean; template: PodTemplateSpec; ttlSecondsAfterFinished?: number; } export interface JobStatus { active?: number; completedIndexes?: string; completionTime?: Time; conditions?: Array; failed?: number; startTime?: Time; succeeded?: number; } export interface JobTemplateSpec { metadata?: ObjectMeta; spec?: JobSpec; }