32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import type { ProvisioningAction } from './provisioning.js';
|
|
import type { ProvisioningDeployment } from './provisioning-detail.js';
|
|
|
|
export type ProvisioningListRow = Pick<ProvisioningDeployment,
|
|
'id' | 'server' | 'server_deleted_at' | 'action' | 'state' | 'stage' | 'started_at' |
|
|
'finished_at' | 'triggered_by' | 'error' | 'warnings' | 'server_exists'> & { canCancelRemoval: number; canCancel?: number };
|
|
|
|
export interface ProvisioningListOptions {
|
|
view?: 'active' | 'history' | 'all';
|
|
action?: ProvisioningAction;
|
|
status?: 'attention';
|
|
server?: string;
|
|
limit?: number;
|
|
offset?: number;
|
|
}
|
|
|
|
export interface ProvisioningListPage {
|
|
deployments: ProvisioningListRow[];
|
|
total: number;
|
|
needsReview: number;
|
|
limit: number;
|
|
offset: number;
|
|
}
|
|
|
|
export function provisioningPageSize(value: number): number {
|
|
return Number.isFinite(value) ? Math.min(100, Math.max(1, Math.floor(value) || 25)) : 25;
|
|
}
|
|
|
|
export function provisioningPageOffset(value: number): number {
|
|
return Number.isFinite(value) ? Math.min(1_000_000, Math.max(0, Math.floor(value))) : 0;
|
|
}
|