check, monitor, maintenance

This commit is contained in:
Alex Holliday committed 2026-03-02 17:46:33 +00:00
1 parent a5d3c95145
commit b997c43bd5
5 files changed
+181 -175

No files matched your search

@@ -1,53 +1,53 @@
import joi from "joi";
import { z } from "zod";
//****************************************
// Maintenance Window Validations
//****************************************
export const createMaintenanceWindowBodyValidation = joi.object({
monitors: joi.array().items(joi.string()).required(),
name: joi.string().required(),
active: joi.boolean(),
duration: joi.number().required(),
durationUnit: joi.string().valid("seconds", "minutes", "hours", "days").required(),
start: joi.date().required(),
end: joi.date().required(),
repeat: joi.number().required(),
expiry: joi.date(),
export const createMaintenanceWindowBodyValidation = z.object({
monitors: z.array(z.string()).min(1, "At least one monitor is required"),
name: z.string().min(1, "Name is required"),
active: z.boolean().optional(),
duration: z.number().min(1, "Duration is required"),
durationUnit: z.enum(["seconds", "minutes", "hours", "days"]),
start: z.coerce.date(),
end: z.coerce.date(),
repeat: z.number().min(0, "Repeat must be a non-negative number"),
expiry: z.coerce.date().optional(),
});
export const getMaintenanceWindowByIdParamValidation = joi.object({
id: joi.string().required(),
export const getMaintenanceWindowByIdParamValidation = z.object({
id: z.string().min(1, "ID is required"),
});
export const getMaintenanceWindowsByTeamIdQueryValidation = joi.object({
active: joi.boolean(),
page: joi.number(),
rowsPerPage: joi.number(),
field: joi.string(),
order: joi.string().valid("asc", "desc"),
export const getMaintenanceWindowsByTeamIdQueryValidation = z.object({
active: z.coerce.boolean().optional(),
page: z.coerce.number().optional(),
rowsPerPage: z.coerce.number().optional(),
field: z.string().optional(),
order: z.enum(["asc", "desc"]).optional(),
});
export const getMaintenanceWindowsByMonitorIdParamValidation = joi.object({
monitorId: joi.string().required(),
export const getMaintenanceWindowsByMonitorIdParamValidation = z.object({
monitorId: z.string().min(1, "Monitor ID is required"),
});
export const deleteMaintenanceWindowByIdParamValidation = joi.object({
id: joi.string().required(),
export const deleteMaintenanceWindowByIdParamValidation = z.object({
id: z.string().min(1, "ID is required"),
});
export const editMaintenanceWindowByIdParamValidation = joi.object({
id: joi.string().required(),
export const editMaintenanceWindowByIdParamValidation = z.object({
id: z.string().min(1, "ID is required"),
});
export const editMaintenanceByIdWindowBodyValidation = joi.object({
active: joi.boolean(),
name: joi.string(),
repeat: joi.number(),
start: joi.date(),
end: joi.date(),
expiry: joi.date(),
monitors: joi.array(),
duration: joi.number(),
durationUnit: joi.string().valid("seconds", "minutes", "hours", "days"),
export const editMaintenanceByIdWindowBodyValidation = z.object({
active: z.boolean().optional(),
name: z.string().optional(),
repeat: z.number().optional(),
start: z.coerce.date().optional(),
end: z.coerce.date().optional(),
expiry: z.coerce.date().optional(),
monitors: z.array(z.unknown()).optional(),
duration: z.number().optional(),
durationUnit: z.enum(["seconds", "minutes", "hours", "days"]).optional(),
});