{
    "openapi": "3.1.2",
    "info": {
        "title": "Uptizm API",
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "https://api.uptizm.com/v1",
            "description": "Production"
        }
    ],
    "tags": [
        {
            "name": "Keys",
            "description": "The calling key itself, and the claim url of an anonymous workspace."
        },
        {
            "name": "Monitors",
            "description": "HTTP and TCP monitors, their readings, uptime and the AI-assisted create flow."
        },
        {
            "name": "Metrics",
            "description": "Custom metrics extracted from a monitor's responses, and their readings."
        },
        {
            "name": "Incidents",
            "description": "Incidents, their timeline, AI analysis and drafts, and AI suggestions."
        },
        {
            "name": "Dashboard",
            "description": "Team-wide aggregates: counts, active incidents, the worst monitors."
        },
        {
            "name": "Status pages",
            "description": "Public status pages, their monitors, logos and subscribers."
        },
        {
            "name": "Maintenance",
            "description": "Scheduled maintenance windows announced on status pages."
        },
        {
            "name": "Channels",
            "description": "Notification channels alerts are delivered through."
        },
        {
            "name": "On-call",
            "description": "On-call schedules, rotations and overrides."
        },
        {
            "name": "Escalation",
            "description": "Escalation policies and their paging steps."
        },
        {
            "name": "Team",
            "description": "Members and invitations of the key's team."
        }
    ],
    "paths": {
        "/notification-channels": {
            "get": {
                "operationId": "v1.notification-channels.index",
                "description": "The team's notification channels, newest first, page-numbered.",
                "summary": "List notification channels",
                "tags": [
                    "Channels"
                ],
                "responses": {
                    "200": {
                        "description": "A page of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/NotificationChannelResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                },
                                                "push_provisioned": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "last_page",
                                                "links",
                                                "path",
                                                "per_page",
                                                "to",
                                                "total",
                                                "push_provisioned"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "channels:read"
                        ]
                    }
                ],
                "x-required-ability": "channels:read"
            },
            "post": {
                "operationId": "v1.notification-channels.store",
                "summary": "Create a notification channel",
                "tags": [
                    "Channels"
                ],
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreNotificationChannelRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/NotificationChannelResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "channels:write"
                        ]
                    }
                ],
                "x-required-ability": "channels:write",
                "description": "Creates a channel alerts are delivered through."
            }
        },
        "/notification-channels/{channel}": {
            "get": {
                "operationId": "v1.notification-channels.show",
                "summary": "Get a notification channel",
                "tags": [
                    "Channels"
                ],
                "parameters": [
                    {
                        "name": "channel",
                        "in": "path",
                        "required": true,
                        "description": "The channel ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/NotificationChannelResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "channels:read"
                        ]
                    }
                ],
                "x-required-ability": "channels:read",
                "description": "One channel of the team."
            },
            "put": {
                "operationId": "v1.notification-channels.update",
                "summary": "Update a notification channel",
                "tags": [
                    "Channels"
                ],
                "parameters": [
                    {
                        "name": "channel",
                        "in": "path",
                        "required": true,
                        "description": "The channel ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateNotificationChannelRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/NotificationChannelResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "channels:write"
                        ]
                    }
                ],
                "x-required-ability": "channels:write",
                "description": "Updates the channel."
            },
            "delete": {
                "operationId": "v1.notification-channels.destroy",
                "summary": "Delete a notification channel",
                "tags": [
                    "Channels"
                ],
                "parameters": [
                    {
                        "name": "channel",
                        "in": "path",
                        "required": true,
                        "description": "The channel ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "channels:write"
                        ]
                    }
                ],
                "x-required-ability": "channels:write",
                "description": "Deletes the channel."
            }
        },
        "/notification-channels/{channel}/test": {
            "post": {
                "operationId": "v1.notification-channels.test",
                "description": "Sends a test message through the channel and reports whether it was delivered.",
                "summary": "Send a test notification",
                "tags": [
                    "Channels"
                ],
                "parameters": [
                    {
                        "name": "channel",
                        "in": "path",
                        "required": true,
                        "description": "The channel ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "delivered": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "delivered"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    },
                    "502": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "delivered": {
                                                    "type": "boolean"
                                                },
                                                "error_code": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status_code": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "delivered",
                                                "error_code",
                                                "status_code"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "channels:write"
                        ]
                    }
                ],
                "x-required-ability": "channels:write"
            }
        },
        "/dashboard/stats": {
            "get": {
                "operationId": "v1.dashboard.stats",
                "summary": "Get team statistics",
                "tags": [
                    "Dashboard"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "monitors_up": {
                                                    "type": "integer"
                                                },
                                                "monitors_down": {
                                                    "type": "integer"
                                                },
                                                "monitors_degraded": {
                                                    "type": "integer"
                                                },
                                                "monitors_maintenance": {
                                                    "type": "integer"
                                                },
                                                "monitors_paused": {
                                                    "type": "integer",
                                                    "minimum": 0
                                                },
                                                "monitors_pending": {
                                                    "type": "integer",
                                                    "minimum": 0
                                                },
                                                "monitors_total": {
                                                    "type": "integer",
                                                    "minimum": 0
                                                },
                                                "avg_response_ms": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "open_incidents": {
                                                    "type": "integer",
                                                    "minimum": 0
                                                },
                                                "uptime_24h": {
                                                    "type": [
                                                        "number",
                                                        "null"
                                                    ]
                                                },
                                                "uptime_24h_delta": {
                                                    "type": [
                                                        "number",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "monitors_up",
                                                "monitors_down",
                                                "monitors_degraded",
                                                "monitors_maintenance",
                                                "monitors_paused",
                                                "monitors_pending",
                                                "monitors_total",
                                                "avg_response_ms",
                                                "open_incidents",
                                                "uptime_24h",
                                                "uptime_24h_delta"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "stats:read"
                        ]
                    }
                ],
                "x-required-ability": "stats:read",
                "description": "Monitor counts by status, average response time, open incidents and the rolling 24 hour uptime with its change against the previous 24 hours."
            }
        },
        "/dashboard/active-incidents": {
            "get": {
                "operationId": "v1.dashboard.active-incidents",
                "summary": "List active incidents",
                "tags": [
                    "Dashboard"
                ],
                "responses": {
                    "200": {
                        "description": "A list of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "allOf": [
                                                    {
                                                        "$ref": "#/components/schemas/IncidentResource"
                                                    },
                                                    {
                                                        "type": "object",
                                                        "required": [
                                                            "monitors",
                                                            "updates"
                                                        ]
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "stats:read"
                        ]
                    }
                ],
                "x-required-ability": "stats:read",
                "description": "The team's unresolved incidents, newest first."
            }
        },
        "/dashboard/monitors-snapshot": {
            "get": {
                "operationId": "v1.dashboard.monitors-snapshot",
                "description": "The team's monitors in the worst state, worst first, capped.",
                "summary": "List the worst monitors",
                "tags": [
                    "Dashboard"
                ],
                "responses": {
                    "200": {
                        "description": "A list of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MonitorResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "stats:read"
                        ]
                    }
                ],
                "x-required-ability": "stats:read"
            }
        },
        "/dashboard/ai-inbox": {
            "get": {
                "operationId": "v1.dashboard.ai-inbox",
                "summary": "List pending AI suggestions",
                "tags": [
                    "Dashboard"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "stats:read"
                        ]
                    }
                ],
                "x-required-ability": "stats:read",
                "description": "The newest pending AI suggestions, with `meta.total` counting all of them."
            }
        },
        "/escalation-policies": {
            "get": {
                "operationId": "v1.escalation-policies.index",
                "summary": "List escalation policies",
                "tags": [
                    "Escalation"
                ],
                "responses": {
                    "200": {
                        "description": "A page of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/EscalationPolicyResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the next set of items."
                                                },
                                                "prev_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the previous set of items."
                                                }
                                            },
                                            "required": [
                                                "path",
                                                "per_page",
                                                "next_cursor",
                                                "prev_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:read"
                        ]
                    }
                ],
                "x-required-ability": "oncall:read",
                "description": "The team's escalation policies, newest first, cursor-paginated.",
                "parameters": [
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Page size, clamped to 1 and the endpoint's maximum (200 on most lists).",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "The `meta.next_cursor` of the previous page.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            },
            "post": {
                "operationId": "v1.escalation-policies.store",
                "summary": "Create an escalation policy",
                "tags": [
                    "Escalation"
                ],
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreEscalationPolicyRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/EscalationPolicyResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Creates a policy."
            }
        },
        "/escalation-policies/{policy}": {
            "get": {
                "operationId": "v1.escalation-policies.show",
                "summary": "Get an escalation policy",
                "tags": [
                    "Escalation"
                ],
                "parameters": [
                    {
                        "name": "policy",
                        "in": "path",
                        "required": true,
                        "description": "The policy ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/EscalationPolicyResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "steps"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:read"
                        ]
                    }
                ],
                "x-required-ability": "oncall:read",
                "description": "One policy with its ordered steps."
            },
            "put": {
                "operationId": "v1.escalation-policies.update",
                "summary": "Update an escalation policy",
                "tags": [
                    "Escalation"
                ],
                "parameters": [
                    {
                        "name": "policy",
                        "in": "path",
                        "required": true,
                        "description": "The policy ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateEscalationPolicyRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/EscalationPolicyResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "steps"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Updates the policy."
            },
            "delete": {
                "operationId": "v1.escalation-policies.destroy",
                "summary": "Delete an escalation policy",
                "tags": [
                    "Escalation"
                ],
                "parameters": [
                    {
                        "name": "policy",
                        "in": "path",
                        "required": true,
                        "description": "The policy ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Deletes the policy."
            }
        },
        "/escalation-policies/{policy}/steps": {
            "post": {
                "operationId": "v1.escalation-policies.steps.store",
                "summary": "Add an escalation step",
                "tags": [
                    "Escalation"
                ],
                "parameters": [
                    {
                        "name": "policy",
                        "in": "path",
                        "required": true,
                        "description": "The policy ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreEscalationStepRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/EscalationPolicyResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "steps"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Adds a step to the policy's paging chain."
            }
        },
        "/escalation-policies/{policy}/steps/reorder": {
            "patch": {
                "operationId": "v1.escalation-policies.steps.reorder",
                "description": "Sets `position` for the policy's steps.",
                "summary": "Reorder escalation steps",
                "tags": [
                    "Escalation"
                ],
                "parameters": [
                    {
                        "name": "policy",
                        "in": "path",
                        "required": true,
                        "description": "The policy ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "order": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "position": {
                                                    "type": "integer",
                                                    "minimum": 0.0
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "position"
                                            ]
                                        },
                                        "minItems": 1.0
                                    }
                                },
                                "required": [
                                    "order"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write"
            }
        },
        "/escalation-policies/{policy}/steps/{step}": {
            "delete": {
                "operationId": "v1.escalation-policies.steps.destroy",
                "summary": "Remove an escalation step",
                "tags": [
                    "Escalation"
                ],
                "parameters": [
                    {
                        "name": "policy",
                        "in": "path",
                        "required": true,
                        "description": "The policy ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "step",
                        "in": "path",
                        "required": true,
                        "description": "The step ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Removes a step from the policy."
            }
        },
        "/incidents": {
            "get": {
                "operationId": "v1.incidents.index",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "monitor_id",
                        "in": "query",
                        "description": "Filter by the affected monitor, matching either the denormalized primary hint or the full affected-component pivot.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "lifecycle",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "ai_owned",
                        "in": "query",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Free-text search over the incident title.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Page size, clamped to 1 and the endpoint's maximum (200 on most lists).",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "The `meta.next_cursor` of the previous page.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A page of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/IncidentResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the next set of items."
                                                },
                                                "prev_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the previous set of items."
                                                },
                                                "open_total": {
                                                    "type": "integer"
                                                },
                                                "critical_total": {
                                                    "type": "integer"
                                                },
                                                "ai_total": {
                                                    "type": "integer"
                                                },
                                                "resolved_total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "path",
                                                "per_page",
                                                "next_cursor",
                                                "prev_cursor",
                                                "open_total",
                                                "critical_total",
                                                "ai_total",
                                                "resolved_total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:read"
                        ]
                    }
                ],
                "x-required-ability": "incidents:read",
                "summary": "List incidents",
                "description": "The team's incidents, newest first, cursor-paginated (at most 100 per page)."
            },
            "post": {
                "operationId": "v1.incidents.store",
                "summary": "Open an incident",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreIncidentRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Opens a manual incident for one of the team's monitors."
            }
        },
        "/incidents/digest": {
            "get": {
                "operationId": "v1.incidents.digest",
                "summary": "Get the weekly digest",
                "tags": [
                    "Incidents"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "week_start": {
                                                    "type": "string"
                                                },
                                                "week_end": {
                                                    "type": "string"
                                                },
                                                "uptime_percent": {
                                                    "type": "number"
                                                },
                                                "incident_count": {
                                                    "type": "integer"
                                                },
                                                "confidence": {
                                                    "type": "string",
                                                    "enum": [
                                                        "high",
                                                        "medium",
                                                        "low"
                                                    ]
                                                },
                                                "summary": {
                                                    "type": "string"
                                                },
                                                "highlights": {
                                                    "type": "array",
                                                    "items": {}
                                                },
                                                "stripped_citations": {
                                                    "type": "array",
                                                    "items": {}
                                                },
                                                "generated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "week_start",
                                                "week_end",
                                                "uptime_percent",
                                                "incident_count",
                                                "confidence",
                                                "summary",
                                                "highlights",
                                                "stripped_citations",
                                                "generated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "description": "An error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "description": "Error overview.",
                                            "examples": [
                                                "No digest generated yet."
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:read"
                        ]
                    }
                ],
                "x-required-ability": "incidents:read",
                "description": "The latest stored weekly incident digest of the team."
            }
        },
        "/incidents/{incident}": {
            "get": {
                "operationId": "v1.incidents.show",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/IncidentResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "assignee",
                                                        "ai_investigation",
                                                        "monitors",
                                                        "updates"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:read"
                        ]
                    }
                ],
                "x-required-ability": "incidents:read",
                "summary": "Get an incident",
                "description": "One incident with its timeline. Updates posted through a key show the author as \"API key: <name>\"."
            }
        },
        "/incidents/{incident}/resolve": {
            "post": {
                "operationId": "v1.incidents.resolve",
                "summary": "Resolve an incident",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/IncidentNoteRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/IncidentResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "assignee",
                                                        "ai_investigation",
                                                        "monitors",
                                                        "updates"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Resolves an active incident, whatever the monitor's live health."
            }
        },
        "/incidents/{incident}/acknowledge": {
            "post": {
                "operationId": "v1.incidents.acknowledge",
                "summary": "Acknowledge an incident",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/IncidentNoteRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/IncidentResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "assignee",
                                                        "ai_investigation",
                                                        "monitors",
                                                        "updates"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Acknowledges a newly detected incident and moves it to investigating."
            }
        },
        "/incidents/{incident}/reopen": {
            "post": {
                "operationId": "v1.incidents.reopen",
                "summary": "Reopen an incident",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/IncidentNoteRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/IncidentResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "assignee",
                                                        "ai_investigation",
                                                        "monitors",
                                                        "updates"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Reopens a resolved incident and returns it to investigating."
            }
        },
        "/incidents/{incident}/assign": {
            "post": {
                "operationId": "v1.incidents.assign",
                "summary": "Assign an incident",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AssignIncidentRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/IncidentResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "assignee",
                                                        "ai_investigation",
                                                        "monitors",
                                                        "updates"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Hands the incident to a member of the team, or clears the assignment when `assignee_id` is null. A non-member is a 422."
            }
        },
        "/incidents/{incident}/postmortem": {
            "post": {
                "operationId": "v1.incidents.postmortem",
                "summary": "Save a postmortem",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SaveIncidentPostmortemRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/IncidentResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "assignee",
                                                        "ai_investigation",
                                                        "monitors",
                                                        "updates"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Stores the incident's postmortem body; with `publish` set it also appears on the public status page."
            }
        },
        "/incidents/{incident}/updates": {
            "post": {
                "operationId": "v1.incidents.updates.store",
                "summary": "Post an incident update",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PostIncidentUpdateRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/IncidentUpdateResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Appends an update to the incident's timeline, optionally without changing its status."
            }
        },
        "/incidents/{incident}/analysis": {
            "get": {
                "operationId": "v1.incidents.analysis",
                "description": "The AI summary of the incident's likely root cause.",
                "summary": "Get the AI root-cause analysis",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "refresh",
                        "in": "query",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": {}
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:read"
                        ]
                    }
                ],
                "x-required-ability": "incidents:read"
            }
        },
        "/incidents/{incident}/analysis/feedback": {
            "post": {
                "operationId": "v1.incidents.analysis.feedback",
                "description": "Records a rating of the stored analysis.",
                "summary": "Rate the AI analysis",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreAnalysisFeedbackRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": {}
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write"
            }
        },
        "/incidents/{incident}/draft-update": {
            "post": {
                "operationId": "v1.incidents.draft.update",
                "summary": "Draft a status update with AI",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "draft": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "degrade_reason": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "enum": [
                                                        "budget_exhausted",
                                                        "output_untrusted",
                                                        "service_unreachable",
                                                        null
                                                    ]
                                                },
                                                "nothing_to_say": {
                                                    "type": "boolean",
                                                    "description": "A THIRD outcome, and not a degrade: nothing failed, there is\nsimply nothing a customer could be told. The client must not fill\nits own template here, which is what it does for a null draft,\nbecause the template is the generic sentence this exists to stop."
                                                }
                                            },
                                            "required": [
                                                "draft",
                                                "degrade_reason",
                                                "nothing_to_say"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Drafts the next public status update for the incident. Stores nothing and spends AI budget."
            }
        },
        "/incidents/{incident}/draft-postmortem": {
            "post": {
                "operationId": "v1.incidents.draft.postmortem",
                "summary": "Draft a postmortem with AI",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "incident",
                        "in": "path",
                        "required": true,
                        "description": "The incident ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "draft": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "degrade_reason": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "enum": [
                                                        "budget_exhausted",
                                                        "output_untrusted",
                                                        "service_unreachable",
                                                        null
                                                    ]
                                                },
                                                "nothing_to_say": {
                                                    "type": "boolean",
                                                    "description": "A THIRD outcome, and not a degrade: nothing failed, there is\nsimply nothing a customer could be told. The client must not fill\nits own template here, which is what it does for a null draft,\nbecause the template is the generic sentence this exists to stop."
                                                }
                                            },
                                            "required": [
                                                "draft",
                                                "degrade_reason",
                                                "nothing_to_say"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Drafts the postmortem of a resolved incident. Stores nothing and spends AI budget."
            }
        },
        "/ai-suggestions/{suggestion}/accept": {
            "post": {
                "operationId": "v1.ai-suggestions.accept",
                "summary": "Accept an AI suggestion",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "suggestion",
                        "in": "path",
                        "required": true,
                        "description": "Primary key of the suggestion to accept.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "object",
                                                    "properties": {
                                                        "incident_id": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "incident_id"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "object",
                                                    "properties": {
                                                        "incident_id": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "incident_id"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Turns a pending AI suggestion into an incident and returns the incident id."
            }
        },
        "/ai-suggestions/{suggestion}/dismiss": {
            "post": {
                "operationId": "v1.ai-suggestions.dismiss",
                "summary": "Dismiss an AI suggestion",
                "tags": [
                    "Incidents"
                ],
                "parameters": [
                    {
                        "name": "suggestion",
                        "in": "path",
                        "required": true,
                        "description": "Primary key of the suggestion to dismiss.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "dismissed"
                                                }
                                            },
                                            "required": [
                                                "status"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "incidents:write"
                        ]
                    }
                ],
                "x-required-ability": "incidents:write",
                "description": "Dismisses a pending AI suggestion so it leaves the inbox."
            }
        },
        "/claim-code": {
            "post": {
                "operationId": "v1.claim-code.store",
                "summary": "Get a claim url for an anonymous workspace",
                "tags": [
                    "Keys"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "claim_url": {
                                                    "type": "string"
                                                },
                                                "claim_expires_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "claim_url",
                                                "claim_expires_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "409": {
                        "description": "Conflict",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "description": "Error overview."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "claim:create"
                        ]
                    }
                ],
                "x-required-ability": "claim:create",
                "description": "Replaces the calling anonymous key's claim code and returns `claim_url` plus `claim_expires_at`. Hand the url to a human: opening it while signed in makes the temporary workspace a permanent team. Only anonymous keys carry `claim:create`. Any earlier claim url stops working."
            }
        },
        "/me": {
            "get": {
                "operationId": "v1.me",
                "tags": [
                    "Keys"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "team": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name"
                                                    ]
                                                },
                                                "plan": {
                                                    "type": "string",
                                                    "enum": [
                                                        "anonymous",
                                                        "free",
                                                        "starter",
                                                        "pro",
                                                        "enterprise"
                                                    ]
                                                },
                                                "limits": {
                                                    "type": "object",
                                                    "additionalProperties": {}
                                                },
                                                "key": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "abilities": {
                                                            "type": "string"
                                                        },
                                                        "expires_at": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "kind": {
                                                            "type": "string",
                                                            "enum": [
                                                                "team",
                                                                "anonymous"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "name",
                                                        "abilities",
                                                        "expires_at",
                                                        "kind"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "team",
                                                "plan",
                                                "limits",
                                                "key"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "self"
                        ]
                    }
                ],
                "x-required-ability": "self",
                "summary": "Describe the calling key",
                "description": "Returns the key's team, the team's plan and limits, and the key itself (name, abilities, expiry, kind). Any valid key may call it, whatever abilities it carries; use it to check a key works and what it can do."
            }
        },
        "/scheduled-maintenances": {
            "get": {
                "operationId": "scheduled-maintenances.index",
                "summary": "List maintenance windows",
                "tags": [
                    "Maintenance"
                ],
                "responses": {
                    "200": {
                        "description": "A page of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ScheduledMaintenanceResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the next set of items."
                                                },
                                                "prev_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the previous set of items."
                                                }
                                            },
                                            "required": [
                                                "path",
                                                "per_page",
                                                "next_cursor",
                                                "prev_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "maintenance:read"
                        ]
                    }
                ],
                "x-required-ability": "maintenance:read",
                "description": "The team's maintenance windows, newest window first, cursor-paginated.",
                "parameters": [
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Page size, clamped to 1 and the endpoint's maximum (200 on most lists).",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "The `meta.next_cursor` of the previous page.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            },
            "post": {
                "operationId": "scheduled-maintenances.store",
                "description": "Plans a window on a status page and announces it to the page's confirmed subscribers. While a window is open, incidents on its monitors are held back.",
                "summary": "Plan a maintenance window",
                "tags": [
                    "Maintenance"
                ],
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreScheduledMaintenanceRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/ScheduledMaintenanceResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "monitors"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "maintenance:write"
                        ]
                    }
                ],
                "x-required-ability": "maintenance:write"
            }
        },
        "/scheduled-maintenances/{maintenance}": {
            "get": {
                "operationId": "scheduled-maintenances.show",
                "summary": "Get a maintenance window",
                "tags": [
                    "Maintenance"
                ],
                "parameters": [
                    {
                        "name": "maintenance",
                        "in": "path",
                        "required": true,
                        "description": "The maintenance ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/ScheduledMaintenanceResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "monitors"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "maintenance:read"
                        ]
                    }
                ],
                "x-required-ability": "maintenance:read",
                "description": "One window with its affected components."
            },
            "put": {
                "operationId": "scheduled-maintenances.update",
                "description": "Updates the window.",
                "summary": "Update a maintenance window",
                "tags": [
                    "Maintenance"
                ],
                "parameters": [
                    {
                        "name": "maintenance",
                        "in": "path",
                        "required": true,
                        "description": "The maintenance ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateScheduledMaintenanceRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/ScheduledMaintenanceResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "monitors"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "maintenance:write"
                        ]
                    }
                ],
                "x-required-ability": "maintenance:write"
            },
            "delete": {
                "operationId": "scheduled-maintenances.destroy",
                "summary": "Delete a maintenance window",
                "tags": [
                    "Maintenance"
                ],
                "parameters": [
                    {
                        "name": "maintenance",
                        "in": "path",
                        "required": true,
                        "description": "The maintenance ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "maintenance:write"
                        ]
                    }
                ],
                "x-required-ability": "maintenance:write",
                "description": "Deletes the window."
            }
        },
        "/monitors/{monitor}/metrics": {
            "get": {
                "operationId": "v1.monitors.metrics.index",
                "tags": [
                    "Metrics"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A list of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MonitorMetricResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "metrics:read"
                        ]
                    }
                ],
                "x-required-ability": "metrics:read",
                "summary": "List a monitor's metrics",
                "description": "The custom metrics defined on the monitor, in display order."
            },
            "post": {
                "operationId": "v1.monitors.metrics.store",
                "tags": [
                    "Metrics"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreMonitorMetricRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MonitorMetricResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "metrics:write"
                        ]
                    }
                ],
                "x-required-ability": "metrics:write",
                "summary": "Create a metric",
                "description": "Defines a custom metric that extracts a value from every check response of the monitor (JSONPath, regex, XPath, a header or the status code), with optional thresholds."
            }
        },
        "/monitors/{monitor}/metrics/preview": {
            "post": {
                "operationId": "v1.monitors.metrics.preview",
                "description": "Runs a draft extraction rule against the monitor's newest archived response and returns the extracted value and the threshold band it would land in. Stores nothing.",
                "summary": "Preview a metric rule",
                "tags": [
                    "Metrics"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "source": {
                                        "$ref": "#/components/schemas/MetricSource"
                                    },
                                    "extraction_path": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500.0
                                    },
                                    "type": {
                                        "$ref": "#/components/schemas/MetricType"
                                    },
                                    "sample_body": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "sample_headers": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "sample_status_code": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "threshold_direction": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/ThresholdDirection"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    },
                                    "warn_bound": {
                                        "type": [
                                            "number",
                                            "null"
                                        ]
                                    },
                                    "critical_bound": {
                                        "type": [
                                            "number",
                                            "null"
                                        ]
                                    },
                                    "ok_values": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "minLength": 1.0,
                                            "maxLength": 120.0
                                        },
                                        "maxItems": 50.0
                                    },
                                    "warn_values": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "minLength": 1.0,
                                            "maxLength": 120.0
                                        },
                                        "maxItems": 50.0
                                    },
                                    "critical_values": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "minLength": 1.0,
                                            "maxLength": 120.0
                                        },
                                        "maxItems": 50.0
                                    },
                                    "unmatched_band": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/MetricBand"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "source",
                                    "type"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "extracted_value": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "type_valid": {
                                                    "type": "boolean"
                                                },
                                                "error": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "band": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "enum": [
                                                        "ok",
                                                        "warn",
                                                        "critical",
                                                        null
                                                    ]
                                                },
                                                "has_sample": {
                                                    "type": "boolean",
                                                    "description": "Which sample produced this answer, so the UI can name it instead of\nimplying it just fetched the endpoint live."
                                                },
                                                "sample_checked_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "sample_status_code": {
                                                    "type": [
                                                        "string",
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "extracted_value",
                                                "type_valid",
                                                "error",
                                                "band",
                                                "has_sample",
                                                "sample_checked_at",
                                                "sample_status_code"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "extracted_value": {
                                                    "type": "null"
                                                },
                                                "type_valid": {
                                                    "type": "boolean"
                                                },
                                                "error": {
                                                    "type": "string",
                                                    "const": "This monitor has no checks yet, so there is nothing to test against. Run a check first."
                                                },
                                                "band": {
                                                    "type": "null"
                                                },
                                                "has_sample": {
                                                    "type": "boolean"
                                                },
                                                "sample_checked_at": {
                                                    "type": "null"
                                                },
                                                "sample_status_code": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "extracted_value",
                                                "type_valid",
                                                "error",
                                                "band",
                                                "has_sample",
                                                "sample_checked_at",
                                                "sample_status_code"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "metrics:write"
                        ]
                    }
                ],
                "x-required-ability": "metrics:write"
            }
        },
        "/monitors/{monitor}/metrics/discover": {
            "post": {
                "operationId": "v1.monitors.metrics.discover",
                "description": "Proposes metrics worth adding, read from the monitor's newest archived content. Stores nothing; create the ones you want with `POST /monitors/{monitor}/metrics`.",
                "summary": "Discover metrics with AI",
                "tags": [
                    "Metrics"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "suggested_metrics": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "prefixItems": [
                                                                {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "key": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "type": "string"
                                                                                    },
                                                                                    {}
                                                                                ]
                                                                            },
                                                                            "label": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "type": "string"
                                                                                    },
                                                                                    {}
                                                                                ]
                                                                            },
                                                                            "type": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "type": "string"
                                                                                    },
                                                                                    {}
                                                                                ]
                                                                            },
                                                                            "source": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "type": "string"
                                                                                    },
                                                                                    {}
                                                                                ]
                                                                            },
                                                                            "path": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "type": "string",
                                                                                        "description": "The WIRE field is `path` (matching the Flutter DTO) while the\ncolumn is `extraction_path`. The value is the candidate's own\npath, never anything the model returned."
                                                                                    },
                                                                                    {}
                                                                                ]
                                                                            },
                                                                            "unit": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "type": [
                                                                                            "string",
                                                                                            "null"
                                                                                        ],
                                                                                        "description": "The unit the metric's value is expressed in; only a numeric metric carries one.",
                                                                                        "enum": [
                                                                                            "bytes_auto",
                                                                                            "byte",
                                                                                            "kilobyte",
                                                                                            "megabyte",
                                                                                            "gigabyte",
                                                                                            "terabyte",
                                                                                            "duration_auto",
                                                                                            "millisecond",
                                                                                            "second",
                                                                                            "minute",
                                                                                            "hour",
                                                                                            "percent",
                                                                                            "ratio",
                                                                                            "count",
                                                                                            "count_short",
                                                                                            "custom",
                                                                                            null
                                                                                        ]
                                                                                    },
                                                                                    {}
                                                                                ]
                                                                            },
                                                                            "threshold_direction": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "description": "Which side of the warn and critical bounds counts as bad.",
                                                                                        "anyOf": [
                                                                                            {
                                                                                                "type": "string"
                                                                                            },
                                                                                            {
                                                                                                "type": "null"
                                                                                            },
                                                                                            {
                                                                                                "type": "string",
                                                                                                "enum": [
                                                                                                    "low_bad"
                                                                                                ]
                                                                                            }
                                                                                        ]
                                                                                    },
                                                                                    {}
                                                                                ]
                                                                            },
                                                                            "warn": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "description": "The proposed warn bound, anchored to the observed reading when the model gave none.",
                                                                                        "type": [
                                                                                            "string",
                                                                                            "null",
                                                                                            "number"
                                                                                        ]
                                                                                    },
                                                                                    {}
                                                                                ]
                                                                            },
                                                                            "critical": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "type": [
                                                                                            "string",
                                                                                            "null",
                                                                                            "number"
                                                                                        ]
                                                                                    },
                                                                                    {}
                                                                                ]
                                                                            },
                                                                            "sample_value": {
                                                                                "type": "string",
                                                                                "description": "The digest representation, so the pill shows exactly the sample\nthe model was shown rather than an unbounded page fragment."
                                                                            },
                                                                            "origin": {
                                                                                "type": "string",
                                                                                "description": "Who proposed this row. The surface must be able to tell the\noperator which suggestions a model wrote and which a rule did,\nbecause badging a deterministic row as AI work is a claim this\nproduct does not get to make.",
                                                                                "const": "model"
                                                                            },
                                                                            "anomaly_enabled": {
                                                                                "type": "boolean"
                                                                            },
                                                                            "anomaly_direction": {
                                                                                "type": "string",
                                                                                "enum": [
                                                                                    "low_bad",
                                                                                    "both"
                                                                                ]
                                                                            },
                                                                            "anomaly_kind": {
                                                                                "type": "string",
                                                                                "const": "gauge"
                                                                            },
                                                                            "anomaly_sensitivity": {
                                                                                "type": "string",
                                                                                "const": "medium"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "key",
                                                                            "label",
                                                                            "type",
                                                                            "source",
                                                                            "path",
                                                                            "unit",
                                                                            "threshold_direction",
                                                                            "warn",
                                                                            "critical",
                                                                            "sample_value",
                                                                            "origin",
                                                                            "anomaly_enabled",
                                                                            "anomaly_direction",
                                                                            "anomaly_kind",
                                                                            "anomaly_sensitivity"
                                                                        ],
                                                                        "additionalProperties": {}
                                                                    }
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            ],
                                                            "minItems": 2,
                                                            "maxItems": 2
                                                        },
                                                        {
                                                            "type": "array",
                                                            "prefixItems": [
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "type": "array",
                                                                            "prefixItems": [
                                                                                {
                                                                                    "type": "object",
                                                                                    "properties": {
                                                                                        "key": {
                                                                                            "type": "string"
                                                                                        },
                                                                                        "label": {
                                                                                            "type": "string"
                                                                                        },
                                                                                        "type": {
                                                                                            "type": "string",
                                                                                            "const": "string"
                                                                                        },
                                                                                        "source": {
                                                                                            "type": "string"
                                                                                        },
                                                                                        "path": {
                                                                                            "type": "string"
                                                                                        },
                                                                                        "unit": {
                                                                                            "type": "null"
                                                                                        },
                                                                                        "threshold_direction": {
                                                                                            "type": "null"
                                                                                        },
                                                                                        "warn": {
                                                                                            "type": "null"
                                                                                        },
                                                                                        "critical": {
                                                                                            "type": "null"
                                                                                        },
                                                                                        "ok_values": {
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                                "type": "string"
                                                                                            }
                                                                                        },
                                                                                        "warn_values": {
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                                "type": "string"
                                                                                            }
                                                                                        },
                                                                                        "critical_values": {
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                                "type": "string"
                                                                                            }
                                                                                        },
                                                                                        "sample_value": {
                                                                                            "type": "string"
                                                                                        },
                                                                                        "origin": {
                                                                                            "type": "string",
                                                                                            "const": "rule"
                                                                                        },
                                                                                        "anomaly_enabled": {
                                                                                            "type": "boolean"
                                                                                        },
                                                                                        "anomaly_direction": {
                                                                                            "type": "string",
                                                                                            "const": "both"
                                                                                        },
                                                                                        "anomaly_kind": {
                                                                                            "type": "string",
                                                                                            "const": "gauge"
                                                                                        },
                                                                                        "anomaly_sensitivity": {
                                                                                            "type": "string",
                                                                                            "const": "medium"
                                                                                        }
                                                                                    },
                                                                                    "required": [
                                                                                        "key",
                                                                                        "label",
                                                                                        "type",
                                                                                        "source",
                                                                                        "path",
                                                                                        "unit",
                                                                                        "threshold_direction",
                                                                                        "warn",
                                                                                        "critical",
                                                                                        "ok_values",
                                                                                        "warn_values",
                                                                                        "critical_values",
                                                                                        "sample_value",
                                                                                        "origin",
                                                                                        "anomaly_enabled",
                                                                                        "anomaly_direction",
                                                                                        "anomaly_kind",
                                                                                        "anomaly_sensitivity"
                                                                                    ]
                                                                                }
                                                                            ],
                                                                            "minItems": 1,
                                                                            "maxItems": 1
                                                                        },
                                                                        {
                                                                            "type": "array",
                                                                            "items": {
                                                                                "type": "string"
                                                                            },
                                                                            "minItems": 0,
                                                                            "maxItems": 0
                                                                        }
                                                                    ]
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "key": {
                                                                                "type": "string"
                                                                            },
                                                                            "label": {
                                                                                "type": "string"
                                                                            },
                                                                            "type": {
                                                                                "type": "string",
                                                                                "const": "numeric"
                                                                            },
                                                                            "source": {
                                                                                "type": "string"
                                                                            },
                                                                            "path": {
                                                                                "type": "string"
                                                                            },
                                                                            "unit": {
                                                                                "type": "string",
                                                                                "const": "count"
                                                                            },
                                                                            "threshold_direction": {
                                                                                "type": "string",
                                                                                "const": "low_bad"
                                                                            },
                                                                            "warn": {
                                                                                "type": "null"
                                                                            },
                                                                            "critical": {
                                                                                "type": "null"
                                                                            },
                                                                            "ok_values": {
                                                                                "type": "array",
                                                                                "items": {
                                                                                    "type": "string"
                                                                                },
                                                                                "minItems": 0,
                                                                                "maxItems": 0
                                                                            },
                                                                            "warn_values": {
                                                                                "type": "array",
                                                                                "items": {
                                                                                    "type": "string"
                                                                                },
                                                                                "minItems": 0,
                                                                                "maxItems": 0
                                                                            },
                                                                            "critical_values": {
                                                                                "type": "array",
                                                                                "items": {
                                                                                    "type": "string"
                                                                                },
                                                                                "minItems": 0,
                                                                                "maxItems": 0
                                                                            },
                                                                            "sample_value": {
                                                                                "type": "string"
                                                                            },
                                                                            "origin": {
                                                                                "type": "string",
                                                                                "const": "rule"
                                                                            },
                                                                            "anomaly_enabled": {
                                                                                "type": "boolean"
                                                                            },
                                                                            "anomaly_direction": {
                                                                                "type": "string",
                                                                                "const": "low_bad"
                                                                            },
                                                                            "anomaly_kind": {
                                                                                "type": "string",
                                                                                "const": "gauge"
                                                                            },
                                                                            "anomaly_sensitivity": {
                                                                                "type": "string",
                                                                                "const": "medium"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "key",
                                                                            "label",
                                                                            "type",
                                                                            "source",
                                                                            "path",
                                                                            "unit",
                                                                            "threshold_direction",
                                                                            "warn",
                                                                            "critical",
                                                                            "ok_values",
                                                                            "warn_values",
                                                                            "critical_values",
                                                                            "sample_value",
                                                                            "origin",
                                                                            "anomaly_enabled",
                                                                            "anomaly_direction",
                                                                            "anomaly_kind",
                                                                            "anomaly_sensitivity"
                                                                        ]
                                                                    }
                                                                }
                                                            ],
                                                            "minItems": 2,
                                                            "maxItems": 2
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            },
                                                            "minItems": 0,
                                                            "maxItems": 0
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "suggested_metrics"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "metrics:write"
                        ]
                    }
                ],
                "x-required-ability": "metrics:write"
            }
        },
        "/monitors/{monitor}/metrics/reorder": {
            "patch": {
                "operationId": "v1.monitors.metrics.reorder",
                "description": "Sets `display_order` for a set of the monitor's metrics.",
                "summary": "Reorder metrics",
                "tags": [
                    "Metrics"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "order": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "display_order": {
                                                    "type": "integer",
                                                    "minimum": 0.0
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "display_order"
                                            ]
                                        },
                                        "minItems": 1.0
                                    }
                                },
                                "required": [
                                    "order"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "metrics:write"
                        ]
                    }
                ],
                "x-required-ability": "metrics:write"
            }
        },
        "/monitors/{monitor}/metrics/{metric}": {
            "put": {
                "operationId": "v1.monitors.metrics.update",
                "description": "Edits one metric definition; only the fields sent change.",
                "summary": "Update a metric",
                "tags": [
                    "Metrics"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "metric",
                        "in": "path",
                        "required": true,
                        "description": "The metric ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateMonitorMetricRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MonitorMetricResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "metrics:write"
                        ]
                    }
                ],
                "x-required-ability": "metrics:write"
            },
            "delete": {
                "operationId": "v1.monitors.metrics.destroy",
                "tags": [
                    "Metrics"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "metric",
                        "in": "path",
                        "required": true,
                        "description": "The metric ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "metrics:write"
                        ]
                    }
                ],
                "x-required-ability": "metrics:write",
                "summary": "Delete a metric",
                "description": "Deletes the metric and its readings."
            }
        },
        "/monitors/{monitor}/metrics/series": {
            "get": {
                "operationId": "v1.monitors.metrics.batch_series",
                "summary": "Get recent samples of every metric",
                "tags": [
                    "Metrics"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "range": {
                                                    "type": "string"
                                                },
                                                "limit": {}
                                            },
                                            "required": [
                                                "range",
                                                "limit"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "metrics:read"
                        ]
                    }
                ],
                "x-required-ability": "metrics:read",
                "description": "The most recent samples of every metric on the monitor in one response."
            }
        },
        "/monitors/{monitor}/metrics/{metric}/series": {
            "get": {
                "operationId": "v1.monitors.metrics.series",
                "description": "One metric's readings over the requested window, oldest first, for charting. Beyond 24 hours a numeric metric comes back as bucket averages.",
                "summary": "Get a metric series",
                "tags": [
                    "Metrics"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "metric",
                        "in": "path",
                        "required": true,
                        "description": "The metric ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "recorded_at": {
                                                        "type": "string"
                                                    },
                                                    "numeric_value": {
                                                        "type": [
                                                            "number",
                                                            "null"
                                                        ]
                                                    },
                                                    "string_value": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status_value": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "band": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "recorded_at",
                                                    "numeric_value",
                                                    "string_value",
                                                    "status_value",
                                                    "band"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "metrics:read"
                        ]
                    }
                ],
                "x-required-ability": "metrics:read"
            }
        },
        "/monitors/{monitor}/metrics/{metric}/readings": {
            "get": {
                "operationId": "v1.monitors.metrics.readings",
                "description": "One metric's readings, newest first, cursor-paginated.",
                "summary": "List a metric's readings",
                "tags": [
                    "Metrics"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "metric",
                        "in": "path",
                        "required": true,
                        "description": "The metric ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Page size, clamped to 1 and the endpoint's maximum (200 on most lists).",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "The `meta.next_cursor` of the previous page.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A page of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MonitorMetricValueResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the next set of items."
                                                },
                                                "prev_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the previous set of items."
                                                }
                                            },
                                            "required": [
                                                "path",
                                                "per_page",
                                                "next_cursor",
                                                "prev_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "metrics:read"
                        ]
                    }
                ],
                "x-required-ability": "metrics:read"
            }
        },
        "/monitors/analyze": {
            "post": {
                "operationId": "v1.monitors.analyze",
                "description": "Probes the URL from several regions and queues an AI analysis that proposes monitor settings and metrics. Answers 202 with `data.run_id` and the run state; poll `GET /monitors/analyze/{run}` until `status` is `completed` or `failed`. A second analysis while one is running for the team answers 409. Counts against the plan's AI setup allowance; an unclaimed anonymous workspace has none.",
                "summary": "Start an AI analysis of a URL",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AnalyzeMonitorRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "run_id": {
                                                    "type": "string"
                                                },
                                                "status": {},
                                                "step": {},
                                                "steps": {},
                                                "probe": {},
                                                "probes": {},
                                                "reason": {},
                                                "result": {}
                                            },
                                            "required": [
                                                "run_id",
                                                "status",
                                                "step",
                                                "steps",
                                                "probe",
                                                "probes",
                                                "reason",
                                                "result"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "An analysis is already running for this team. Wait for it to finish before starting another."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:write"
                        ]
                    }
                ],
                "x-required-ability": "monitors:write"
            }
        },
        "/monitors/analyze/{run}": {
            "get": {
                "operationId": "v1.monitors.analyze.run",
                "description": "Returns the run state: `status` is `queued`, `analyzing`, `completed` or `failed`. On `completed`, `result.data` holds the proposed monitor (`name`, `url`, `suggestion` settings, `suggested_metrics`); on `failed`, `reason` says why. Poll every 2.5 seconds for up to about 150 seconds. A 404 means the run expired or belongs to another team: start a new analysis.",
                "summary": "Poll an AI analysis run",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "run",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "run_id": {
                                                    "type": "string"
                                                },
                                                "status": {},
                                                "step": {},
                                                "steps": {},
                                                "probe": {},
                                                "probes": {},
                                                "reason": {},
                                                "result": {}
                                            },
                                            "required": [
                                                "run_id",
                                                "status",
                                                "step",
                                                "steps",
                                                "probe",
                                                "probes",
                                                "reason",
                                                "result"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "description": "An error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "description": "Error overview.",
                                            "examples": [
                                                ""
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read"
            }
        },
        "/monitors": {
            "get": {
                "operationId": "monitors.index",
                "description": "The team's monitors, newest first, cursor-paginated. Filter by `status`. Monitors read through a key never include `request_headers` or `request_body`, and credentials are stripped from `url`.",
                "summary": "List monitors",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Page size, clamped to 1 and the endpoint's maximum (200 on most lists).",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "The `meta.next_cursor` of the previous page.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A page of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MonitorResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the next set of items."
                                                },
                                                "prev_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the previous set of items."
                                                },
                                                "total": {
                                                    "type": "number"
                                                },
                                                "counts": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                        {
                                                            "type": "array",
                                                            "items": {}
                                                        },
                                                        {
                                                            "type": "object",
                                                            "additionalProperties": {}
                                                        }
                                                    ],
                                                    "minItems": 2,
                                                    "maxItems": 2
                                                },
                                                "avg_response_ms": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "path",
                                                "per_page",
                                                "next_cursor",
                                                "prev_cursor",
                                                "total",
                                                "counts",
                                                "avg_response_ms"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read"
            },
            "post": {
                "operationId": "monitors.store",
                "description": "Creates a monitor, plus any `metrics` sent with it in the same write, and queues its first check. Send an `Idempotency-Key` so a retry cannot create it twice. The plan caps the monitor count and the shortest `check_interval_sec`.",
                "summary": "Create a monitor",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreMonitorRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MonitorResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:write"
                        ]
                    }
                ],
                "x-required-ability": "monitors:write"
            }
        },
        "/monitors/{monitor}": {
            "get": {
                "operationId": "monitors.show",
                "description": "One monitor of the team. A monitor of another team answers 404. Credentials are masked as in the list.",
                "summary": "Get a monitor",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MonitorResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read"
            },
            "put": {
                "operationId": "monitors.update",
                "description": "Replaces the monitor's settings with the validated body. The same plan limits as on create apply.",
                "summary": "Update a monitor",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateMonitorRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MonitorResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:write"
                        ]
                    }
                ],
                "x-required-ability": "monitors:write"
            },
            "delete": {
                "operationId": "monitors.destroy",
                "summary": "Delete a monitor",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:write"
                        ]
                    }
                ],
                "x-required-ability": "monitors:write",
                "description": "Deletes the monitor and stops its checks."
            }
        },
        "/monitors/{monitor}/pause": {
            "post": {
                "operationId": "v1.monitors.pause",
                "description": "Stops scheduling checks for the monitor until it is resumed. A paused monitor keeps its history.",
                "summary": "Pause a monitor",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MonitorResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:write"
                        ]
                    }
                ],
                "x-required-ability": "monitors:write"
            }
        },
        "/monitors/{monitor}/resume": {
            "post": {
                "operationId": "v1.monitors.resume",
                "description": "Schedules checks for a paused monitor again, starting with the next tick.",
                "summary": "Resume a monitor",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MonitorResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:write"
                        ]
                    }
                ],
                "x-required-ability": "monitors:write"
            }
        },
        "/monitors/{monitor}/test": {
            "post": {
                "operationId": "v1.monitors.test",
                "description": "Fires an immediate one-off probe across the monitor's regions, outside its schedule.",
                "summary": "Run a check now",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": ""
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:write"
                        ]
                    }
                ],
                "x-required-ability": "monitors:write"
            }
        },
        "/monitors/{monitor}/checks": {
            "get": {
                "operationId": "v1.monitors.checks.index",
                "description": "The monitor's recent check readings, newest first, cursor-paginated.",
                "summary": "List a monitor's checks",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Page size, clamped to 1 and the endpoint's maximum (200 on most lists).",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "The `meta.next_cursor` of the previous page.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A page of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MonitorCheckResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the next set of items."
                                                },
                                                "prev_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the previous set of items."
                                                }
                                            },
                                            "required": [
                                                "path",
                                                "per_page",
                                                "next_cursor",
                                                "prev_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read"
            }
        },
        "/monitors/{monitor}/checks/{check}": {
            "get": {
                "operationId": "v1.monitors.checks.show",
                "summary": "Get one check",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "check",
                        "in": "path",
                        "required": true,
                        "description": "The check ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/MonitorCheckResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read",
                "description": "A single check reading of the monitor."
            }
        },
        "/monitors/{monitor}/content": {
            "get": {
                "operationId": "v1.monitors.content.index",
                "description": "The archived versions of the monitor's response body, most recently seen first, page-numbered.",
                "summary": "List archived content versions",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A page of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MonitorContentVersionResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "last_page",
                                                "links",
                                                "path",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read"
            }
        },
        "/monitors/{monitor}/content/candidates": {
            "get": {
                "operationId": "v1.monitors.content.candidates",
                "description": "The values found in the monitor's newest archived body that a metric could extract, with the rule that extracts each.",
                "summary": "List metric candidates",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "has_sample": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "has_sample"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0
                                                },
                                                "has_sample": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "has_sample"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read"
            }
        },
        "/monitors/{monitor}/content/{contentHash}": {
            "get": {
                "operationId": "v1.monitors.content.show",
                "summary": "Download an archived version",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "contentHash",
                        "in": "path",
                        "required": true,
                        "description": "The sha256 content hash of the archived version: 64 lowercase hex characters.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/plain; charset=utf-8": {
                                "schema": {
                                    "type": [
                                        "string",
                                        "object"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Content-Disposition": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-Content-Type-Options": {
                                "schema": {
                                    "type": "string",
                                    "const": "nosniff"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read",
                "description": "Downloads one archived body, addressed by its sha256 content hash, with its original bytes."
            }
        },
        "/monitors/{monitor}/uptime": {
            "get": {
                "operationId": "v1.monitors.uptime",
                "summary": "Get uptime over a range",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read",
                "description": "Totals of up, down and degraded readings and the uptime ratio for the requested range."
            }
        },
        "/monitors/{monitor}/response-times": {
            "get": {
                "operationId": "v1.monitors.response-times",
                "summary": "Get response times over a range",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "description": "The response-time buckets of the requested range, for charting.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "null"
                                                    },
                                                    "region": {
                                                        "type": "null"
                                                    },
                                                    "status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "down",
                                                            "degraded",
                                                            "maintenance",
                                                            "up"
                                                        ]
                                                    },
                                                    "status_code": {
                                                        "type": "null"
                                                    },
                                                    "response_ms": {
                                                        "type": "integer"
                                                    },
                                                    "timing_dns_ms": {
                                                        "type": "null"
                                                    },
                                                    "timing_connect_ms": {
                                                        "type": "null"
                                                    },
                                                    "timing_tls_ms": {
                                                        "type": "null"
                                                    },
                                                    "timing_ttfb_ms": {
                                                        "type": "null"
                                                    },
                                                    "timing_download_ms": {
                                                        "type": "null"
                                                    },
                                                    "checked_at": {
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "error_message": {
                                                        "type": "null"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "region",
                                                    "status",
                                                    "status_code",
                                                    "response_ms",
                                                    "timing_dns_ms",
                                                    "timing_connect_ms",
                                                    "timing_tls_ms",
                                                    "timing_ttfb_ms",
                                                    "timing_download_ms",
                                                    "checked_at",
                                                    "error_message"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read",
                "description": "Response times bucketed over the requested range, for charting."
            }
        },
        "/monitors/{monitor}/anomalies": {
            "get": {
                "operationId": "v1.monitors.anomalies",
                "description": "The monitor's anomaly episodes inside the requested range, newest first.",
                "summary": "List anomalies",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read"
            }
        },
        "/monitors/{monitor}/status-history": {
            "get": {
                "operationId": "v1.monitors.status-history",
                "summary": "Get the 90-day status history",
                "tags": [
                    "Monitors"
                ],
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "checked_at": {
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "down",
                                                            "degraded",
                                                            "maintenance",
                                                            "up"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "checked_at",
                                                    "status"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "monitors:read"
                        ]
                    }
                ],
                "x-required-ability": "monitors:read",
                "description": "Status-only daily buckets for the last 90 days. Takes no range."
            }
        },
        "/on-call/current": {
            "get": {
                "operationId": "v1.on-call.current",
                "description": "Resolves who is on call right now.",
                "summary": "Get who is on call",
                "tags": [
                    "On-call"
                ],
                "parameters": [
                    {
                        "name": "schedule_id",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "object",
                                                    "properties": {
                                                        "schedule_id": {
                                                            "type": "string"
                                                        },
                                                        "rotation_id": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "description": "Which ring row is on duty, so the client can mark exactly one. The\nperson is not enough: one responder can hold two slots, and the\non-call screen matched its badge on the user, so both of that\nperson's rows claimed to be the current shift. Null under an\noverride, deliberately, because the ring is not holding the pager\nthen."
                                                        },
                                                        "user": {
                                                            "type": [
                                                                "object",
                                                                "null"
                                                            ],
                                                            "properties": {
                                                                "id": {
                                                                    "type": "string"
                                                                },
                                                                "name": {
                                                                    "type": "string"
                                                                },
                                                                "email": {
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ]
                                                                }
                                                            },
                                                            "required": [
                                                                "id",
                                                                "name",
                                                                "email"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "schedule_id",
                                                        "rotation_id",
                                                        "user"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:read"
                        ]
                    }
                ],
                "x-required-ability": "oncall:read"
            }
        },
        "/on-call/schedules": {
            "get": {
                "operationId": "v1.on-call.schedules.index",
                "description": "The team's schedules, newest first, page-numbered.",
                "summary": "List on-call schedules",
                "tags": [
                    "On-call"
                ],
                "responses": {
                    "200": {
                        "description": "A page of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "allOf": [
                                                    {
                                                        "$ref": "#/components/schemas/OnCallScheduleResource"
                                                    },
                                                    {
                                                        "type": "object",
                                                        "required": [
                                                            "rotations",
                                                            "overrides"
                                                        ]
                                                    }
                                                ]
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "last_page",
                                                "links",
                                                "path",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:read"
                        ]
                    }
                ],
                "x-required-ability": "oncall:read"
            },
            "post": {
                "operationId": "v1.on-call.schedules.store",
                "summary": "Create an on-call schedule",
                "tags": [
                    "On-call"
                ],
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreOnCallScheduleRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/OnCallScheduleResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Creates a schedule."
            }
        },
        "/on-call/schedules/{schedule}": {
            "get": {
                "operationId": "v1.on-call.schedules.show",
                "summary": "Get an on-call schedule",
                "tags": [
                    "On-call"
                ],
                "parameters": [
                    {
                        "name": "schedule",
                        "in": "path",
                        "required": true,
                        "description": "The schedule ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/OnCallScheduleResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "rotations",
                                                        "overrides"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:read"
                        ]
                    }
                ],
                "x-required-ability": "oncall:read",
                "description": "One schedule with its rotation and overrides."
            },
            "put": {
                "operationId": "v1.on-call.schedules.update",
                "summary": "Update an on-call schedule",
                "tags": [
                    "On-call"
                ],
                "parameters": [
                    {
                        "name": "schedule",
                        "in": "path",
                        "required": true,
                        "description": "The schedule ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateOnCallScheduleRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/OnCallScheduleResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Updates the schedule."
            },
            "delete": {
                "operationId": "v1.on-call.schedules.destroy",
                "summary": "Delete an on-call schedule",
                "tags": [
                    "On-call"
                ],
                "parameters": [
                    {
                        "name": "schedule",
                        "in": "path",
                        "required": true,
                        "description": "The schedule ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Deletes the schedule."
            }
        },
        "/on-call/schedules/{schedule}/rotations": {
            "post": {
                "operationId": "v1.on-call.schedules.rotations.store",
                "summary": "Add a rotation slot",
                "tags": [
                    "On-call"
                ],
                "parameters": [
                    {
                        "name": "schedule",
                        "in": "path",
                        "required": true,
                        "description": "The schedule ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreOnCallRotationRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/OnCallScheduleResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "rotations",
                                                        "overrides"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Adds a responder slot to the schedule's rotation."
            }
        },
        "/on-call/schedules/{schedule}/rotations/reorder": {
            "patch": {
                "operationId": "v1.on-call.schedules.rotations.reorder",
                "description": "Sets `position` for the schedule's rotation slots.",
                "summary": "Reorder the rotation",
                "tags": [
                    "On-call"
                ],
                "parameters": [
                    {
                        "name": "schedule",
                        "in": "path",
                        "required": true,
                        "description": "The schedule ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "order": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "position": {
                                                    "type": "integer",
                                                    "minimum": 0.0
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "position"
                                            ]
                                        },
                                        "minItems": 1.0
                                    }
                                },
                                "required": [
                                    "order"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write"
            }
        },
        "/on-call/schedules/{schedule}/rotations/{rotation}": {
            "delete": {
                "operationId": "v1.on-call.schedules.rotations.destroy",
                "summary": "Remove a rotation slot",
                "tags": [
                    "On-call"
                ],
                "parameters": [
                    {
                        "name": "schedule",
                        "in": "path",
                        "required": true,
                        "description": "The schedule ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "rotation",
                        "in": "path",
                        "required": true,
                        "description": "The rotation ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Removes a responder slot from the rotation."
            }
        },
        "/on-call/schedules/{schedule}/overrides": {
            "post": {
                "operationId": "v1.on-call.schedules.overrides.store",
                "summary": "Add an override",
                "tags": [
                    "On-call"
                ],
                "parameters": [
                    {
                        "name": "schedule",
                        "in": "path",
                        "required": true,
                        "description": "The schedule ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreOnCallOverrideRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/OnCallScheduleResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "rotations",
                                                        "overrides"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Adds a temporary responder override to the schedule."
            }
        },
        "/on-call/schedules/{schedule}/overrides/{override}": {
            "delete": {
                "operationId": "v1.on-call.schedules.overrides.destroy",
                "summary": "Remove an override",
                "tags": [
                    "On-call"
                ],
                "parameters": [
                    {
                        "name": "schedule",
                        "in": "path",
                        "required": true,
                        "description": "The schedule ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "override",
                        "in": "path",
                        "required": true,
                        "description": "The override ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "oncall:write"
                        ]
                    }
                ],
                "x-required-ability": "oncall:write",
                "description": "Removes a temporary override."
            }
        },
        "/status-pages": {
            "get": {
                "operationId": "status-pages.index",
                "summary": "List status pages",
                "tags": [
                    "Status pages"
                ],
                "responses": {
                    "200": {
                        "description": "A page of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/StatusPageResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the next set of items."
                                                },
                                                "prev_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "The \"cursor\" that points to the previous set of items."
                                                }
                                            },
                                            "required": [
                                                "path",
                                                "per_page",
                                                "next_cursor",
                                                "prev_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:read"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:read",
                "description": "The team's status pages, newest first, cursor-paginated.",
                "parameters": [
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Page size, clamped to 1 and the endpoint's maximum (200 on most lists).",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "The `meta.next_cursor` of the previous page.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            },
            "post": {
                "operationId": "status-pages.store",
                "description": "Creates a public status page. The plan caps the count; an unclaimed anonymous workspace can create none.",
                "summary": "Create a status page",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreStatusPageRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/StatusPageResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write"
            }
        },
        "/status-pages/{statusPage}": {
            "get": {
                "operationId": "status-pages.show",
                "summary": "Get a status page",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/StatusPageResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "monitors"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:read"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:read",
                "description": "One status page with its components (attached monitors)."
            },
            "put": {
                "operationId": "status-pages.update",
                "summary": "Update a status page",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateStatusPageRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/StatusPageResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "monitors"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write",
                "description": "Updates the page's settings."
            },
            "delete": {
                "operationId": "status-pages.destroy",
                "summary": "Delete a status page",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write",
                "description": "Deletes the page."
            }
        },
        "/status-pages/{statusPage}/monitors/reorder": {
            "patch": {
                "operationId": "v1.status-pages.monitors.reorder",
                "description": "Sets `display_order` for the monitors attached to the page.",
                "summary": "Reorder a page's monitors",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "order": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "display_order": {
                                                    "type": "integer",
                                                    "minimum": 0.0
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "display_order"
                                            ]
                                        },
                                        "minItems": 1.0
                                    }
                                },
                                "required": [
                                    "order"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write"
            }
        },
        "/status-pages/{statusPage}/monitors": {
            "post": {
                "operationId": "v1.status-pages.monitors.attach",
                "summary": "Attach a monitor to a page",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "monitor_id": {
                                        "type": "string"
                                    },
                                    "display_order": {
                                        "type": "integer",
                                        "minimum": 0.0
                                    },
                                    "custom_label": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255.0
                                    }
                                },
                                "required": [
                                    "monitor_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/StatusPageResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "monitors"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write",
                "description": "Adds one of the team's monitors to the page, or updates its display fields when it is already attached."
            }
        },
        "/status-pages/{statusPage}/monitors/{monitor}": {
            "delete": {
                "operationId": "v1.status-pages.monitors.detach",
                "summary": "Detach a monitor from a page",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "description": "The monitor ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write",
                "description": "Removes a monitor from the page."
            }
        },
        "/status-pages/{statusPage}/logo": {
            "post": {
                "operationId": "v1.status-pages.logo.store",
                "summary": "Upload a page logo",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateStatusPageLogoRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/StatusPageResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "monitors"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write",
                "description": "Replaces the page's logo with the uploaded image (multipart)."
            },
            "delete": {
                "operationId": "v1.status-pages.logo.destroy",
                "summary": "Remove the page logo",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/StatusPageResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "monitors"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write",
                "description": "Removes the logo; the page falls back to its initials."
            }
        },
        "/status-pages/{statusPage}/dark-logo": {
            "post": {
                "operationId": "v1.status-pages.dark-logo.store",
                "description": "Replaces the page's dark-mode logo with the uploaded image (multipart).",
                "summary": "Upload a dark-mode logo",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateStatusPageLogoRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/StatusPageResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "monitors"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write"
            },
            "delete": {
                "operationId": "v1.status-pages.dark-logo.destroy",
                "summary": "Remove the dark-mode logo",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/StatusPageResource"
                                                },
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "monitors"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write",
                "description": "Removes the dark-mode logo and leaves the light one."
            }
        },
        "/status-pages/{statusPage}/preview": {
            "post": {
                "operationId": "v1.status-pages.preview",
                "description": "Queues a new render of the page's preview image.",
                "summary": "Re-render the page preview",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": ""
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write"
            }
        },
        "/status-pages/{statusPage}/subscribers": {
            "get": {
                "operationId": "v1.status-pages.subscribers.index",
                "summary": "List page subscribers",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A list of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/StatusPageSubscriberResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:read"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:read",
                "description": "The page's subscribers, newest first."
            },
            "post": {
                "operationId": "v1.status-pages.subscribers.store",
                "description": "Adds a subscriber by email. They receive a confirmation mail and get updates only after confirming.",
                "summary": "Add a page subscriber",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 254.0
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/StatusPageSubscriberResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/StatusPageSubscriberResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write"
            }
        },
        "/status-pages/{statusPage}/subscribers/{subscriber}": {
            "delete": {
                "operationId": "v1.status-pages.subscribers.destroy",
                "description": "Removes a subscriber from the page.",
                "summary": "Remove a page subscriber",
                "tags": [
                    "Status pages"
                ],
                "parameters": [
                    {
                        "name": "statusPage",
                        "in": "path",
                        "required": true,
                        "description": "The status page ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "subscriber",
                        "in": "path",
                        "required": true,
                        "description": "The subscriber ID",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "status_pages:write"
                        ]
                    }
                ],
                "x-required-ability": "status_pages:write"
            }
        },
        "/team/members": {
            "get": {
                "operationId": "v1.team.members.index",
                "tags": [
                    "Team"
                ],
                "responses": {
                    "200": {
                        "description": "A list of results.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TeamMemberResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "team:read"
                        ]
                    }
                ],
                "x-required-ability": "team:read",
                "summary": "List team members",
                "description": "The members of the key's team with their roles."
            }
        },
        "/team/members/{user}": {
            "put": {
                "operationId": "v1.team.members.update",
                "tags": [
                    "Team"
                ],
                "parameters": [
                    {
                        "name": "user",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateTeamMemberApiRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/TeamMemberResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "team:manage"
                        ]
                    }
                ],
                "x-required-ability": "team:manage",
                "summary": "Change a member's role",
                "description": "Changes a member's role. A key can never grant `admin`."
            },
            "delete": {
                "operationId": "v1.team.members.destroy",
                "tags": [
                    "Team"
                ],
                "parameters": [
                    {
                        "name": "user",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "team:manage"
                        ]
                    }
                ],
                "x-required-ability": "team:manage",
                "summary": "Remove a team member",
                "description": "Removes a member from the team."
            }
        },
        "/team/invitations": {
            "get": {
                "operationId": "v1.team.invitations.index",
                "tags": [
                    "Team"
                ],
                "responses": {
                    "200": {
                        "description": "Array of items",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "team:read"
                        ]
                    }
                ],
                "x-required-ability": "team:read",
                "summary": "List pending invitations",
                "description": "The team's pending invitations."
            },
            "post": {
                "operationId": "v1.team.invitations.store",
                "tags": [
                    "Team"
                ],
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Any unique string per logical request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/InviteTeamMemberApiRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/JsonResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "team:manage"
                        ]
                    }
                ],
                "x-required-ability": "team:manage",
                "summary": "Invite a member",
                "description": "Invites an email address to the team. A key can never invite with role `admin`."
            }
        },
        "/team/invitations/{invitation}": {
            "delete": {
                "operationId": "v1.team.invitations.destroy",
                "tags": [
                    "Team"
                ],
                "parameters": [
                    {
                        "name": "invitation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/ApiKeyForbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                },
                "security": [
                    {
                        "bearer": [
                            "team:manage"
                        ]
                    }
                ],
                "x-required-ability": "team:manage",
                "summary": "Cancel an invitation",
                "description": "Cancels a pending invitation."
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearer": {
                "type": "http",
                "description": "A team API key: `Authorization: Bearer upz_...`.",
                "scheme": "bearer",
                "bearerFormat": "upz_..."
            }
        },
        "schemas": {
            "AiMode": {
                "type": "string",
                "description": "How much authority the AI has for a given monitor or workspace.",
                "enum": [
                    "off",
                    "suggest",
                    "auto"
                ],
                "title": "AiMode"
            },
            "AnalyzeMonitorRequest": {
                "type": "object",
                "properties": {
                    "url": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048.0
                    },
                    "region": {
                        "$ref": "#/components/schemas/MonitorRegion"
                    },
                    "intent": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "What the operator wants from this monitor, in their own words.",
                        "maxLength": 500.0
                    },
                    "auth_config": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "properties": {
                            "type": {
                                "$ref": "#/components/schemas/HttpAuthType"
                            },
                            "username": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            },
                            "password": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            },
                            "token": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 2048.0
                            },
                            "key": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 2048.0
                            },
                            "header": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            }
                        }
                    }
                },
                "required": [
                    "url"
                ],
                "title": "AnalyzeMonitorRequest"
            },
            "AnomalySensitivity": {
                "type": "string",
                "description": "How far from its baseline a metric has to move before the sweep reports it.",
                "enum": [
                    "low",
                    "medium",
                    "high"
                ],
                "title": "AnomalySensitivity"
            },
            "AssignIncidentRequest": {
                "type": "object",
                "properties": {
                    "assignee_id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "",
                            null
                        ]
                    }
                },
                "title": "AssignIncidentRequest"
            },
            "DescriptionSource": {
                "type": "string",
                "description": "Who wrote a monitor's description, which is the trust label it carries into AI context.",
                "enum": [
                    "ai_draft",
                    "user"
                ],
                "title": "DescriptionSource"
            },
            "EscalationPolicyResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "team_id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "repeat_last_step": {
                        "type": "boolean",
                        "description": "Emitted on every read, list included: the editor seeds both switches from the roster it already holds, so gating these behind the detail response would make an edit form open with the flags off and then silently save them off."
                    },
                    "is_default": {
                        "type": "boolean"
                    },
                    "steps": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "team_id",
                    "name",
                    "repeat_last_step",
                    "is_default",
                    "created_at",
                    "updated_at"
                ],
                "title": "EscalationPolicyResource"
            },
            "EscalationTargetType": {
                "type": "string",
                "description": "Who an escalation step pages: the on-call responder (`on_call`) or a user (`user`).",
                "enum": [
                    "on_call",
                    "user"
                ],
                "title": "EscalationTargetType"
            },
            "HttpAuthType": {
                "type": "string",
                "description": "Authentication scheme applied to outbound monitor check requests.",
                "enum": [
                    "none",
                    "basic",
                    "bearer",
                    "api_key"
                ],
                "title": "HttpAuthType"
            },
            "HttpMethod": {
                "type": "string",
                "description": "HTTP verb used when issuing a monitor check request.",
                "enum": [
                    "get",
                    "post",
                    "head"
                ],
                "title": "HttpMethod"
            },
            "IncidentImpact": {
                "type": "string",
                "description": "The customer-facing impact of an incident, derived from its severity.",
                "enum": [
                    "none",
                    "minor",
                    "major",
                    "critical"
                ],
                "title": "IncidentImpact"
            },
            "IncidentNoteRequest": {
                "type": "object",
                "properties": {
                    "message": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 2000.0
                    }
                },
                "title": "IncidentNoteRequest"
            },
            "IncidentResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "team_id": {
                        "type": "string"
                    },
                    "title": {
                        "type": "string"
                    },
                    "title_key": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The translation key of the incident title, sent beside `title`."
                    },
                    "title_params": {
                        "type": "array",
                        "items": {}
                    },
                    "lifecycle": {
                        "type": "string",
                        "enum": [
                            "detected",
                            "investigating",
                            "identified",
                            "monitoring",
                            "mitigated",
                            "resolved"
                        ]
                    },
                    "severity": {
                        "type": "string",
                        "enum": [
                            "critical",
                            "warn",
                            "info"
                        ]
                    },
                    "impact": {
                        "type": "string",
                        "enum": [
                            "none",
                            "minor",
                            "major",
                            "critical"
                        ]
                    },
                    "signal_source": {
                        "type": "string",
                        "enum": [
                            "user_threshold",
                            "ai_anomaly",
                            "manual"
                        ]
                    },
                    "ai_owned": {
                        "type": "boolean"
                    },
                    "primary_monitor_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "trigger_metric_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "started_at": {
                        "type": "string"
                    },
                    "resolved_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "postmortem_body": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "postmortem_published_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "assignee": {
                        "type": "object",
                        "description": "The responder the incident is assigned to, or null when it is unassigned.",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "id",
                            "name"
                        ]
                    },
                    "ai_investigation": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "The AI investigation report for the incident, or null when there is none to show.",
                        "properties": {
                            "verdict": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "summary": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "evidence_for": {
                                "anyOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 0,
                                        "maxItems": 0
                                    }
                                ]
                            },
                            "evidence_against": {
                                "anyOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 0,
                                        "maxItems": 0
                                    }
                                ]
                            },
                            "used_confirmation": {
                                "type": "boolean"
                            },
                            "confirmation_region": {
                                "type": "string"
                            },
                            "model": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "verdict",
                            "summary",
                            "evidence_for",
                            "evidence_against",
                            "used_confirmation",
                            "confirmation_region",
                            "model"
                        ]
                    },
                    "monitors": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "monitor_id": {
                                    "type": "string"
                                },
                                "name": {
                                    "type": "string"
                                },
                                "component_status_at_start": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "component_status_current": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "description": "Read from the monitor, not the pivot.",
                                    "enum": [
                                        "up",
                                        "down",
                                        "degraded",
                                        "paused",
                                        "maintenance",
                                        null
                                    ]
                                }
                            },
                            "required": [
                                "monitor_id",
                                "name",
                                "component_status_at_start",
                                "component_status_current"
                            ]
                        }
                    },
                    "updates": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/IncidentUpdateResource"
                        }
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "team_id",
                    "title",
                    "title_key",
                    "title_params",
                    "lifecycle",
                    "severity",
                    "impact",
                    "signal_source",
                    "ai_owned",
                    "primary_monitor_id",
                    "trigger_metric_key",
                    "started_at",
                    "resolved_at",
                    "postmortem_body",
                    "postmortem_published_at",
                    "created_at",
                    "updated_at"
                ],
                "title": "IncidentResource"
            },
            "IncidentSeverity": {
                "type": "string",
                "description": "Severity tier assigned to an incident for routing and tone styling.",
                "enum": [
                    "critical",
                    "warn",
                    "info"
                ],
                "title": "IncidentSeverity"
            },
            "IncidentStatus": {
                "type": "string",
                "description": "Lifecycle state of an incident.",
                "enum": [
                    "detected",
                    "investigating",
                    "identified",
                    "monitoring",
                    "mitigated",
                    "resolved"
                ],
                "title": "IncidentStatus"
            },
            "IncidentUpdateResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "incident_id": {
                        "type": "string"
                    },
                    "actor": {
                        "type": "string"
                    },
                    "author": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "detected",
                            "investigating",
                            "identified",
                            "monitoring",
                            "mitigated",
                            "resolved"
                        ]
                    },
                    "message": {
                        "type": "string"
                    },
                    "is_public": {
                        "type": "boolean"
                    },
                    "autonomous": {
                        "type": "boolean"
                    },
                    "display_at": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "incident_id",
                    "actor",
                    "author",
                    "status",
                    "message",
                    "is_public",
                    "autonomous",
                    "display_at",
                    "created_at"
                ],
                "title": "IncidentUpdateResource"
            },
            "InviteTeamMemberApiRequest": {
                "type": "object",
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email",
                        "maxLength": 255.0
                    },
                    "role": {
                        "type": "string",
                        "enum": [
                            "admin",
                            "editor",
                            "member"
                        ]
                    }
                },
                "required": [
                    "email",
                    "role"
                ],
                "title": "InviteTeamMemberApiRequest"
            },
            "JsonResource": {
                "type": "string",
                "title": "JsonResource"
            },
            "LogoAlignment": {
                "type": "string",
                "description": "Where the brand logo sits in a public status page's header.",
                "enum": [
                    "left",
                    "center"
                ],
                "title": "LogoAlignment"
            },
            "MetricAnomalyDirection": {
                "type": "string",
                "description": "Which side of a baseline counts as an anomaly: `high_bad`, `low_bad` or `both`.",
                "enum": [
                    "high_bad",
                    "low_bad",
                    "both"
                ],
                "title": "MetricAnomalyDirection"
            },
            "MetricBand": {
                "type": "string",
                "description": "Threshold band of a numeric metric at the moment it was recorded.",
                "enum": [
                    "ok",
                    "warn",
                    "critical"
                ],
                "title": "MetricBand"
            },
            "MetricKind": {
                "type": "string",
                "description": "What a numeric metric's readings measure, which decides how the sweep reads them.",
                "enum": [
                    "gauge",
                    "counter",
                    "count_per_period"
                ],
                "title": "MetricKind"
            },
            "MetricSource": {
                "type": "string",
                "description": "Extraction strategy used to pull a metric value out of a check response.",
                "enum": [
                    "json_path",
                    "regex",
                    "xpath",
                    "header",
                    "http_status"
                ],
                "title": "MetricSource"
            },
            "MetricType": {
                "type": "string",
                "description": "Classification of a custom monitor metric.",
                "enum": [
                    "numeric",
                    "status",
                    "string"
                ],
                "title": "MetricType"
            },
            "MetricUnit": {
                "type": "string",
                "description": "Display unit paired with a numeric metric.",
                "enum": [
                    "bytes_auto",
                    "byte",
                    "kilobyte",
                    "megabyte",
                    "gigabyte",
                    "terabyte",
                    "duration_auto",
                    "millisecond",
                    "second",
                    "minute",
                    "hour",
                    "percent",
                    "ratio",
                    "count",
                    "count_short",
                    "custom"
                ],
                "title": "MetricUnit"
            },
            "MonitorCheckResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "region": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "up",
                            "down",
                            "degraded",
                            "paused",
                            "maintenance"
                        ]
                    },
                    "status_code": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "response_ms": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "timing_dns_ms": {
                        "type": "integer"
                    },
                    "timing_connect_ms": {
                        "type": "integer"
                    },
                    "timing_tls_ms": {
                        "type": "integer"
                    },
                    "timing_ttfb_ms": {
                        "type": "integer"
                    },
                    "timing_download_ms": {
                        "type": "integer"
                    },
                    "checked_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "error_message": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "region",
                    "status",
                    "status_code",
                    "response_ms",
                    "timing_dns_ms",
                    "timing_connect_ms",
                    "timing_tls_ms",
                    "timing_ttfb_ms",
                    "timing_download_ms",
                    "checked_at",
                    "error_message"
                ],
                "title": "MonitorCheckResource"
            },
            "MonitorContentVersionResource": {
                "type": "object",
                "properties": {
                    "content_hash": {
                        "type": "string"
                    },
                    "byte_size": {
                        "type": "integer",
                        "description": "The RAW decoded length, not the size of the gzipped blob on disk."
                    },
                    "content_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "truncated": {
                        "type": "boolean"
                    },
                    "first_seen_at": {
                        "type": "string"
                    },
                    "last_seen_at": {
                        "type": "string"
                    }
                },
                "required": [
                    "content_hash",
                    "byte_size",
                    "content_type",
                    "truncated",
                    "first_seen_at",
                    "last_seen_at"
                ],
                "title": "MonitorContentVersionResource"
            },
            "MonitorMetricResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "monitor_id": {
                        "type": "string"
                    },
                    "group_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "label": {
                        "type": "string"
                    },
                    "key": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "numeric",
                            "status",
                            "string"
                        ]
                    },
                    "source": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "json_path",
                            "regex",
                            "xpath",
                            "header",
                            "http_status",
                            null
                        ]
                    },
                    "extraction_path": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "unit": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "bytes_auto",
                            "byte",
                            "kilobyte",
                            "megabyte",
                            "gigabyte",
                            "terabyte",
                            "duration_auto",
                            "millisecond",
                            "second",
                            "minute",
                            "hour",
                            "percent",
                            "ratio",
                            "count",
                            "count_short",
                            "custom",
                            null
                        ]
                    },
                    "threshold_direction": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "high_bad",
                            "low_bad",
                            null
                        ]
                    },
                    "warn_bound": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "critical_bound": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "ok_values": {
                        "type": "array",
                        "description": "The string values that band as ok for a string metric.",
                        "items": {}
                    },
                    "warn_values": {
                        "type": "array",
                        "items": {}
                    },
                    "critical_values": {
                        "type": "array",
                        "items": {}
                    },
                    "unmatched_band": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "ok",
                            "warn",
                            "critical",
                            null
                        ]
                    },
                    "anomaly_enabled": {
                        "type": "boolean"
                    },
                    "anomaly_direction": {
                        "type": "string",
                        "enum": [
                            "high_bad",
                            "low_bad",
                            "both"
                        ]
                    },
                    "anomaly_kind": {
                        "type": "string",
                        "enum": [
                            "gauge",
                            "counter",
                            "count_per_period"
                        ]
                    },
                    "anomaly_sensitivity": {
                        "type": "string",
                        "enum": [
                            "low",
                            "medium",
                            "high"
                        ]
                    },
                    "display_order": {
                        "type": "integer"
                    },
                    "latest": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "properties": {
                            "recorded_at": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "numeric_value": {
                                "type": [
                                    "number",
                                    "null"
                                ]
                            },
                            "string_value": {
                                "type": "string"
                            },
                            "status_value": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "band": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            }
                        },
                        "required": [
                            "recorded_at",
                            "numeric_value",
                            "string_value",
                            "status_value",
                            "band"
                        ]
                    }
                },
                "required": [
                    "id",
                    "monitor_id",
                    "group_name",
                    "label",
                    "key",
                    "type",
                    "source",
                    "extraction_path",
                    "unit",
                    "threshold_direction",
                    "warn_bound",
                    "critical_bound",
                    "ok_values",
                    "warn_values",
                    "critical_values",
                    "unmatched_band",
                    "anomaly_enabled",
                    "anomaly_direction",
                    "anomaly_kind",
                    "anomaly_sensitivity",
                    "display_order"
                ],
                "title": "MonitorMetricResource"
            },
            "MonitorMetricValueResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "recorded_at": {
                        "type": "string"
                    },
                    "numeric_value": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "string_value": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status_value": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "up",
                            "down",
                            "degraded",
                            "paused",
                            "maintenance",
                            null
                        ]
                    },
                    "band": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "ok",
                            "warn",
                            "critical",
                            null
                        ]
                    }
                },
                "required": [
                    "id",
                    "recorded_at",
                    "numeric_value",
                    "string_value",
                    "status_value",
                    "band"
                ],
                "title": "MonitorMetricValueResource"
            },
            "MonitorRegion": {
                "type": "string",
                "description": "A region a check is probed from.",
                "enum": [
                    "us-east",
                    "us-west",
                    "eu-west",
                    "eu-central",
                    "ap"
                ],
                "title": "MonitorRegion"
            },
            "MonitorResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "team_id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "type": {
                        "type": "string",
                        "const": "http"
                    },
                    "method": {
                        "type": "string",
                        "enum": [
                            "get",
                            "post",
                            "head"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "paused_by_plan": {
                        "type": "boolean",
                        "description": "Why a paused monitor is paused: true when the plan stopped it, so the client offers an upgrade; false for a pause the customer chose."
                    },
                    "paused_for_downtime": {
                        "type": "boolean",
                        "description": "True when a month of nothing but `down` readings paused a Free monitor."
                    },
                    "last_status": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "up",
                            "down",
                            "degraded",
                            "paused",
                            "maintenance",
                            null
                        ]
                    },
                    "check_interval_sec": {
                        "type": "integer"
                    },
                    "effective_check_interval_sec": {
                        "type": "integer",
                        "description": "What the loop actually spends, which is the stored value clamped up to the plan's floor."
                    },
                    "timeout_sec": {
                        "type": "integer"
                    },
                    "regions": {
                        "type": "array",
                        "items": {}
                    },
                    "expected_status_code": {
                        "type": "integer"
                    },
                    "request_headers": {
                        "type": "array",
                        "description": "Both emitted so the edit form can prefill what the operator configured.",
                        "items": {}
                    },
                    "request_body": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "ai_mode": {
                        "$ref": "#/components/schemas/AiMode"
                    },
                    "effective_ai_mode": {
                        "description": "What the AI actually does for this monitor: Auto below Pro runs as Suggest.",
                        "$ref": "#/components/schemas/AiMode"
                    },
                    "ai_auto_updates": {
                        "type": "boolean",
                        "description": "Read back by the monitor form's own switch."
                    },
                    "auth_config": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {}
                    },
                    "slo_target": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "escalation_policy_id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The pinned paging ladder, or null to fall back to the team default."
                    },
                    "uptime_24h": {
                        "type": "string",
                        "description": "Measured uptime over the trailing 24h, attached by the show action only (null in list/edit responses and while a monitor has no checks yet, which the client renders as \"no data\")."
                    },
                    "slo_down_minutes_7d": {
                        "type": "string"
                    },
                    "slo_observed_minutes_7d": {
                        "type": "string"
                    },
                    "slo_gap_minutes_7d": {
                        "type": "string"
                    },
                    "slo_measured_minutes_7d": {
                        "type": "string"
                    },
                    "slo_down_minutes_30d": {
                        "type": "string"
                    },
                    "slo_observed_minutes_30d": {
                        "type": "string"
                    },
                    "slo_gap_minutes_30d": {
                        "type": "string"
                    },
                    "slo_measured_minutes_30d": {
                        "type": "string"
                    },
                    "tags": {
                        "type": "array",
                        "items": {}
                    },
                    "show_on_status_page": {
                        "type": "boolean"
                    },
                    "only_show_if_degraded": {
                        "type": "boolean"
                    },
                    "follow_redirects": {
                        "type": "boolean"
                    },
                    "alert_on_down": {
                        "type": "boolean"
                    },
                    "alert_on_recover": {
                        "type": "boolean"
                    },
                    "ssl_tracking": {
                        "type": "boolean"
                    },
                    "anomaly_detection": {
                        "type": "boolean"
                    },
                    "response_anomaly_sensitivity": {
                        "type": "string",
                        "enum": [
                            "low",
                            "medium",
                            "high"
                        ]
                    },
                    "ssl_expires_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "ssl_last_checked_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "ssl_last_error": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "ssl_alert_threshold_days": {
                        "type": "integer"
                    },
                    "is_group": {
                        "type": "boolean"
                    },
                    "parent_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "last_checked_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "last_response_ms": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "last_probe_error": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Set when the EDGE refused to run a probe, which is a configuration problem on this monitor rather than an outage of its target."
                    },
                    "last_probe_error_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "next_check_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "consecutive_fails": {
                        "type": "integer"
                    },
                    "incident_threshold": {
                        "type": "integer"
                    },
                    "assertion_rules": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "description": "Null for both means off: no rules asserted, no degraded threshold.",
                        "items": {}
                    },
                    "degraded_after_ms": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "maintenance_tolerance_sec": {
                        "type": "integer"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description_source": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "ai_draft",
                            "user",
                            null
                        ]
                    },
                    "site_kind": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "ecommerce",
                            "saas",
                            "api",
                            "content",
                            "corporate",
                            "other",
                            null
                        ]
                    },
                    "intent": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "team_id",
                    "name",
                    "url",
                    "type",
                    "method",
                    "status",
                    "paused_by_plan",
                    "paused_for_downtime",
                    "last_status",
                    "check_interval_sec",
                    "effective_check_interval_sec",
                    "timeout_sec",
                    "regions",
                    "expected_status_code",
                    "ai_mode",
                    "effective_ai_mode",
                    "ai_auto_updates",
                    "auth_config",
                    "slo_target",
                    "escalation_policy_id",
                    "uptime_24h",
                    "slo_down_minutes_7d",
                    "slo_observed_minutes_7d",
                    "slo_gap_minutes_7d",
                    "slo_measured_minutes_7d",
                    "slo_down_minutes_30d",
                    "slo_observed_minutes_30d",
                    "slo_gap_minutes_30d",
                    "slo_measured_minutes_30d",
                    "tags",
                    "show_on_status_page",
                    "only_show_if_degraded",
                    "follow_redirects",
                    "alert_on_down",
                    "alert_on_recover",
                    "ssl_tracking",
                    "anomaly_detection",
                    "response_anomaly_sensitivity",
                    "ssl_expires_at",
                    "ssl_last_checked_at",
                    "ssl_last_error",
                    "ssl_alert_threshold_days",
                    "is_group",
                    "parent_id",
                    "last_checked_at",
                    "last_response_ms",
                    "last_probe_error",
                    "last_probe_error_at",
                    "next_check_at",
                    "consecutive_fails",
                    "incident_threshold",
                    "assertion_rules",
                    "degraded_after_ms",
                    "maintenance_tolerance_sec",
                    "description",
                    "description_source",
                    "site_kind",
                    "intent",
                    "created_at",
                    "updated_at"
                ],
                "title": "MonitorResource"
            },
            "MonitorType": {
                "type": "string",
                "description": "Supported check protocol for a monitor.",
                "enum": [
                    "http"
                ],
                "title": "MonitorType"
            },
            "NotificationChannelResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "team_id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "channel_type": {
                        "type": "string",
                        "enum": [
                            "slack",
                            "webhook",
                            "pagerduty",
                            "teams"
                        ]
                    },
                    "is_enabled": {
                        "type": "boolean"
                    },
                    "severity": {
                        "type": "string",
                        "enum": [
                            "all",
                            "critical"
                        ]
                    },
                    "credentials": {
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "has_token": {
                                        "type": "boolean"
                                    },
                                    "channel": {}
                                },
                                "required": [
                                    "has_token",
                                    "channel"
                                ]
                            },
                            {
                                "type": "object",
                                "properties": {
                                    "has_url": {
                                        "type": "boolean"
                                    },
                                    "url_host": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "has_secret": {
                                        "type": "boolean"
                                    }
                                },
                                "required": [
                                    "has_url",
                                    "url_host",
                                    "has_secret"
                                ]
                            },
                            {
                                "type": "object",
                                "properties": {
                                    "has_routing_key": {
                                        "type": "boolean"
                                    }
                                },
                                "required": [
                                    "has_routing_key"
                                ]
                            },
                            {
                                "type": "object",
                                "properties": {
                                    "has_url": {
                                        "type": "boolean"
                                    },
                                    "url_host": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "has_url",
                                    "url_host"
                                ]
                            }
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "team_id",
                    "name",
                    "channel_type",
                    "is_enabled",
                    "severity",
                    "credentials",
                    "created_at",
                    "updated_at"
                ],
                "title": "NotificationChannelResource"
            },
            "NotificationChannelSeverity": {
                "type": "string",
                "description": "Which incidents a channel fires for: all of them or only critical ones.",
                "enum": [
                    "all",
                    "critical"
                ],
                "title": "NotificationChannelSeverity"
            },
            "NotificationChannelType": {
                "type": "string",
                "description": "The delivery driver a notification channel sends through.",
                "enum": [
                    "slack",
                    "webhook",
                    "pagerduty",
                    "teams"
                ],
                "title": "NotificationChannelType"
            },
            "OnCallScheduleResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "team_id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "timezone": {
                        "type": "string"
                    },
                    "rotations": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "overrides": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "team_id",
                    "name",
                    "timezone",
                    "created_at",
                    "updated_at"
                ],
                "title": "OnCallScheduleResource"
            },
            "PostIncidentUpdateRequest": {
                "type": "object",
                "properties": {
                    "message": {
                        "type": "string",
                        "maxLength": 2000.0
                    },
                    "is_public": {
                        "type": "boolean"
                    },
                    "status": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/IncidentStatus"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "message"
                ],
                "title": "PostIncidentUpdateRequest"
            },
            "SaveIncidentPostmortemRequest": {
                "type": "object",
                "properties": {
                    "body": {
                        "type": "string",
                        "maxLength": 20000.0
                    },
                    "publish": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "body"
                ],
                "title": "SaveIncidentPostmortemRequest"
            },
            "ScheduledMaintenanceResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "team_id": {
                        "type": "string"
                    },
                    "status_page_id": {
                        "type": "string"
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "suppress_alerts": {
                        "type": "boolean"
                    },
                    "starts_at": {
                        "type": "string"
                    },
                    "ends_at": {
                        "type": "string"
                    },
                    "announced_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "monitors": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "monitor_id": {
                                    "type": "string"
                                },
                                "name": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "monitor_id",
                                "name"
                            ]
                        }
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "team_id",
                    "status_page_id",
                    "title",
                    "description",
                    "suppress_alerts",
                    "starts_at",
                    "ends_at",
                    "announced_at",
                    "created_at",
                    "updated_at"
                ],
                "title": "ScheduledMaintenanceResource"
            },
            "SiteKind": {
                "type": "string",
                "description": "What kind of service a monitor's target is, as the operator (or the create flow's draft) classifies it.",
                "enum": [
                    "ecommerce",
                    "saas",
                    "api",
                    "content",
                    "corporate",
                    "other"
                ],
                "title": "SiteKind"
            },
            "StatusPageResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "team_id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "domain_mode": {
                        "type": "string",
                        "description": "How the page is addressed, as a string: `path` or `subdomain`.",
                        "enum": [
                            "path",
                            "subdomain",
                            "custom"
                        ]
                    },
                    "custom_domain": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "brand_color": {
                        "type": "string"
                    },
                    "logo_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "A signed URL for the logo image."
                    },
                    "dark_logo_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "A signed URL for the dark logo image; null means there is no dark logo."
                    },
                    "logo_text": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "default_theme": {
                        "type": "string",
                        "description": "The theme the page shows by default.",
                        "enum": [
                            "system",
                            "light",
                            "dark"
                        ]
                    },
                    "logo_alignment": {
                        "type": "string",
                        "enum": [
                            "left",
                            "center"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "locale": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The language the public page publishes in, null for the deployment default."
                    },
                    "public_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The URL the page is actually served at, resolved from the route itself."
                    },
                    "is_public": {
                        "type": "boolean"
                    },
                    "subscriptions_enabled": {
                        "type": "boolean"
                    },
                    "monitors": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "preview_image_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The URL of the page preview image."
                    },
                    "preview_rendered_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "preview_render_status": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Null means never rendered.",
                        "enum": [
                            "rendering",
                            "completed",
                            "failed",
                            null
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "team_id",
                    "name",
                    "slug",
                    "domain_mode",
                    "custom_domain",
                    "brand_color",
                    "logo_url",
                    "dark_logo_url",
                    "logo_text",
                    "default_theme",
                    "logo_alignment",
                    "description",
                    "locale",
                    "public_url",
                    "is_public",
                    "subscriptions_enabled",
                    "preview_rendered_at",
                    "preview_render_status",
                    "created_at",
                    "updated_at"
                ],
                "title": "StatusPageResource"
            },
            "StatusPageSubscriberResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "subscribed_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "confirmed": {
                        "type": "boolean"
                    },
                    "newsletter_opt_in": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "id",
                    "email",
                    "subscribed_at",
                    "confirmed",
                    "newsletter_opt_in"
                ],
                "title": "StatusPageSubscriberResource"
            },
            "StatusPageTheme": {
                "type": "string",
                "description": "Colour scheme a public status page opens in before the visitor chooses one.",
                "enum": [
                    "system",
                    "light",
                    "dark"
                ],
                "title": "StatusPageTheme"
            },
            "StoreAnalysisFeedbackRequest": {
                "type": "object",
                "properties": {
                    "analysis_id": {
                        "type": "string"
                    },
                    "helpful": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "analysis_id",
                    "helpful"
                ],
                "title": "StoreAnalysisFeedbackRequest"
            },
            "StoreEscalationPolicyRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "repeat_last_step": {
                        "type": "boolean",
                        "description": "Both are optional and both default to false in the schema, so a client that predates them (or simply omits them) creates exactly the policy it created before."
                    },
                    "is_default": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "name"
                ],
                "title": "StoreEscalationPolicyRequest"
            },
            "StoreEscalationStepRequest": {
                "type": "object",
                "properties": {
                    "position": {
                        "type": "integer",
                        "minimum": 0.0
                    },
                    "delay_minutes": {
                        "type": "integer",
                        "minimum": 0.0
                    },
                    "target_type": {
                        "$ref": "#/components/schemas/EscalationTargetType"
                    },
                    "target_id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "uuid"
                    }
                },
                "required": [
                    "position",
                    "delay_minutes",
                    "target_type"
                ],
                "title": "StoreEscalationStepRequest"
            },
            "StoreIncidentRequest": {
                "type": "object",
                "properties": {
                    "monitor_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "severity": {
                        "$ref": "#/components/schemas/IncidentSeverity"
                    },
                    "title": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "message": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 2000.0
                    },
                    "notify": {
                        "type": "boolean",
                        "description": "Whether to announce the open to the affected pages' confirmed subscribers."
                    },
                    "impact": {
                        "anyOf": [
                            {
                                "description": "The customer-facing impact.",
                                "$ref": "#/components/schemas/IncidentImpact"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "monitor_id",
                    "severity",
                    "title"
                ],
                "title": "StoreIncidentRequest"
            },
            "StoreMonitorMetricRequest": {
                "type": "object",
                "properties": {
                    "group_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 80.0
                    },
                    "label": {
                        "type": "string",
                        "maxLength": 120.0
                    },
                    "type": {
                        "$ref": "#/components/schemas/MetricType"
                    },
                    "source": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/MetricSource"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "extraction_path": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 500.0
                    },
                    "unit": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/MetricUnit"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "threshold_direction": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ThresholdDirection"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "warn_bound": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "critical_bound": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "display_order": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 0.0
                    },
                    "anomaly_enabled": {
                        "type": "boolean"
                    },
                    "anomaly_direction": {
                        "$ref": "#/components/schemas/MetricAnomalyDirection"
                    },
                    "anomaly_kind": {
                        "$ref": "#/components/schemas/MetricKind"
                    },
                    "anomaly_sensitivity": {
                        "$ref": "#/components/schemas/AnomalySensitivity"
                    },
                    "ok_values": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "minLength": 1.0,
                            "maxLength": 120.0
                        },
                        "maxItems": 50.0
                    },
                    "warn_values": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "minLength": 1.0,
                            "maxLength": 120.0
                        },
                        "maxItems": 50.0
                    },
                    "critical_values": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "minLength": 1.0,
                            "maxLength": 120.0
                        },
                        "maxItems": 50.0
                    },
                    "unmatched_band": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/MetricBand"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "key": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_]*$",
                        "maxLength": 40.0
                    }
                },
                "required": [
                    "label",
                    "type",
                    "key"
                ],
                "title": "StoreMonitorMetricRequest"
            },
            "StoreMonitorRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "url": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048.0
                    },
                    "type": {
                        "$ref": "#/components/schemas/MonitorType"
                    },
                    "method": {
                        "$ref": "#/components/schemas/HttpMethod"
                    },
                    "check_interval_sec": {
                        "type": "integer",
                        "minimum": 30.0,
                        "maximum": 86400.0
                    },
                    "timeout_sec": {
                        "type": "integer",
                        "minimum": 1.0,
                        "maximum": 30.0
                    },
                    "regions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/MonitorRegion"
                        },
                        "minItems": 1.0
                    },
                    "expected_status_code": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 100.0,
                        "maximum": 599.0
                    },
                    "ai_mode": {
                        "description": "Whether AI labels or acts on an anomaly finding for this monitor.",
                        "$ref": "#/components/schemas/AiMode"
                    },
                    "anomaly_detection": {
                        "type": "boolean",
                        "description": "Absent means the model default (true)."
                    },
                    "response_anomaly_sensitivity": {
                        "description": "How far a response time must stray from its baseline before it is reported.",
                        "$ref": "#/components/schemas/AnomalySensitivity"
                    },
                    "ai_auto_updates": {
                        "type": "boolean",
                        "description": "Whether AI may publish incident updates to the public status page for this monitor."
                    },
                    "escalation_policy_id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "uuid",
                        "description": "The team's escalation policy that pages for this monitor's incidents."
                    },
                    "request_headers": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "request_body": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slo_target": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "minimum": 0.0,
                        "maximum": 100.0
                    },
                    "tags": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "show_on_status_page": {
                        "type": "boolean"
                    },
                    "follow_redirects": {
                        "type": "boolean",
                        "description": "Whether a 3xx is the answer or a step on the way to it."
                    },
                    "only_show_if_degraded": {
                        "type": "boolean"
                    },
                    "alert_on_down": {
                        "type": "boolean"
                    },
                    "alert_on_recover": {
                        "type": "boolean"
                    },
                    "ssl_tracking": {
                        "type": "boolean"
                    },
                    "ssl_alert_threshold_days": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 1.0,
                        "maximum": 365.0
                    },
                    "maintenance_tolerance_sec": {
                        "type": "integer",
                        "description": "Maintenance tolerance in seconds; omit it for the default of 0.",
                        "enum": [
                            "0",
                            "60",
                            "120",
                            "180",
                            "300",
                            "600",
                            "900"
                        ]
                    },
                    "metrics": {
                        "type": "array",
                        "description": "Metrics to create together with the monitor, in the same write.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "group_name": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "maxLength": 80.0
                                },
                                "label": {
                                    "type": "string",
                                    "maxLength": 120.0
                                },
                                "type": {
                                    "$ref": "#/components/schemas/MetricType"
                                },
                                "source": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/MetricSource"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "extraction_path": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "maxLength": 500.0
                                },
                                "unit": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/MetricUnit"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "threshold_direction": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/ThresholdDirection"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "warn_bound": {
                                    "type": [
                                        "number",
                                        "null"
                                    ]
                                },
                                "critical_bound": {
                                    "type": [
                                        "number",
                                        "null"
                                    ]
                                },
                                "display_order": {
                                    "type": [
                                        "integer",
                                        "null"
                                    ],
                                    "minimum": 0.0
                                },
                                "anomaly_enabled": {
                                    "type": "boolean"
                                },
                                "anomaly_direction": {
                                    "$ref": "#/components/schemas/MetricAnomalyDirection"
                                },
                                "anomaly_kind": {
                                    "$ref": "#/components/schemas/MetricKind"
                                },
                                "anomaly_sensitivity": {
                                    "$ref": "#/components/schemas/AnomalySensitivity"
                                },
                                "ok_values": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "minLength": 1.0,
                                        "maxLength": 120.0
                                    },
                                    "maxItems": 50.0
                                },
                                "warn_values": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "minLength": 1.0,
                                        "maxLength": 120.0
                                    },
                                    "maxItems": 50.0
                                },
                                "critical_values": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "minLength": 1.0,
                                        "maxLength": 120.0
                                    },
                                    "maxItems": 50.0
                                },
                                "unmatched_band": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/MetricBand"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "key": {
                                    "type": "string",
                                    "pattern": "^[a-z][a-z0-9_]*$",
                                    "maxLength": 40.0
                                }
                            },
                            "required": [
                                "label",
                                "type",
                                "key"
                            ]
                        },
                        "maxItems": 40.0,
                        "uniqueItems": true
                    },
                    "auth_config": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "properties": {
                            "type": {
                                "$ref": "#/components/schemas/HttpAuthType"
                            },
                            "username": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            },
                            "password": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            },
                            "token": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 2048.0
                            },
                            "key": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 2048.0
                            },
                            "header": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            }
                        }
                    },
                    "assertion_rules": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        },
                        "maxItems": 20.0
                    },
                    "incident_threshold": {
                        "type": "integer",
                        "description": "How many consecutive failed checks open an incident, from 1 to 10.",
                        "minimum": 1.0,
                        "maximum": 10.0
                    },
                    "degraded_after_ms": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Null is \"off\" in both engines.",
                        "minimum": 100.0,
                        "maximum": 30000.0
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Context the AI reads as unverified and source-labelled, never a probe input.",
                        "maxLength": 1000.0
                    },
                    "description_source": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/DescriptionSource"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "site_kind": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/SiteKind"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "intent": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "What the operator says matters about this monitor, in their own words.",
                        "maxLength": 500.0
                    }
                },
                "required": [
                    "name",
                    "url",
                    "type",
                    "method",
                    "check_interval_sec",
                    "timeout_sec",
                    "regions"
                ],
                "title": "StoreMonitorRequest"
            },
            "StoreNotificationChannelRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "channel_type": {
                        "$ref": "#/components/schemas/NotificationChannelType"
                    },
                    "credentials": {
                        "type": "object",
                        "properties": {
                            "token": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            },
                            "channel": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 200.0
                            },
                            "url": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 2048.0
                            },
                            "secret": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            },
                            "routing_key": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 64.0
                            }
                        }
                    },
                    "is_enabled": {
                        "type": "boolean"
                    },
                    "severity": {
                        "$ref": "#/components/schemas/NotificationChannelSeverity"
                    }
                },
                "required": [
                    "name",
                    "channel_type",
                    "credentials"
                ],
                "title": "StoreNotificationChannelRequest"
            },
            "StoreOnCallOverrideRequest": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "starts_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "ends_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "user_id",
                    "starts_at",
                    "ends_at"
                ],
                "title": "StoreOnCallOverrideRequest"
            },
            "StoreOnCallRotationRequest": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "position": {
                        "type": "integer",
                        "minimum": 0.0
                    },
                    "shift_hours": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 1.0,
                        "maximum": 8760.0
                    }
                },
                "required": [
                    "user_id",
                    "position"
                ],
                "title": "StoreOnCallRotationRequest"
            },
            "StoreOnCallScheduleRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "timezone": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 64.0
                    }
                },
                "required": [
                    "name"
                ],
                "title": "StoreOnCallScheduleRequest"
            },
            "StoreScheduledMaintenanceRequest": {
                "type": "object",
                "properties": {
                    "status_page_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "title": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 2000.0
                    },
                    "suppress_alerts": {
                        "type": "boolean"
                    },
                    "starts_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "ends_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "monitor_ids": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                },
                "required": [
                    "status_page_id",
                    "title",
                    "starts_at",
                    "ends_at"
                ],
                "title": "StoreScheduledMaintenanceRequest"
            },
            "StoreStatusPageRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "slug": {
                        "type": "string",
                        "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
                        "maxLength": 100.0
                    },
                    "domain_mode": {
                        "type": "string",
                        "description": "How the page is addressed: `path` (the default) or `subdomain`.",
                        "enum": [
                            "path",
                            "subdomain"
                        ]
                    },
                    "custom_domain": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255.0
                    },
                    "brand_color": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Strictly #rrggbb: the client never sends an alpha channel.",
                        "pattern": "^#[0-9a-fA-F]{6}$",
                        "maxLength": 7.0
                    },
                    "logo_text": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 8.0
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 500.0
                    },
                    "locale": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The language this page publishes in: its own copy, its banner label and its incident titles.",
                        "enum": [
                            "en",
                            "tr",
                            null
                        ]
                    },
                    "default_theme": {
                        "description": "The theme the page shows by default.",
                        "$ref": "#/components/schemas/StatusPageTheme"
                    },
                    "logo_alignment": {
                        "$ref": "#/components/schemas/LogoAlignment"
                    },
                    "is_public": {
                        "type": "boolean"
                    },
                    "subscriptions_enabled": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "name",
                    "slug"
                ],
                "title": "StoreStatusPageRequest"
            },
            "TeamMemberResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "email": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "role": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "email",
                    "role"
                ],
                "title": "TeamMemberResource"
            },
            "ThresholdDirection": {
                "type": "string",
                "description": "Which side of the numeric range counts as \"bad\" for a metric threshold.",
                "enum": [
                    "high_bad",
                    "low_bad"
                ],
                "title": "ThresholdDirection"
            },
            "UpdateEscalationPolicyRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "repeat_last_step": {
                        "type": "boolean",
                        "description": "Omitting either leaves it as it was: this is a PATCH-shaped update, so an editor that only renames a policy must not silently clear its paging flags."
                    },
                    "is_default": {
                        "type": "boolean"
                    }
                },
                "title": "UpdateEscalationPolicyRequest"
            },
            "UpdateMonitorMetricRequest": {
                "type": "object",
                "properties": {
                    "group_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 80.0
                    },
                    "label": {
                        "type": "string",
                        "maxLength": 120.0
                    },
                    "type": {
                        "$ref": "#/components/schemas/MetricType"
                    },
                    "source": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/MetricSource"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "extraction_path": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 500.0
                    },
                    "unit": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/MetricUnit"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "threshold_direction": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ThresholdDirection"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "warn_bound": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "critical_bound": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "display_order": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 0.0
                    },
                    "anomaly_enabled": {
                        "type": "boolean"
                    },
                    "anomaly_direction": {
                        "$ref": "#/components/schemas/MetricAnomalyDirection"
                    },
                    "anomaly_kind": {
                        "$ref": "#/components/schemas/MetricKind"
                    },
                    "anomaly_sensitivity": {
                        "$ref": "#/components/schemas/AnomalySensitivity"
                    },
                    "ok_values": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "minLength": 1.0,
                            "maxLength": 120.0
                        },
                        "maxItems": 50.0
                    },
                    "warn_values": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "minLength": 1.0,
                            "maxLength": 120.0
                        },
                        "maxItems": 50.0
                    },
                    "critical_values": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "minLength": 1.0,
                            "maxLength": 120.0
                        },
                        "maxItems": 50.0
                    },
                    "unmatched_band": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/MetricBand"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "key": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_]*$",
                        "maxLength": 40.0
                    }
                },
                "title": "UpdateMonitorMetricRequest"
            },
            "UpdateMonitorRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "url": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048.0
                    },
                    "type": {
                        "$ref": "#/components/schemas/MonitorType"
                    },
                    "method": {
                        "$ref": "#/components/schemas/HttpMethod"
                    },
                    "check_interval_sec": {
                        "type": "integer",
                        "minimum": 30.0,
                        "maximum": 86400.0
                    },
                    "timeout_sec": {
                        "type": "integer",
                        "minimum": 1.0,
                        "maximum": 30.0
                    },
                    "regions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/MonitorRegion"
                        },
                        "minItems": 1.0
                    },
                    "expected_status_code": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 100.0,
                        "maximum": 599.0
                    },
                    "ai_mode": {
                        "$ref": "#/components/schemas/AiMode"
                    },
                    "ai_auto_updates": {
                        "type": "boolean"
                    },
                    "escalation_policy_id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "uuid"
                    },
                    "request_headers": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "request_body": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slo_target": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "minimum": 0.0,
                        "maximum": 100.0
                    },
                    "tags": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "show_on_status_page": {
                        "type": "boolean"
                    },
                    "follow_redirects": {
                        "type": "boolean"
                    },
                    "only_show_if_degraded": {
                        "type": "boolean"
                    },
                    "alert_on_down": {
                        "type": "boolean"
                    },
                    "alert_on_recover": {
                        "type": "boolean"
                    },
                    "ssl_tracking": {
                        "type": "boolean"
                    },
                    "anomaly_detection": {
                        "type": "boolean"
                    },
                    "response_anomaly_sensitivity": {
                        "$ref": "#/components/schemas/AnomalySensitivity"
                    },
                    "ssl_alert_threshold_days": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 1.0,
                        "maximum": 365.0
                    },
                    "maintenance_tolerance_sec": {
                        "type": "integer",
                        "enum": [
                            "0",
                            "60",
                            "120",
                            "180",
                            "300",
                            "600",
                            "900"
                        ]
                    },
                    "auth_config": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "properties": {
                            "type": {
                                "$ref": "#/components/schemas/HttpAuthType"
                            },
                            "username": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            },
                            "password": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            },
                            "token": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 2048.0
                            },
                            "key": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 2048.0
                            },
                            "header": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            }
                        }
                    },
                    "assertion_rules": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        },
                        "maxItems": 20.0
                    },
                    "incident_threshold": {
                        "type": "integer",
                        "minimum": 1.0,
                        "maximum": 10.0
                    },
                    "degraded_after_ms": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 100.0,
                        "maximum": 30000.0
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 1000.0
                    },
                    "site_kind": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/SiteKind"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "intent": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 500.0
                    },
                    "description_source": {
                        "anyOf": [
                            {
                                "description": "Who wrote a NEW description: `ai_draft` when the About card saves the model's draft as drafted.",
                                "$ref": "#/components/schemas/DescriptionSource"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "title": "UpdateMonitorRequest"
            },
            "UpdateNotificationChannelRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "channel_type": {
                        "$ref": "#/components/schemas/NotificationChannelType"
                    },
                    "credentials": {
                        "type": "object",
                        "properties": {
                            "token": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            },
                            "channel": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 200.0
                            },
                            "routing_key": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 64.0
                            },
                            "url": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 2048.0
                            },
                            "secret": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 255.0
                            }
                        }
                    },
                    "is_enabled": {
                        "type": "boolean"
                    },
                    "severity": {
                        "$ref": "#/components/schemas/NotificationChannelSeverity"
                    }
                },
                "title": "UpdateNotificationChannelRequest"
            },
            "UpdateOnCallScheduleRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "timezone": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 64.0
                    }
                },
                "title": "UpdateOnCallScheduleRequest"
            },
            "UpdateScheduledMaintenanceRequest": {
                "type": "object",
                "properties": {
                    "status_page_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "title": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 2000.0
                    },
                    "suppress_alerts": {
                        "type": "boolean"
                    },
                    "starts_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "ends_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "monitor_ids": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                },
                "title": "UpdateScheduledMaintenanceRequest"
            },
            "UpdateStatusPageLogoRequest": {
                "type": "object",
                "properties": {
                    "logo": {
                        "type": "string",
                        "format": "binary",
                        "contentMediaType": "application/octet-stream",
                        "description": "Maximum file size: 512 kilobytes."
                    }
                },
                "required": [
                    "logo"
                ],
                "title": "UpdateStatusPageLogoRequest"
            },
            "UpdateStatusPageRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 200.0
                    },
                    "slug": {
                        "type": "string",
                        "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
                        "maxLength": 100.0
                    },
                    "domain_mode": {
                        "type": "string",
                        "enum": [
                            "path",
                            "subdomain"
                        ]
                    },
                    "custom_domain": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255.0
                    },
                    "brand_color": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "pattern": "^#[0-9a-fA-F]{6}$",
                        "maxLength": 7.0
                    },
                    "logo_text": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 8.0
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 500.0
                    },
                    "locale": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "en",
                            "tr",
                            null
                        ]
                    },
                    "default_theme": {
                        "description": "The theme the page shows by default.",
                        "$ref": "#/components/schemas/StatusPageTheme"
                    },
                    "logo_alignment": {
                        "$ref": "#/components/schemas/LogoAlignment"
                    },
                    "is_public": {
                        "type": "boolean"
                    },
                    "subscriptions_enabled": {
                        "type": "boolean"
                    }
                },
                "title": "UpdateStatusPageRequest"
            },
            "UpdateTeamMemberApiRequest": {
                "type": "object",
                "properties": {
                    "role": {
                        "type": "string",
                        "enum": [
                            "admin",
                            "editor",
                            "member"
                        ]
                    }
                },
                "required": [
                    "role"
                ],
                "title": "UpdateTeamMemberApiRequest"
            }
        },
        "responses": {
            "ApiKeyForbidden": {
                "description": "The key lacks the ability this endpoint requires (`required_ability` names it), or the action is not allowed for the team.",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string"
                                },
                                "required_ability": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "AuthenticationException": {
                "description": "Unauthenticated",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "AuthorizationException": {
                "description": "Authorization error",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "ModelNotFoundException": {
                "description": "Not found",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "TooManyRequests": {
                "description": "Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for `Retry-After` seconds.",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "ValidationException": {
                "description": "Validation error",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Errors overview."
                                },
                                "errors": {
                                    "type": "object",
                                    "description": "A detailed description of each field that failed validation.",
                                    "additionalProperties": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "required": [
                                "message",
                                "errors"
                            ]
                        }
                    }
                }
            }
        }
    }
}
