@prefecthq/prefect-ui-library
Version:
This library is the Vue and Typescript component library for [Prefect 2](https://github.com/PrefectHQ/prefect) and [Prefect Cloud 2](https://www.prefect.io/cloud/). _The components and utilities in this project are not meant to be used independently_.
68 lines (63 loc) • 2.13 kB
text/typescript
import { ObjectLevelCan } from '@/models/ObjectLevelCan'
import { createTuple } from '@/utilities'
export const { values: workPoolQueueStatus, isValue: isWorkPoolQueueStatus } = createTuple(['ready', 'paused', 'not_ready'])
export type WorkPoolQueueStatus = typeof workPoolQueueStatus[number]
export function getWorkPoolQueueStatusLabel(status: WorkPoolQueueStatus): string {
switch (status) {
case 'not_ready':
return 'Not Ready'
case 'paused':
return 'Paused'
case 'ready':
return 'Ready'
default:
const exhaustive: never = status
throw new Error(`getWorkPoolStatusLabel missing case for ${exhaustive}`)
}
}
export interface IWorkPoolQueue {
readonly id: string,
created: Date,
updated: Date,
workPoolId: string,
workPoolName?: string,
name: string,
description: string | null,
isPaused: boolean,
concurrencyLimit: number | null,
priority: number,
lastPolled: Date | null,
status: WorkPoolQueueStatus,
can: ObjectLevelCan<'work_queue'>,
}
export class WorkPoolQueue implements IWorkPoolQueue {
public readonly id: string
public readonly kind = 'queue'
public created: Date
public updated: Date
public workPoolId: string
public workPoolName?: string
public name: string
public description: string | null
public isPaused: boolean
public concurrencyLimit: number | null
public priority: number
public lastPolled: Date | null
public status: WorkPoolQueueStatus
public can: ObjectLevelCan<'work_queue'>
public constructor(workPoolQueue: IWorkPoolQueue) {
this.id = workPoolQueue.id
this.created = workPoolQueue.created
this.updated = workPoolQueue.updated
this.workPoolId = workPoolQueue.workPoolId
this.workPoolName = workPoolQueue.workPoolName
this.name = workPoolQueue.name
this.description = workPoolQueue.description
this.isPaused = workPoolQueue.isPaused
this.concurrencyLimit = workPoolQueue.concurrencyLimit
this.priority = workPoolQueue.priority
this.lastPolled = workPoolQueue.lastPolled
this.status = workPoolQueue.status
this.can = workPoolQueue.can
}
}