// DO NOT EDIT. This file is automatically generated.

export interface CurrentlyProcessingChange {
	change_id: number;
	latest_patchset_id: number;
	repo: string;
	branch: string;
	change_subject: string;
	change_owner: string;
	dry_run: boolean;
	start_ts: number;
	internal: boolean;
}

export interface GetCurrentChangesRequest {
	is_dry_run: boolean;
}

export interface GetCurrentChangesResponse {
	changes: (CurrentlyProcessingChange | null)[] | null;
}

export interface VerifierStatus {
	name: string;
	start_ts: number;
	stop_ts: number;
	state: VerifierState;
	reason: string;
}

export interface ChangeAttempt {
	change_id: number;
	patchset_id: number;
	dry_run: boolean;
	repo: string;
	branch: string;
	start_ts: number;
	stop_ts: number;
	committed_ts: number;
	cq_abandoned: boolean;
	submittable_changes: string[] | null;
	verifiers_statuses: (VerifierStatus | null)[] | null;
	overall_status: VerifierState;
}

export interface ChangeAttempts {
	attempts: (ChangeAttempt | null)[] | null;
}

export interface GetChangeAttemptsRequest {
	change_id: number;
	patchset_id: number;
}

export interface GetChangeAttemptsResponse {
	change_attempts: ChangeAttempts | null;
}

export type VerifierState = "SUCCESSFUL" | "WAITING" | "FAILURE" | "ABORTED";
