Files
MikrotikManager/packages/contracts/src/ospf-optimizer.ts
T

10 lines
737 B
TypeScript

import {z} from "zod"
export const ospfOptimizerMetricSchema=z.object({
value:z.number().finite().nonnegative().nullable(),
source:z.enum(["speed-probe","interface-traffic","unknown"]),
sourceId:z.string().min(1).nullable(),
measuredAt:z.string().datetime({offset:true}).nullable(),
}).refine(metric=>metric.value===null ? metric.source==="unknown"&&metric.sourceId===null&&metric.measuredAt===null : metric.source!=="unknown"&&metric.sourceId!==null)
export const ospfOptimizerObservedSchema=z.object({ping:ospfOptimizerMetricSchema,dl:ospfOptimizerMetricSchema,ul:ospfOptimizerMetricSchema}).refine(observed=>observed.ping.source!=="interface-traffic")
export type OspfOptimizerObserved=z.infer<typeof ospfOptimizerObservedSchema>