Files
2026-06-09 12:34:57 -07:00

74 lines
2.2 KiB
TypeScript

import { registry } from "../registry.js";
import { bearer, json, okJsonNoData, okUnknown, standardErrors } from "../helpers.js";
import {
createMaintenanceWindowBodyValidation,
getMaintenanceWindowByIdParamValidation,
getMaintenanceWindowsByTeamIdQueryValidation,
getMaintenanceWindowsByMonitorIdParamValidation,
deleteMaintenanceWindowByIdParamValidation,
editMaintenanceWindowByIdParamValidation,
editMaintenanceByIdWindowBodyValidation,
} from "@/api/validation/maintenanceWindowValidation.js";
const tags = ["maintenance-window"];
registry.registerPath({
method: "post",
path: "/maintenance-window",
tags,
summary: "Create one or more maintenance windows",
security: bearer,
request: { body: { content: json(createMaintenanceWindowBodyValidation) } },
responses: { "200": okUnknown, ...standardErrors },
});
registry.registerPath({
method: "get",
path: "/maintenance-window/team",
tags,
summary: "List maintenance windows for the caller's team",
security: bearer,
request: { query: getMaintenanceWindowsByTeamIdQueryValidation },
responses: { "200": okUnknown, ...standardErrors },
});
registry.registerPath({
method: "get",
path: "/maintenance-window/monitor/{monitorId}",
tags,
summary: "List maintenance windows for a monitor",
security: bearer,
request: { params: getMaintenanceWindowsByMonitorIdParamValidation },
responses: { "200": okUnknown, ...standardErrors },
});
registry.registerPath({
method: "get",
path: "/maintenance-window/{id}",
tags,
summary: "Get a maintenance window by id",
security: bearer,
request: { params: getMaintenanceWindowByIdParamValidation },
responses: { "200": okUnknown, ...standardErrors },
});
registry.registerPath({
method: "patch",
path: "/maintenance-window/{id}",
tags,
summary: "Edit a maintenance window",
security: bearer,
request: { params: editMaintenanceWindowByIdParamValidation, body: { content: json(editMaintenanceByIdWindowBodyValidation) } },
responses: { "200": okUnknown, ...standardErrors },
});
registry.registerPath({
method: "delete",
path: "/maintenance-window/{id}",
tags,
summary: "Delete a maintenance window",
security: bearer,
request: { params: deleteMaintenanceWindowByIdParamValidation },
responses: { "200": okJsonNoData(), ...standardErrors },
});