2024-08-11 16:15:30 +03:00
{
2024-10-17 12:07:30 +08:00
"openapi" : "3.1.0" ,
"info" : {
2024-12-22 00:08:45 +03:00
"title" : "Checkmate" ,
"summary" : "Checkmate OpenAPI Specifications" ,
"description" : "Checkmate is an open source monitoring tool used to track the operational status and performance of servers and websites. It regularly checks whether a server/website is accessible and performs optimally, providing real-time alerts and reports on the monitored services' availability, downtime, and response time." ,
2024-10-17 12:07:30 +08:00
"contact" : {
"name" : "API Support" ,
"url" : "mailto:support@bluewavelabs.ca" ,
"email" : "support@bluewavelabs.ca"
},
"license" : {
"name" : "AGPLv3" ,
2024-12-22 00:08:45 +03:00
"url" : "https://github.com/bluewave-labs/checkmate/tree/HEAD/LICENSE"
2024-10-17 12:07:30 +08:00
},
"version" : "1.0"
},
"servers" : [
{
"url" : "http://localhost:{PORT}/{API_PATH}" ,
"description" : "Local Development Server" ,
"variables" : {
"PORT" : {
"description" : "API Port" ,
2024-11-06 11:17:42 +08:00
"enum" : [ "5000" ],
2024-10-17 12:07:30 +08:00
"default" : "5000"
},
"API_PATH" : {
"description" : "API Base Path" ,
2024-11-06 11:17:42 +08:00
"enum" : [ "api/v1" ],
2024-10-17 12:07:30 +08:00
"default" : "api/v1"
}
}
},
{
"url" : "http://localhost/{API_PATH}" ,
"description" : "Distribution Local Development Server" ,
"variables" : {
"API_PATH" : {
"description" : "API Base Path" ,
2024-11-06 11:17:42 +08:00
"enum" : [ "api/v1" ],
2024-10-17 12:07:30 +08:00
"default" : "api/v1"
}
}
},
{
2024-12-12 00:31:27 +03:00
"url" : "https://checkmate-demo.bluewavelabs.ca/{API_PATH}" ,
2024-12-22 00:08:45 +03:00
"description" : "Checkmate Demo Server" ,
2024-10-17 12:07:30 +08:00
"variables" : {
"PORT" : {
"description" : "API Port" ,
2024-11-06 11:17:42 +08:00
"enum" : [ "5000" ],
2024-10-17 12:07:30 +08:00
"default" : "5000"
},
"API_PATH" : {
"description" : "API Base Path" ,
2024-11-06 11:17:42 +08:00
"enum" : [ "api/v1" ],
2024-10-17 12:07:30 +08:00
"default" : "api/v1"
}
}
}
],
"tags" : [
{
"name" : "auth" ,
"description" : "Authentication"
},
{
"name" : "invite" ,
"description" : "Invite"
},
{
"name" : "monitors" ,
"description" : "Monitors"
},
{
"name" : "checks" ,
"description" : "Checks"
},
{
"name" : "maintenance-window" ,
"description" : "Maintenance window"
},
{
"name" : "queue" ,
"description" : "Queue"
2024-11-11 14:48:44 +08:00
},
{
"name" : "status-page" ,
"description" : "Status Page"
2024-10-17 12:07:30 +08:00
}
],
"paths" : {
"/auth/register" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "auth" ],
2024-10-17 12:07:30 +08:00
"description" : "Register a new user" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"firstName" ,
"lastName" ,
"email" ,
"password" ,
"role" ,
"teamId"
],
"properties" : {
"firstName" : {
"type" : "string"
},
"lastName" : {
"type" : "string"
},
"email" : {
"type" : "string" ,
"format" : "email"
},
"password" : {
"type" : "string" ,
"format" : "password"
},
"profileImage" : {
"type" : "file" ,
"format" : "file"
},
"role" : {
"type" : "array" ,
2024-11-06 11:17:42 +08:00
"enum" : [[ "user" ], [ "admin" ], [ "superadmin" ], [ "Demo" ]],
"default" : [ "superadmin" ]
2024-10-17 12:07:30 +08:00
},
"teamId" : {
"type" : "string" ,
"format" : "uuid"
}
}
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/auth/login" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "auth" ],
2024-10-17 12:07:30 +08:00
"description" : "Login with credentials" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "email" , "password" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"email" : {
"type" : "string" ,
"format" : "email"
},
"password" : {
"type" : "string" ,
"format" : "password"
}
}
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
2024-10-22 10:26:49 +05:30
"/auth/refresh" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "auth" ],
2024-10-22 10:26:49 +05:30
"description" : "Generates a new auth token if the refresh token is valid." ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"properties" : {}
}
}
},
"required" : false
},
"parameters" : [
{
"name" : "x-refresh-token" ,
"in" : "header" ,
"description" : "Refresh token required to generate a new auth token." ,
"required" : true ,
"schema" : {
"type" : "string"
}
},
{
"name" : "authorization" ,
"in" : "header" ,
"description" : "Old access token, used to extract payload)." ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "New access token generated." ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"401" : {
"description" : "Unauthorized or invalid refresh token." ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
2024-10-17 12:07:30 +08:00
"/auth/user/{userId}" : {
"put" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "auth" ],
2024-10-17 12:07:30 +08:00
"description" : "Change user information" ,
"parameters" : [
{
"name" : "userId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UserUpdateRequest"
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
},
"delete" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "auth" ],
2024-10-17 12:07:30 +08:00
"description" : "Delete user" ,
"parameters" : [
{
"name" : "userId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/auth/users/superadmin" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "auth" ],
2024-10-17 12:07:30 +08:00
"description" : "Checks to see if an admin account exists" ,
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/auth/users" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "auth" ],
2024-10-17 12:07:30 +08:00
"description" : "Get all users" ,
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/auth/recovery/request" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "auth" ],
2024-10-17 12:07:30 +08:00
"description" : "Request a recovery token" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "email" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"email" : {
"type" : "string" ,
"format" : "email"
}
}
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/auth/recovery/validate" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "auth" ],
2024-10-17 12:07:30 +08:00
"description" : "Validate recovery token" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "recoveryToken" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"recoveryToken" : {
"type" : "string"
}
}
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/auth/recovery/reset" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "auth" ],
2024-10-17 12:07:30 +08:00
"description" : "Password reset" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "recoveryToken" , "password" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"recoveryToken" : {
"type" : "string"
},
"password" : {
"type" : "string"
}
}
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/invite" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "invite" ],
2024-10-17 12:07:30 +08:00
"description" : "Request an invitation" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "email" , "role" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"email" : {
"type" : "string"
},
"role" : {
"type" : "array"
}
}
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/invite/verify" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "invite" ],
2024-10-17 12:07:30 +08:00
"description" : "Request an invitation" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "token" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"token" : {
"type" : "string"
}
}
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/monitors" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Get all monitors" ,
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
},
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Create a new monitor" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CreateMonitorBody"
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
},
"delete" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Delete all monitors" ,
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
2024-11-06 11:17:42 +08:00
"/monitors/uptime" : {
"get" : {
"tags" : [ "monitors" ],
"description" : "Get all monitors with uptime stats for 1, 7, 30, and 90 days" ,
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
2024-10-18 11:39:07 +05:30
"/monitors/resolution/url" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-18 11:39:07 +05:30
"description" : "Check DNS resolution for a given URL" ,
"parameters" : [
{
"name" : "monitorURL" ,
"in" : "query" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"example" : "https://example.com"
},
"description" : "The URL to check DNS resolution for"
}
],
"responses" : {
"200" : {
"description" : "URL resolved successfully" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"400" : {
"description" : "DNS resolution failed" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
2024-10-17 12:07:30 +08:00
"/monitors/{monitorId}" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Get monitor by id" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
},
"put" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Update monitor by id" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UpdateMonitorBody"
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
},
"delete" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Delete monitor by id" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/monitors/stats/{monitorId}" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Get monitor stats" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/monitors/certificate/{monitorId}" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Get monitor certificate" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/monitors/team/summary/{teamId}" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Get monitors and summary by teamId" ,
"parameters" : [
{
"name" : "teamId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
},
{
"name" : "type" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"type" : "array" ,
2024-11-06 11:17:42 +08:00
"enum" : [ "http" , "ping" , "pagespeed" ]
2024-10-17 12:07:30 +08:00
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/monitors/team/{teamId}" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Get monitors by teamId" ,
"parameters" : [
{
"name" : "teamId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
},
{
"name" : "status" ,
"description" : "Status of monitor, true for up, false for down" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"type" : "boolean"
}
},
{
"name" : "checkOrder" ,
"description" : "Order of checks" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"type" : "string" ,
2024-11-06 11:17:42 +08:00
"enum" : [ "asc" , "desc" ]
2024-10-17 12:07:30 +08:00
}
},
{
"name" : "limit" ,
"description" : "Number of checks to return with monitor" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"type" : "integer"
}
},
{
"name" : "type" ,
"description" : "Type of monitor" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"type" : "string" ,
2024-11-06 11:17:42 +08:00
"enum" : [ "http" , "ping" , "pagespeed" ]
2024-10-17 12:07:30 +08:00
}
},
{
"name" : "page" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"type" : "integer"
}
},
{
"name" : "rowsPerPage" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"type" : "integer"
}
},
{
"name" : "filter" ,
"description" : "Value to filter by" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"type" : "string"
}
},
{
"name" : "field" ,
"description" : "Field to filter on" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"type" : "string"
}
},
{
"name" : "order" ,
"description" : "Sort order of results" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"type" : "string" ,
2024-11-06 11:17:42 +08:00
"enum" : [ "http" , "ping" , "pagespeed" ]
2024-10-17 12:07:30 +08:00
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/monitors/pause/{monitorId}" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Pause monitor" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/monitors/demo" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "monitors" ],
2024-10-17 12:07:30 +08:00
"description" : "Create a demo monitor" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CreateMonitorBody"
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/checks/{monitorId}" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "checks" ],
2024-10-17 12:07:30 +08:00
"description" : "Get all checks for a monitor" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
},
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "checks" ],
2024-10-17 12:07:30 +08:00
"description" : "Create a new check" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CreateCheckBody"
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
},
"delete" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "checks" ],
2024-10-17 12:07:30 +08:00
"description" : "Delete all checks for a monitor" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/checks/team/{teamId}" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "checks" ],
2024-10-17 12:07:30 +08:00
"description" : "Get all checks for a team" ,
"parameters" : [
{
"name" : "teamId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
},
"delete" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "checks" ],
2024-10-17 12:07:30 +08:00
"description" : "Delete all checks for a team" ,
"parameters" : [
{
"name" : "teamId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/checks/team/ttl" : {
"put" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "checks" ],
2024-10-17 12:07:30 +08:00
"description" : "Update check TTL" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UpdateCheckTTLBody"
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/maintenance-window/monitor/{monitorId}" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "maintenance-window" ],
2024-10-17 12:07:30 +08:00
"description" : "Get maintenance window for monitor" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
},
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "maintenance-window" ],
2024-10-17 12:07:30 +08:00
"description" : "Create maintenance window for monitor" ,
"parameters" : [
{
"name" : "monitorId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CreateMaintenanceWindowBody"
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/maintenance-window/user/{userId}" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "maintenance-window" ],
2024-10-17 12:07:30 +08:00
"description" : "Get maintenance window for user" ,
"parameters" : [
{
"name" : "userId" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/queue/jobs" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "queue" ],
2024-10-17 12:07:30 +08:00
"description" : "Get all jobs in queue" ,
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
},
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "queue" ],
2024-10-17 12:07:30 +08:00
"description" : "Create a new job. Useful for testing scaling workers" ,
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/queue/metrics" : {
"get" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "queue" ],
2024-10-17 12:07:30 +08:00
"description" : "Get queue metrics" ,
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
},
"/queue/obliterate" : {
"post" : {
2024-11-06 11:17:42 +08:00
"tags" : [ "queue" ],
2024-10-17 12:07:30 +08:00
"description" : "Obliterate job queue" ,
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
2024-11-11 14:48:44 +08:00
},
"/status-page/{url}" : {
"get" : {
"tags" : [ "status-page" ],
"description" : "Get a status page by URL" ,
"parameters" : [
{
"name" : "url" ,
"in" : "path" ,
"required" : true ,
"schema" : { "type" : "string" }
}
],
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : { "$ref" : "#/components/schemas/SuccessResponse" }
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"404" : {
"description" : "Not Found" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : { "$ref" : "#/components/schemas/ErrorResponse" }
}
}
}
}
},
"post" : {
"tags" : [ "status-page" ],
"description" : "Create a status page" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CreateStatusPageBody"
}
}
}
},
"responses" : {
"200" : {
"description" : "OK" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SuccessResponse"
}
}
}
},
"422" : {
"description" : "Unprocessable Content" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"400" : {
"description" : "Duplicate URL" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
},
"500" : {
"description" : "Internal Server Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ErrorResponse"
}
}
}
}
},
"security" : [
{
"bearerAuth" : []
}
]
}
2024-10-17 12:07:30 +08:00
}
},
"components" : {
"securitySchemes" : {
"bearerAuth" : {
"type" : "http" ,
"scheme" : "bearer" ,
"bearerFormat" : "JWT"
}
},
"schemas" : {
"ErrorResponse" : {
"type" : "object" ,
"properties" : {
"success" : {
"type" : "boolean" ,
"default" : false
},
"msg" : {
"type" : "string"
}
}
},
"SuccessResponse" : {
"type" : "object" ,
"properties" : {
"success" : {
"type" : "boolean" ,
"default" : true
},
"msg" : {
"type" : "string"
},
"data" : {
"type" : "object"
}
}
},
"UserUpdateRequest" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "firstName" , "lastName" , "email" , "password" , "role" , "teamId" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"firstName" : {
"type" : "string"
},
"lastName" : {
"type" : "string"
},
"password" : {
"type" : "string" ,
"format" : "password"
},
"newPassword" : {
"type" : "string" ,
"format" : "password"
},
"profileImage" : {
"type" : "file" ,
"format" : "file"
},
"role" : {
"type" : "array" ,
2024-11-06 11:17:42 +08:00
"enum" : [[ "user" ], [ "admin" ], [ "superadmin" ], [ "Demo" ]],
"default" : [ "superadmin" ]
2024-10-17 12:07:30 +08:00
},
"deleteProfileImage" : {
"type" : "boolean"
}
}
},
"CreateMonitorBody" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "userId" , "teamId" , "name" , "description" , "type" , "url" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"_id" : {
"type" : "string"
},
"userId" : {
"type" : "string"
},
"teamId" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"description" : {
"type" : "string"
},
"type" : {
"type" : "string" ,
2024-11-06 11:17:42 +08:00
"enum" : [ "http" , "ping" , "pagespeed" ]
2024-10-17 12:07:30 +08:00
},
"url" : {
"type" : "string"
},
"isActive" : {
"type" : "boolean"
},
"interval" : {
"type" : "integer"
},
"notifications" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
}
}
},
"UpdateMonitorBody" : {
"type" : "object" ,
"properties" : {
"name" : {
"type" : "string"
},
"description" : {
"type" : "string"
},
"interval" : {
"type" : "integer"
},
"notifications" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
}
}
},
"CreateCheckBody" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "monitorId" , "status" , "responseTime" , "statusCode" , "message" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"monitorId" : {
"type" : "string"
},
"status" : {
"type" : "boolean"
},
"responseTime" : {
"type" : "integer"
},
"statusCode" : {
"type" : "integer"
},
"message" : {
"type" : "string"
}
}
},
"UpdateCheckTTLBody" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "ttl" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"ttl" : {
"type" : "integer"
}
}
},
"CreateMaintenanceWindowBody" : {
"type" : "object" ,
2024-11-06 11:17:42 +08:00
"required" : [ "userId" , "active" , "oneTime" , "start" , "end" ],
2024-10-17 12:07:30 +08:00
"properties" : {
"userId" : {
"type" : "string"
},
"active" : {
"type" : "boolean"
},
"oneTime" : {
"type" : "boolean"
},
"start" : {
"type" : "string" ,
"format" : "date-time"
},
"end" : {
"type" : "string" ,
"format" : "date-time"
},
"expiry" : {
"type" : "string" ,
"format" : "date-time"
}
}
2024-11-11 14:48:44 +08:00
},
"CreateStatusPageBody" : {
"type" : "object" ,
"required" : [ "companyName" , "url" , "timezone" , "color" , "theme" , "monitors" ],
"properties" : {
"companyName" : { "type" : "string" },
"url" : { "type" : "string" },
"timezone" : { "type" : "string" },
"color" : { "type" : "string" },
"theme" : { "type" : "string" },
"monitors" : {
"type" : "array" ,
"items" : { "type" : "string" }
}
}
2024-10-17 12:07:30 +08:00
}
}
}
2024-08-11 16:15:30 +03:00
}